Class: Cosmos::StreamInterface
- Defined in:
- lib/cosmos/interfaces/stream_interface.rb
Overview
Base class for interfaces that act read and write from a stream
Direct Known Subclasses
Constant Summary
Constants included from ApiShared
ApiShared::DEFAULT_TLM_POLLING_RATE
Constants included from Extract
Extract::SCANNING_REGULAR_EXPRESSION
Instance Attribute Summary collapse
-
#stream ⇒ Object
Returns the value of attribute stream.
Attributes inherited from Interface
#auto_reconnect, #bytes_read, #bytes_written, #cmd_routers, #connect_on_startup, #disable_disconnect, #interfaces, #name, #num_clients, #options, #override_tlm, #packet_log_writer_pairs, #protocol_info, #raw_logger_pair, #read_count, #read_protocols, #read_queue_size, #read_raw_data, #read_raw_data_time, #reconnect_delay, #routers, #stored_packet_log_writer_pairs, #target_names, #thread, #write_count, #write_protocols, #write_queue_size, #written_raw_data, #written_raw_data_time
Instance Method Summary collapse
- #connect ⇒ Object
- #connected? ⇒ Boolean
- #disconnect ⇒ Object
-
#initialize(protocol_type = nil, protocol_args = []) ⇒ StreamInterface
constructor
A new instance of StreamInterface.
- #read_interface ⇒ Object
- #write_interface(data) ⇒ Object
Methods inherited from Interface
#_normalize_tlm, #_override, #_override_tlm, #_override_tlm_raw, #_write, #add_protocol, #convert_data_to_packet, #convert_packet_to_data, #copy_to, #read, #read_allowed?, #read_interface_base, #set_option, #start_raw_logging, #stop_raw_logging, #write, #write_allowed?, #write_interface_base, #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, #cmd_tlm_clear_counters, #cmd_tlm_reload, #connect_interface, #connect_router, #disable_limits, #disable_limits_group, #disconnect_interface, #disconnect_router, #enable_limits, #enable_limits_group, #get_all_cmd_info, #get_all_interface_info, #get_all_packet_logger_info, #get_all_router_info, #get_all_target_info, #get_all_tlm_info, #get_background_tasks, #get_cmd_buffer, #get_cmd_cnt, #get_cmd_hazardous, #get_cmd_list, #get_cmd_log_filename, #get_cmd_param_list, #get_cmd_time, #get_cmd_value, #get_interface_info, #get_interface_names, #get_interface_targets, #get_limits, #get_limits_event, #get_limits_groups, #get_limits_set, #get_limits_sets, #get_out_of_limits, #get_output_logs_filenames, #get_overall_limits_state, #get_packet, #get_packet_data, #get_packet_logger_info, #get_packet_loggers, #get_router_info, #get_router_names, #get_saved_config, #get_screen_definition, #get_screen_list, #get_server_message, #get_server_message_log_filename, #get_server_status, #get_stale, #get_target_ignored_items, #get_target_ignored_parameters, #get_target_info, #get_target_list, #get_tlm_buffer, #get_tlm_cnt, #get_tlm_details, #get_tlm_item_list, #get_tlm_list, #get_tlm_log_filename, #get_tlm_packet, #get_tlm_values, #inject_tlm, #interface_state, #limits_enabled?, #map_target_to_interface, #normalize_tlm, #override_tlm, #override_tlm_raw, #replay_move_end, #replay_move_index, #replay_move_start, #replay_play, #replay_reverse_play, #replay_select_file, #replay_set_playback_delay, #replay_status, #replay_step_back, #replay_step_forward, #replay_stop, #router_state, #send_raw, #set_limits, #set_limits_set, #set_tlm, #set_tlm_raw, #start_background_task, #start_cmd_log, #start_logging, #start_new_server_message_log, #start_raw_logging_interface, #start_raw_logging_router, #start_tlm_log, #stop_background_task, #stop_cmd_log, #stop_logging, #stop_raw_logging_interface, #stop_raw_logging_router, #stop_tlm_log, #subscribe_limits_events, #subscribe_packet_data, #subscribe_server_messages, #tlm, #tlm_formatted, #tlm_raw, #tlm_variable, #tlm_with_units, #unsubscribe_limits_events, #unsubscribe_packet_data, #unsubscribe_server_messages
Constructor Details
#initialize(protocol_type = nil, protocol_args = []) ⇒ StreamInterface
Returns a new instance of StreamInterface.
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 18 def initialize(protocol_type = nil, protocol_args = []) super() @stream = nil @protocol_type = ConfigParser::handle_nil(protocol_type) @protocol_args = protocol_args if @protocol_type protocol_class_name = protocol_type.to_s.capitalize << 'Protocol' klass = Cosmos.require_class(protocol_class_name.class_name_to_filename) add_protocol(klass, protocol_args, :READ_WRITE) end end |
Instance Attribute Details
#stream ⇒ Object
Returns the value of attribute stream.
16 17 18 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 16 def stream @stream end |
Instance Method Details
#connect ⇒ Object
30 31 32 33 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 30 def connect super() @stream.connect if @stream end |
#connected? ⇒ Boolean
35 36 37 38 39 40 41 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 35 def connected? if @stream @stream.connected? else false end end |
#disconnect ⇒ Object
43 44 45 46 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 43 def disconnect @stream.disconnect if @stream super() end |
#read_interface ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 48 def read_interface begin data = @stream.read rescue Timeout::Error Logger.instance.error "#{@name}: Timeout waiting for data to be read" data = nil end return nil if data.nil? or data.length <= 0 read_interface_base(data) data end |
#write_interface(data) ⇒ Object
60 61 62 63 |
# File 'lib/cosmos/interfaces/stream_interface.rb', line 60 def write_interface(data) write_interface_base(data) @stream.write(data) end |