HostHandler

class secsgem.gem.hosthandler.GemHostHandler(address, port, active, session_id, name, custom_connection_handler=None)[source]

Bases: secsgem.gem.handler.GemHandler

Baseclass for creating host models. Inherit from this class and override required functions.

clear_collection_events()[source]

Clear all collection events.

subscribe_collection_event(ceid, dvs, report_id=None)[source]

Subscribe to a collection event.

Parameters:
  • ceid (integer) – ID of the collection event
  • dvs (list of integers) – DV IDs to add for collection event
  • report_id (integer) – optional - ID for report, autonumbering if None
send_remote_command(rcmd, params)[source]

Send a remote command.

Parameters:
  • rcmd (string) – Name of command
  • params (list of strings) – DV IDs to add for collection event
delete_process_programs(ppids)[source]

Delete a list of process program.

Parameters:ppids (list of strings) – Process programs to delete
get_process_program_list()[source]

Get process program list.

go_online()[source]

Set control state to online.

go_offline()[source]

Set control state to offline.

enable_alarm(alid)[source]

Enable alarm.

Parameters:alid (secsgem.secs.dataitems.ALID) – alarm id to enable
disable_alarm(alid)[source]

Disable alarm.

Parameters:alid (secsgem.secs.dataitems.ALID) – alarm id to disable
list_alarms(alids=None)[source]

List alarms.

Parameters:alids (array of int/str) – alarms to list details for
list_enabled_alarms()[source]

List enabled alarms.

alarms

Dictionary of available alarms.

Example:

>>> handler = SecsHandler("127.0.0.1", 5000, True, 0, "test")
>>> handler.alarms[137] = {'ceidon': 1371, 'ceidoff': 1372}

Key

Id of the alarm (integer)

Data

Dictionary with the following fields

ceidon
Collection event id for alarm on (integer)
ceidoff
Collection event id for alarm off (integer)
are_you_there()

Check if remote is still replying.

callbacks

Property for callback handling.

collection_events

Dictionary of available collection events.

Example:

>>> handler = SecsHandler("127.0.0.1", 5000, False, 0, "test")
>>> handler.collection_events[123] = {'name': 'collectionEventName', 'dvids': [1, 5] }

Key

Id of the collection event (integer)

Data

Dictionary with the following fields

name
Name of the collection event (string)
dvids
Data values for the collection event (list of integers)
data_values

Dictionary of available data values.

Example:

>>> handler = SecsHandler("127.0.0.1", 5000, False, 0, "test")
>>> handler.data_values[5] = {'name': 'dataValueName', 'ceid': 123 }

Key

Id of the data value (integer)

Data

Dictionary with the following fields

name
Name of the data value (string)
ceid
Collection event the data value is used for (integer)
disable()

Disables the connection.

disable_ceid_reports()

Disable all Collection Event Reports.

disable_ceids()

Disable all Collection Events.

enable()

Enables the connection.

events

Property for event handling.

get_ceid_name(ceid)

Get the name of a collection event.

Parameters:ceid (integer) – ID of collection event
Returns:Name of the event or empty string if not found
Return type:string
get_dvid_name(dvid)

Get the name of a data value.

Parameters:dvid (integer) – ID of data value
Returns:Name of the event or empty string if not found
Return type:string
get_next_system_counter()

Returns the next System.

Returns:System for the next command
Return type:integer
list_ecs(ecs=None)

Get list of available Equipment Constants.

Returns:available Equipment Constants
Return type:list
list_svs(svs=None)

Get list of available Service Variables.

Returns:available Service Variables
Return type:list
on_commack_requested()

Get the acknowledgement code for the connection request.

override to accept or deny connection request

Returns:0 when connection is accepted, 1 when connection is denied
Return type:integer
on_connection_before_closed(_)

Connection is about to be closed.

on_connection_closed(connection)

Connection was closed.

on_connection_established(_)

Connection was established.

on_connection_packet_received(_, packet)

Packet received by connection.

Parameters:packet (secsgem.hsms.packets.HsmsPacket) – received data packet
register_stream_function(stream, function, callback)

Register the function callback for stream and function.

Parameters:
  • stream (integer) – stream to register callback for
  • function (integer) – function to register callback for
  • callback (def callback(connection)) – method to call when stream and functions is received
remote_commands

