Class: AstmServer
- Inherits:
-
Object
- Object
- AstmServer
- Includes:
- LabInterface, UsbModule
- Defined in:
- lib/ruby_astm/astm_server.rb
Constant Summary
Constants included from LabInterface
LabInterface::ACK, LabInterface::CR, LabInterface::ENQ, LabInterface::EOT, LabInterface::ETX, LabInterface::LF, LabInterface::STX
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(server_ip = nil, server_port = nil, mpg = nil, respond_to_queries = false, serial_port = '/dev/ttyS0', usb_port = '/dev/ttyUSB0', serial_baud = 9600, serial_parity = 8, usb_baud = 19200, usb_parity = 8) ⇒ AstmServer
constructor
DEFAULT SERIAL PORT : /dev/ttyS0 DEFAULT USB PORT : /dev/ttyUSB0.
- #start_server ⇒ Object
Methods included from UsbModule
#begin_patient_results, #interpret?, #parse_usb_response, #request_results, #request_status, #request_version
Methods included from LabInterface
#checksum, #data_buffer, #generate_response, #process_text, #process_text_file, #process_type, #receive_data, #root, #send_enq, #terminator, #unbind
Constructor Details
#initialize(server_ip = nil, server_port = nil, mpg = nil, respond_to_queries = false, serial_port = '/dev/ttyS0', usb_port = '/dev/ttyUSB0', serial_baud = 9600, serial_parity = 8, usb_baud = 19200, usb_parity = 8) ⇒ AstmServer
DEFAULT SERIAL PORT : /dev/ttyS0 DEFAULT USB PORT : /dev/ttyUSB0
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/ruby_astm/astm_server.rb', line 35 def initialize(server_ip=nil,server_port=nil,mpg=nil,respond_to_queries=false,serial_port='/dev/ttyS0',usb_port='/dev/ttyUSB0',serial_baud=9600,serial_parity=8,usb_baud=19200,usb_parity=8) $redis = Redis.new AstmServer.log("Initializing AstmServer") self.server_ip = server_ip || "127.0.0.1" self.server_port = server_port || 3000 self.respond_to_queries = respond_to_queries self.serial_port = serial_port self.serial_baud = serial_baud self.serial_parity = serial_parity self.usb_port = usb_port self.usb_baud = usb_baud self.usb_parity = usb_parity $mappings = JSON.parse(IO.read(mpg || AstmServer.default_mappings)) end |
Class Method Details
.default_mappings ⇒ Object
22 23 24 |
# File 'lib/ruby_astm/astm_server.rb', line 22 def self.default_mappings File.join AstmServer.root_path,"mappings.json" end |
.log(message) ⇒ Object
13 14 15 16 |
# File 'lib/ruby_astm/astm_server.rb', line 13 def self.log() puts "" + $redis.zadd("ruby_astm_log",Time.now.to_i,) end |
.root_path ⇒ Object
18 19 20 |
# File 'lib/ruby_astm/astm_server.rb', line 18 def self.root_path File.dirname __dir__ end |
Instance Method Details
#start_server ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/ruby_astm/astm_server.rb', line 50 def start_server EventMachine.run { serial = EventMachine.open_serial(serial_port, serial_baud, serial_parity,LabInterface) puts "RUNNING SERIAL ON #{serial_port} ------------ #{serial.to_s}" self.ethernet_server = EventMachine::start_server self.server_ip, self.server_port, LabInterface AstmServer.log("Running ETHERNET SERVER on #{server_port}") usb = EventMachine.open_serial(usb_port,usb_baud,usb_parity) self.usb_response_bytes = [] EM.add_periodic_timer(5) do puts "running usb on #{usb_port}" puts "sending machine data request #{request_results}" usb.send_data(request_results) end usb.on_data do |data| parse_usb_response(data) end } end |