From 6443d70bcf904e6f0c99d1dbe4c2c55e607240ea Mon Sep 17 00:00:00 2001 From: Aart van Halteren Date: Wed, 26 Jun 2013 16:45:00 -0400 Subject: [PATCH] use '!' as end of frame sync --- app/helpers/InSyncState.rb | 8 +++++--- smartmeter.rb | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/helpers/InSyncState.rb b/app/helpers/InSyncState.rb index 3e9e236..1efe2ab 100644 --- a/app/helpers/InSyncState.rb +++ b/app/helpers/InSyncState.rb @@ -1,10 +1,11 @@ class InSyncState < StatePattern::State - # END_OF_FRAME = "!\n" + END_OF_FRAME = "!\n" def handle_byte_stream(bytes) idx = 0 - sync_pattern_length = Synchronizer::SYNC_PATTERN.length + #sync_pattern_length = Synchronizer::SYNC_PATTERN.length + sync_pattern_length = END_OF_FRAME.length #p "Sync length: #{sync_length}" frame = "" @@ -30,6 +31,7 @@ class InSyncState < StatePattern::State private def new_frame_starts(bytes,idx,sync_pattern_length) - return bytes[idx..idx+sync_pattern_length-1].eql?(Synchronizer::SYNC_PATTERN) + #return bytes[idx..idx+sync_pattern_length-1].eql?(Synchronizer::SYNC_PATTERN) + return bytes[idx..idx+sync_pattern_length-1].eql?(END_OF_FRAME) end end \ No newline at end of file diff --git a/smartmeter.rb b/smartmeter.rb index df12350..954bfcb 100644 --- a/smartmeter.rb +++ b/smartmeter.rb @@ -14,8 +14,8 @@ ActiveRecord::Base.establish_connection(connection_details) # # Open connection to serial port ser = SerialPort.new("/dev/ttyUSB1", 9600, 7, 1, SerialPort::EVEN) lines = "" -for i in 0..22 - lines = lines+ser.readline("\n").gsub(/\r/, '') +for i in 0..21 + lines = lines+ser.readline("\n").gsub(/\r/, '') end # # read until newline