poePoweredDevice
poePoweredDevice - control Power over Ethernet Powered Device (PD) emulation
SYNOPSIS
poePoweredDevice sub-command options
DESCRIPTION
The poePoweredDevice command is used to setup the parameters by which a PoE Powered Device (PD) is emulated on a port.
The port can emulate a device that uses either Alternative A and/or Alternative B. This is controlled by the relayControl option.
The emulated class is controlled by the enableClassSignature and signatureValue options; the classType indicates the calculated class based on the signature value.
The emulated detection signature is controlled by the enableDetectionSignature, rsig, csig and enableCsig10uF options.
The emulated Alternating Current Maintain Power Signature (ACMPS) is controlled by the enableAcMpsSignature, rpd, cpd and enable CpdAdd10uF options.
Once the PSE (Power Sourcing Equipment) has classified the emulated PD, it should provide power to the port. The power requirements of the emulated port are controlled by the steadyStateLoadControl, controlledCurrent, controlledPower and idleCurrent options. Transient load variations may be inserted through the use of the enableTransientLoadControl, transientLoadControl, pulseWidth, duty, pulsedCurrent and slewRate options. Pulses are applied through the use of the portGroup setCommand sub-command, with an loadPoEPulse value or through the high-level ixLoadPoePulse and ixLoadPortPoePulse commands; if enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlSinglePusle, then a pulsed current as indicated by pulsedCurrent and slewRate is injected for the period indicated by pulseWidth.
The voltage thresholds that are used by the PD to detect state transitions may be set by the vOperate, vOff, vClassify, vDetect and vNoop options.
STANDARD OPTIONS
classType
Read-only. If enableClassSignature is true, this is the calculated classification of signatureValue.
Option |
Value |
Usage |
---|---|---|
poeClass0 |
0 |
Class 0. |
poeClass1 |
1 |
Class 1. |
poeClass2 |
2 |
Class 2. |
poeClass3 |
3 |
Class 3. |
poeClass4 |
4 |
Class 4. |
poeMaybeClass0or1 |
5 |
Either class 0 or 1. |
poeMaybeClass0or1or2 |
6 |
Either class 0, 1 or 2. |
poeMaybeClass0or2or3 |
7 |
Either class 0, 2 or 3. |
poeMaybeClass0or3or4 |
8 |
Either class 0, 3 or 4. |
poeMaybeClass0or4 |
9 |
Either class 0 or 4. |
poeClassTypeUndefined |
10 |
Unknown classification. |
controlledCurrent
If steadyStateLoadControl is set to poeLoadControlConstantCurrent, then this is the amount of current that the PD requires from the PSE, in mA. The value may be between 0 and 600mA. (default = 42. 5)
If steadyStateLoadControl is set to poeLoadControlConstantPower, then this is the amount of power that the PD requires from the PSE, in watts. The value may be between 0 and 20W. (default = 2.0)
cpd
If enableAcMpsSignature is true, this is the capacitance signature expressed in nFarads, between 0 and 220nF. If enableCpdAdd10uF is set, then 10uF of capacitance is added to this value, effectively overriding it. (default = 50)
csig
If enableDetectionSignature is true, this is the capacitance signature expressed in nFarads, between 0 and 220nF. If enableCsigAdd10uF is set, then 10uF of capacitance is added to this value, effectively overriding it. (default = 50)
duty
If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlContinuousPusle, then this is the duty cycle of the transient load. This is expressed as a percentage of total time that transient loads is injected. (default = 30)
enableAcMpsSignature true | false
If true, then the ACMPS signature is set from the values in rpd, cpd and enableCpdAdd10uF. (default = true)
enableClassSignature true | false
If true, then the signatureValue option is used to set the emulated class. The computed class name is indicated in classType. (default = true)
enableCpdAdd10uF true | false
If enableAcMpsSignature is true, then if this option is true, a value of 10uF is added to the cpd value which sets the capacitance signature. This effectively overrides the cpd value, which is expressed in nF. (default = false)
enableCsigAdd10uF true | false
If enableDetectionSignature is true, then if this option is true, a value of 10uF is added to the csig value which sets the capacitance signature. This effectively overrides the csig value, which is expressed in nF. (default = false)
enableDetection Signature true | false
Enables the use of the rsig, csig and enableCsigAdd10uF options to set the PoE detection signature. (default = true)
enablePulseOnStart true | false
If true, then a single pluse is sent each time that the PSE starts to apply power. (default = false)
enableTransientLoad Control true | false
If true, then transient loads is injected based on the values in the transientLoadControl, pulseWidth, duty, pulsedCurrent and slewRate options. (default = true)
idleCurrent
If steadyStateLoadControl is set to poeLoadControlIdle, then this is the amount of current that the PD requires from the PSE, in mA. The value may be between 0 and 16mA. (default = 10)
pulseWidth
If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlSinglePusle, then this is the width of the transient pulse that is injected. This is expressed in msec. (default = 40.25)
pulsedCurrent
If enableTransientLoadControl is true and transientLoadControl is set to poeLoadContrlContinuousPusle, then this is the current injected. This is expressed in mA and may be less than or greater than the steady state value. (default = 333.0)
relayControl
This option controls the combination of power options are supported by the PD.
Option |
Value |
Usage |
---|---|---|
poeRelayControlNoMode |
0 |
Neither mode is supported. |
poeRelayControlAlternativeA |
1 |
Use Alternative A. |
poeRelayControlAlternativeB |
2 |
Use Alternative B. |
poeRelayControlBothAandB |
3 |
(default) Use Alternative A or B. |
rpd
If enableAcMpsSignature is true, this is the ACMPS resistance signature expressed as a floating point value between 10 and 40 kOhms. (default = 23.0)
rpdRangeControl
On newer, 30watt PoE modules, it is possible to change the range associated with rpd.
Option |
Value |
Usage |
---|---|---|
poeRpdRangeZac1 |
0 |
(default) The range of rpd is from 10 - 45kOhm. |
poeRpdRangeZac2 |
1 |
The range of rpd is from 200 - 1200kOhm. |
rsig
If enableDetectionSignature is true, this is the resistance signature expressed as a floating point value between 10 and 40 kOhms. (default = 17.0)
signatureValue
If enableClassSignature is true, the class signature value, expressed as a floating point number between 0mA and 60mA. (default = 18.5)
slewRate
If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlContinuousPusle, then this is the slew rate at which the current indicated in pulsedCurrent is injected. This is expressed in mA/msec. (default = 33.0)
steadyStateLoadControl
This option controls the type of power requirements for the emulated PD after classification has completed.
Option |
Value |
Usage |
---|---|---|
poeLoadControlConstantCurrent |
0 |
(default) The PD requires constant current, as indicated in the controlledCurrent option. |
poeLoadControlControlledPower |
1 |
The PD requires controlled power, as indicated in the controlledPower option. |
poeLoadControlIdle |
2 |
The PD requires constant current, as indicated in the idleCurrent option. |
poeLoadControlShutdown |
3 |
The PD is in shutdown mode. |
transientLoad
Control
If enableTransientLoadControl is true, then this option indicates the type of transient load that is injected.
Option |
Value |
Usage |
---|---|---|
poeLoadControlSinglePulse |
0 |
Inject a transient load once when the pulse sub-command is used. |
poeLoadControlContinuousPulse |
1 |
(default) Inject transient loads continuously. |
vClassify
The maximum voltage for the emulated PD classification stage. Between this setting and vDetect, the classification currents ae presented to the PSE by the PD. (default = 20.5)
vDetect
The maximum voltage for emulated PD detection. Between this setting and vNoop, the detection signature impedances are presented to the PSE by the PD. (default = 10.0)
vNoop
The minimum detection voltage. No signatures are presented below this threshold value. (default = 2.8)
vOff
Sets the input threshold below which the PSE load is removed.(default = 33.0)
vOperate
Sets the input threshold where the PSE load is first applied. (default = 38.0)
COMMANDS
The poePoweredDevice command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.
poePoweredDevice cget option
Returns the current value of the configuration option given by option. Option may have any of the values accepted by the poePoweredDevice command.
poePoweredDevice config option value
Modify the poePoweredDevice configuration options of the port. If no option is specified, returns a list describing all of the available poePoweredDevice options (see STANDARD OPTIONS) for port.
poePoweredDevice get chasID cardID portID
Gets the current configuration of the poePoweredDevice parameters on the indicated port from its hardware. Call this command before calling poePoweredDevice cget option value to get the value of the configuration option. Specific errors are:
- No connection to a chassis
- Invalid port number
poePoweredDevice set chasID cardID portID
Sets the configuration of the poePoweredDevice parameters in IxHAL on port with id portID on card cardID, chassis chasID by reading the configuration option values set by the poePoweredDevice config option value command. Specific errors are:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
- The configured parameters are not valid for this port
- The port is not a Packet over Sonet port.
poePoweredDevice setDefault
Sets to IxTclHal default values for all configuration options.
poePoweredDevice setNominal chasID cardID portID [controlType]
Sets the option values for a particular control type to its nominal value. controlType may be one of these:
Control Type |
Usage |
---|---|
"class0" |
Class 0 device emulation |
"class1" |
Class 1 device emulation |
"class2" |
Class 2 device emulation |
"class3" |
Class 3 device emulation |
"class4" |
Class 4 device emulation |
"cpd" |
AC MPS capacitance |
"csig" |
Detection signature capacitance |
"idleCurrent" |
Steady state current to idle current |
"rpd" |
AC MPS resistance |
"rsig" |
Detection signature resistance |
"vClassify" |
vClassify threshold voltage |
"vDetect" |
vDetect threshold voltage |
"vNoop" |
vNoop threshold voltage |
"vOperate" |
vOperate threshold voltage |
"vOff" |
vOff threshold voltage |
EXAMPLES
package require IxTclHal
set host localhost
set username user
# Check if we're running on UNIX - connect to the TCL Server
# which must be running on the chassis
if [isUNIX] {
if [ixConnectToTclServer $host] {
ixPuts "Could not connect to $host"
return 1
}
}
# Now connect to the chassis
if [ixConnectToChassis $host] {
ixPuts $::ixErrorInfo
return 1
}
# Get the chassis ID to use in port lists
set chId [ixGetChassisID $host]
set card 27
set portId 1
set waitForCalibration 20
# Useful port lists
set portList [list [list $chas $card $portId]]
# Login before taking ownership
if [ixLogin $username] {
ixPuts $::ixErrorInfo
return 1
}
# Take ownership of the ports we'll use
if [ixTakeOwnership $portList] {
ixPuts $::ixErrorInfo
return 1
}
set retCode "PASS"
poePoweredDevice setDefault
# Initiate an auto calibration
if {[poeAutoCalibration initiateCalibrate $chId $card $portId ]} {
errorMsg "Error initiating autoCalibrate on port $chId $card $portId"
set retCode "FAIL"
}
# Wait for the maximum possible time
after [expr $waitForCalibration*1000]
# Ask for the status of the calibration
if {[poeAutoCalibration requestStatus $chId $card $portId ]} {
errorMsg "Error requesting status on autoCalibrate for port $chId $card $portId"
set retCode "FAIL"
}
# Wait a bit for the answers to be read back
after 1000
if {[poeAutoCalibration get $chId $card $portId ]} {
errorMsg "Error getting status on autoCalibrate for port $chId $card $portId"
set retCode "FAIL"
break
}
# Check to make sure that all calibrations succeeded.
foreach param {currentReadbackStatus iClassRangeStatus iLoadRangeStatus\
iPulseRangeStatus voltageReadbackStatus} {
if {[poeAutoCalibration cget -$param] != $::poeAutoCalibrationPass } {
errorMsg "poeAutoCalibration cget $param - [poeAutoCalibration cget -$param] != poeAutoCalibrationPass"
set retCode "FAIL"
}
}
if {[poePoweredDevice get $chId $card $portId]} {
errorMsg "Error getting poe config for $chId $card $portId"
set retCode "FAIL"
continue
}
if {[poePoweredDevice cget -enableClassSignature]} {
switch [poePoweredDevice cget -classType] {
$::poeClass0 {
logMsg "PoE device config'd as class 0"
}
$::poeClass1 {
logMsg "PoE device config'd as class 1"
}
$::poeClass2 {
logMsg "PoE device config'd as class 2"
}
$::poeClass3 {
logMsg "PoE device config'd as class 3"
}
$::poeClass4 {
logMsg "PoE device config'd as class 4"
}
default {
logMsg "PoE device in an in-between class state"
}}
# change the value if class enabled
poePoweredDevice config -signatureValue 42.0
}
poePoweredDevice config -enableDetectionSignature true
poePoweredDevice config -rsig 25
poePoweredDevice config -csig 200.3
poePoweredDevice config -enableCsigAdd10uF false
poePoweredDevice config -enableAcMpsSignature true
poePoweredDevice config -rpdRangeControl poeRpdRangeZac1
poePoweredDevice config -rpd 33
poePoweredDevice config -cpd 42
poePoweredDevice config -enableCpdAdd10uF false
# config the steady state stuff
poePoweredDevice config -steadyStateLoadControl \
poeLoadControlControlledPower
poePoweredDevice config -controlledCurrent 482.2
poePoweredDevice config -controlledPower 13.8
poePoweredDevice config -idleCurrent 12.0
# config the transient load stuff
poePoweredDevice config -enableTransientLoadControl true
poePoweredDevice config -pulseWidth 10
poePoweredDevice config -enablePulseOnStart false
poePoweredDevice config -duty 33.3
poePoweredDevice config -pulsedCurrent 500
poePoweredDevice config -slewRate 20.0
# config the voltage threshold stuff
poePoweredDevice config -vOperate 27.5
poePoweredDevice config -vOff 32.8
poePoweredDevice config -vClassify 17.2
poePoweredDevice config -vDetect 7.9
poePoweredDevice config -vNoop 8.2
if {[poePoweredDevice set $chId $card $portId]} {
errorMsg "Error setting poe config for \
$chId $card $portId - $::ixErrorInfo"
}
# set nomimal examples
if {[poePoweredDevice setNominal $chId $card $portId class0]} {
errorMsg "Error setting nominal class0for \
$chId $card $portId - $::ixErrorInfo"
}
if {[poePoweredDevice setNominal $chId $card $portId rsig]} {
errorMsg "Error setting nominal rsig for \
$chId $card $portId - $::ixErrorInfo"
}
ixWritePortsToHardware portList
ixLoadPoePulse portList
# signal acquisition
poeSignalAcquisition setDefault
poeSignalAcquisition config -enableTime true
poeSignalAcquisition config -enableAmplitude true
poeSignalAcquisition config -startTriggerSource poeTriggerSourceDCVolts
poeSignalAcquisition config -startTriggerSlope poeTriggerSlopePositive
poeSignalAcquisition config -startTriggerValue 0.167
poeSignalAcquisition config -stopTriggerSource poeTriggerSourceDCVolts
poeSignalAcquisition config -stopTriggerSlope poeTriggerSlopePositive
poeSignalAcquisition config -stopTriggerValue 2.167
poeSignalAcquisition config -amplitudeMeasurementDelay 0.500
if [poeSignalAcquisition set $chId $card $portId] {
errorMsg "Error setting poeSignalAcquisition for \
$chId $card $portId $::ixErrorInfo"
}
if [ixArmPoeTrigger portList] {
errorMsg "Error arming the PoE ports in the portList\
$portList $::ixErrorInfo"
}