...
Setting an OID value from an SNMP client doesn't block the client waiting on any script action; there is a short, but indeterminate, time delay for scripts to act on a value change. This isn't a problem generally because of the way SNMP MIBs are designed. If you want to provide constantly updating OID values, you can update them using either a timer or state changes.
Object Creation: The roSnmpAgent object is created with an optional roAssociativeArray:
Code Block |
---|
agent = CreateObject("roSnmpAgent") |
As of BrightSign OS 8.3.R1, the default parameters below can be provided on object construction. Note that when both ro_community
and rw_community
are set, they must be unique values. Otherwise, simply provide rw_community
:
[string] ro_community
: Optional. Sets the read community string.[string] rw_community
: Optional. Sets the write community string.
ifSnmpAgent
AddOidHandler(oid_string As String, writable_flag As Boolean, initial_value As Object) As Boolean
Adds an OID handler with the following parameters to the SNMP agent:
oid_string
: The OID string (e.g. "1.3.6.1.4.1.26095.1.1.1.4.4.0"). All OID strings should be numerical.writable_flag
: A Boolean value indicating whether the value can be changed by an SNMP client.initial_value
: The initial value, which can be either an roString or roInt. The OID will reflect the type chosen here.
GetOidValue(oid_string As String) As Object
Returns the current value (as either roString or roInt) for a given OID.
SetOidValue(oid_string As String, new_value As Object) As Boolean
Changes the current value for a given OID. The passed value can be either an roString or roInt.
Start() As Boolean
Starts the SNMP agent. Call this method once all OID handlers have been registered.
Code Block | ||
---|---|---|
| ||
agent = CreateObject("roSnmpAgent") agent.AddOidHandler("1.3.6.1.4.1.26095.1.1.1.4.4.0", false, "ValueOfOid") agent.AddOidHandler("1.3.6.1.4.1.26095.1.1.1.4.5.0", true, 10) agent.Start() |
As of BrightSign OS 8.3.R1, another optional default parameter can be provided on object construction:
Code Block | ||
---|---|---|
| ||
type SnmpAgentParams {
ro_community: string;
rw_community: string;
}
agent = CreateObject("roSnmpAgent", params: SnmpAgentParams) |
...
ifUserData
SetUserData(user_data As Object)
Sets the user data that will be returned when events are raised.
GetUserData() As Object
Returns the user data that has previously been set via SetUserData()
. It will return Invalid if no data has been set.
ifMessagePort
SetPort(port As roMessagePort)
Posts messages of type roSnmpEvent to the attached message port.
...