Class: Cosmos::SerialInterface
- Inherits:
-
StreamInterface
- Object
- Interface
- StreamInterface
- Cosmos::SerialInterface
- Defined in:
- lib/cosmos/interfaces/serial_interface.rb
Overview
Provides a base class for interfaces that use serial ports
Constant Summary
Constants included from Extract
Extract::SCANNING_REGULAR_EXPRESSION
Instance Attribute Summary
Attributes inherited from Interface
#auto_reconnect, #bytes_read, #bytes_written, #connect_on_startup, #disable_disconnect, #interfaces, #name, #num_clients, #options, #packet_log_writer_pairs, #raw_logger_pair, #read_count, #read_queue_size, #reconnect_delay, #routers, #target_names, #thread, #write_count, #write_queue_size
Instance Method Summary collapse
-
#connect ⇒ Object
Connects the stream protocol to a new SerialStream using the parameters passed in the constructor.
-
#initialize(write_port_name, read_port_name, baud_rate, parity, stop_bits, write_timeout, read_timeout, stream_protocol_type, *stream_protocol_args) ⇒ SerialInterface
constructor
Creates a serial interface which uses the specified stream protocol.
Methods inherited from StreamInterface
#bytes_read, #bytes_read=, #bytes_written, #bytes_written=, #connected?, #disconnect, #post_read_data, #post_read_packet, #pre_write_packet, #read, #write, #write_raw
Methods inherited from Interface
#connected?, #copy_to, #disconnect, #post_identify_packet, #read, #read_allowed?, #set_option, #start_raw_logging, #stop_raw_logging, #write, #write_allowed?, #write_raw, #write_raw_allowed?
Methods included from Api
#cmd, #cmd_no_checks, #cmd_no_hazardous_check, #cmd_no_range_check, #cmd_raw, #cmd_raw_no_checks, #cmd_raw_no_hazardous_check, #cmd_raw_no_range_check, #connect_interface, #connect_router, #disable_limits, #disable_limits_group, #disconnect_interface, #disconnect_router, #enable_limits, #enable_limits_group, #get_cmd_hazardous, #get_cmd_list, #get_cmd_log_filename, #get_cmd_param_list, #get_cmd_time, #get_cmd_value, #get_interface_names, #get_limits, #get_limits_event, #get_limits_groups, #get_limits_set, #get_limits_sets, #get_out_of_limits, #get_overall_limits_state, #get_packet_data, #get_router_names, #get_server_message_log_filename, #get_stale, #get_target_list, #get_tlm_details, #get_tlm_item_list, #get_tlm_list, #get_tlm_log_filename, #get_tlm_packet, #get_tlm_values, #interface_state, #limits_enabled?, #map_target_to_interface, #router_state, #send_raw, #set_limits, #set_limits_set, #set_tlm, #set_tlm_raw, #start_cmd_log, #start_logging, #start_new_server_message_log, #start_raw_logging_interface, #start_raw_logging_router, #start_tlm_log, #stop_cmd_log, #stop_logging, #stop_raw_logging_interface, #stop_raw_logging_router, #stop_tlm_log, #subscribe_limits_events, #subscribe_packet_data, #tlm, #tlm_formatted, #tlm_raw, #tlm_variable, #tlm_with_units, #unsubscribe_limits_events, #unsubscribe_packet_data
Constructor Details
#initialize(write_port_name, read_port_name, baud_rate, parity, stop_bits, write_timeout, read_timeout, stream_protocol_type, *stream_protocol_args) ⇒ SerialInterface
Creates a serial interface which uses the specified stream protocol.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/cosmos/interfaces/serial_interface.rb', line 35 def initialize(write_port_name, read_port_name, baud_rate, parity, stop_bits, write_timeout, read_timeout, stream_protocol_type, *stream_protocol_args) super(stream_protocol_type, *stream_protocol_args) @write_port_name = ConfigParser.handle_nil(write_port_name) @read_port_name = ConfigParser.handle_nil(read_port_name) @baud_rate = baud_rate @parity = parity.to_s.intern @stop_bits = stop_bits @write_timeout = write_timeout @read_timeout = read_timeout @write_allowed = false unless @write_port_name @write_raw_allowed = false unless @write_port_name @read_allowed = false unless @read_port_name end |
Instance Method Details
#connect ⇒ Object
Connects the stream protocol to a new Cosmos::SerialStream using the parameters passed in the constructor.
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/cosmos/interfaces/serial_interface.rb', line 61 def connect stream = SerialStream.new( @write_port_name, @read_port_name, @baud_rate, @parity, @stop_bits, @write_timeout, @read_timeout) stream.raw_logger_pair = @raw_logger_pair @stream_protocol.connect(stream) end |