Dictionary of available remote commands.

Example:

>>> handler = SecsHandler("127.0.0.1", 5000, True, 0, "test")
>>> handler.remote_commands["PP_SELECT"] = {'params': [{'name': 'PROGRAM', 'format': 'A'}], 'ceids': [200, 343]}

Key

Name of the remote command (string)

Data

Dictionary with the following fields

params

Parameters for the remote command (list of dictionaries)

Parameters

The dictionaries have the following fields

name
name of the parameter (string)
format
format character of the parameter (string)
ceids
Collection events ids the remote command might return (list of integers)
request_ec(ec)

Request contents of one Equipment Constant.

Parameters:ec (int) – id of Equipment Constant
Returns:value of requested Equipment Constant
Return type:various
request_ecs(ecs)

Request contents of supplied Equipment Constants.

Parameters:ecs (list) – Equipment Constants to request
Returns:values of requested Equipment Constants
Return type:list
request_process_program(ppid)

Request a process program.

Parameters:ppid (string) – Transferred process programs ID
request_sv(sv)

Request contents of one Service Variable.

Parameters:sv (int) – id of Service Variable
Returns:value of requested Service Variable
Return type:various
request_svs(svs)

Request contents of supplied Service Variables.

Parameters:svs (list) – Service Variables to request
Returns:values of requested Service Variables
Return type:list
secs_decode(packet)

Get object of decoded stream and function class, or None if no class is available.

Parameters:packet (secsgem.hsms.packets.HsmsPacket) – packet to get object for
Returns:matching stream and function object
Return type:secsSxFx object
send_and_waitfor_response(packet)

Send the packet and wait for the response.

Parameters:packet (secsgem.secs.functionbase.SecsStreamFunction) – packet to be sent
Returns:Packet that was received
Return type:secsgem.hsms.packets.HsmsPacket
send_deselect_req()

Send a Deselect Request to the remote host.

Returns:System of the sent request
Return type:integer
send_deselect_rsp(system_id)

Send a Deselect Response to the remote host.

Parameters:system_id (integer) – System of the request to reply for
send_equipment_terminal(terminal_id, text)

Set text to equipment terminal.

Parameters:
  • terminal_id (int) – ID of terminal
  • text (string) – text to send
send_linktest_req()

Send a Linktest Request to the remote host.

Returns:System of the sent request
Return type:integer
send_linktest_rsp(system_id)

Send a Linktest Response to the remote host.

Parameters:system_id (integer) – System of the request to reply for
send_process_program(ppid, ppbody)

Send a process program.

Parameters:
  • ppid (string) – Transferred process programs ID
  • ppbody (string) – Content of process program
send_reject_rsp(system_id, s_type, reason)

Send a Reject Response to the remote host.

Parameters:
  • system_id (integer) – System of the request to reply for
  • s_type (integer) – s_type of rejected message
  • reason (integer) – reason for rejection
send_response(function, system)

Send response function for system.

Parameters:
send_select_req()

Send a Select Request to the remote host.

Returns:System of the sent request
Return type:integer
send_select_rsp(system_id)

Send a Select Response to the remote host.

Parameters:system_id (integer) – System of the request to reply for
send_separate_req()

Send a Separate Request to the remote host.

send_stream_function(packet)

Send the packet and wait for the response.

Parameters:packet (secsgem.secs.functionbase.SecsStreamFunction) – packet to be sent
set_ec(ec, value)

Set contents of one Equipment Constant.

Parameters:
  • ec (int) – id of Equipment Constant
  • value (various) – new content of Equipment Constant
set_ecs(ecs)

Set contents of supplied Equipment Constants.

Parameters:ecs (list) – list containing list of id / value pairs
stream_function(stream, function)

Get class for stream and function.

Parameters:
  • stream (int) – stream to get function for
  • function (int) – function to get
Returns:

matching stream and function class

Return type:

secsSxFx class

unregister_stream_function(stream, function)

Unregister the function callback for stream and function.

Parameters:
  • stream (integer) – stream to unregister callback for
  • function (integer) – function to register callback for
waitfor_communicating(timeout=None)

Wait until connection gets into communicating state. Returns immediately if state is communicating.

Parameters:timeout (float) – seconds to wait before aborting
Returns:True if state is communicating, False if timed out
Return type:bool