use '!' as end of frame sync

This commit is contained in:
Aart van Halteren
2013-06-26 16:45:00 -04:00
parent 5e1712afac
commit 6443d70bcf
2 changed files with 7 additions and 5 deletions

View File

@@ -1,10 +1,11 @@
class InSyncState < StatePattern::State class InSyncState < StatePattern::State
# END_OF_FRAME = "!\n" END_OF_FRAME = "!\n"
def handle_byte_stream(bytes) def handle_byte_stream(bytes)
idx = 0 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}" #p "Sync length: #{sync_length}"
frame = "" frame = ""
@@ -30,6 +31,7 @@ class InSyncState < StatePattern::State
private private
def new_frame_starts(bytes,idx,sync_pattern_length) 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
end end

View File

@@ -14,8 +14,8 @@ ActiveRecord::Base.establish_connection(connection_details)
# # Open connection to serial port # # Open connection to serial port
ser = SerialPort.new("/dev/ttyUSB1", 9600, 7, 1, SerialPort::EVEN) ser = SerialPort.new("/dev/ttyUSB1", 9600, 7, 1, SerialPort::EVEN)
lines = "" lines = ""
for i in 0..22 for i in 0..21
lines = lines+ser.readline("\n").gsub(/\r/, '') lines = lines+ser.readline("\n").gsub(/\r/, '')
end end
# # read until newline # # read until newline