module MaxCube::Messages::TCP::Parser::MessageH
Hello message
Constants
- KEYS
Mandatory hash keys.
- LENGTHS
Private Instance Methods
parse_tcp_h(body)
click to toggle source
# File lib/maxcube/messages/tcp/type/h.rb, line 26 def parse_tcp_h(body) values = body.split(',') check_msg_part_lengths(LENGTHS, *values) values[1], _, values[4], values[5], values[6], _, _, values[9], values[10] = to_ints(16, 'RF address, ' \ 'firmware version, ' \ 'HTTP connection ID, ' \ 'duty cycle, ' \ 'free memory slots, ' \ 'Cube date, ' \ 'Cube time, ' \ 'state Cube time (clock set), ' \ 'NTP counter', values[1], values[2], values[4], values[5], values[6], values[7], values[8], values[9], values[10]) parse_tcp_h_cube_datetime(values) KEYS.zip(values).to_h end
parse_tcp_h_cube_datetime(values)
click to toggle source
# File lib/maxcube/messages/tcp/type/h.rb, line 50 def parse_tcp_h_cube_datetime(values) date, time = values[7..8] year = 2000 + date[0..1].to_i(16) month = date[2..3].to_i(16) day = date[4..5].to_i(16) hours = time[0..1].to_i(16) minutes = time[2..3].to_i(16) values[7] = Time.new(year, month, day, hours, minutes) values.delete_at(8) rescue ArgumentError raise InvalidMessageBody .new(@msg_type, 'invalid datetime format (YYMMDD HHMM): ' \ "#{date} #{time} " \ "-> #{year}-#{month}-#{day} #{hours}:#{minutes}") end