Skip to content

Commit

Permalink
Merge pull request #48 from synthead/add-sync-start-stop-for-protocol-1
Browse files Browse the repository at this point in the history
Add Sync, Start, and Stop models for protocol 1
  • Loading branch information
synthead committed Sep 12, 2022
2 parents cdaa274 + ef3d212 commit 7784c3f
Show file tree
Hide file tree
Showing 8 changed files with 94 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/timex_datalink_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
require "timex_datalink_client/version"
require "timex_datalink_client/notebook_adapter"

require "timex_datalink_client/protocol_1/end"
require "timex_datalink_client/protocol_1/start"
require "timex_datalink_client/protocol_1/sync"

require "timex_datalink_client/protocol_3/alarm"
require "timex_datalink_client/protocol_3/eeprom"
require "timex_datalink_client/protocol_3/eeprom/anniversary"
Expand Down
10 changes: 10 additions & 0 deletions lib/timex_datalink_client/protocol_1/end.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# frozen_string_literal: true

require "timex_datalink_client/end"

class TimexDatalinkClient
class Protocol1
class End < End
end
end
end
20 changes: 20 additions & 0 deletions lib/timex_datalink_client/protocol_1/start.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# frozen_string_literal: true

require "timex_datalink_client/helpers/crc_packets_wrapper"

class TimexDatalinkClient
class Protocol1
class Start
prepend Helpers::CrcPacketsWrapper

CPACKET_START = [0x20, 0x00, 0x00, 0x01]

# Compile packets for data start command.
#
# @return [Array<Array<Integer>>] Two-dimensional array of integers that represent bytes.
def packets
[CPACKET_START]
end
end
end
end
10 changes: 10 additions & 0 deletions lib/timex_datalink_client/protocol_1/sync.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# frozen_string_literal: true

require "timex_datalink_client/sync"

class TimexDatalinkClient
class Protocol1
class Sync < Sync
end
end
end
13 changes: 13 additions & 0 deletions spec/lib/timex_datalink_client/protocol_1/end_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

require "spec_helper"

describe TimexDatalinkClient::Protocol1::End do
let(:end_instance) { described_class.new }

describe "#packets", :crc do
subject(:packets) { end_instance.packets }

it_behaves_like "CRC-wrapped packets", [[0x21]]
end
end
13 changes: 13 additions & 0 deletions spec/lib/timex_datalink_client/protocol_1/start_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

require "spec_helper"

describe TimexDatalinkClient::Protocol1::Start do
let(:start) { described_class.new }

describe "#packets", :crc do
subject(:packets) { start.packets }

it_behaves_like "CRC-wrapped packets", [[0x20, 0x00, 0x00, 0x01]]
end
end
20 changes: 20 additions & 0 deletions spec/lib/timex_datalink_client/protocol_1/sync_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# frozen_string_literal: true

require "spec_helper"

describe TimexDatalinkClient::Protocol1::Sync do
let(:length) { 200 }
let(:sync) { described_class.new(length: length) }

describe "#packets" do
subject(:packets) { sync.packets }

it { should eq([[0x55] * length + [0xaa] * 40]) }

context "when length is 350" do
let(:length) { 350 }

it { should eq([[0x55] * length + [0xaa] * 40]) }
end
end
end
4 changes: 4 additions & 0 deletions timex_datalink_client.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ Gem::Specification.new do |s|
"lib/timex_datalink_client/helpers/crc_packets_wrapper.rb",
"lib/timex_datalink_client/helpers/length_packet_wrapper.rb",

"lib/timex_datalink_client/protocol_1/end.rb",
"lib/timex_datalink_client/protocol_1/start.rb",
"lib/timex_datalink_client/protocol_1/sync.rb",

"lib/timex_datalink_client/protocol_3/alarm.rb",
"lib/timex_datalink_client/protocol_3/eeprom.rb",
"lib/timex_datalink_client/protocol_3/eeprom/anniversary.rb",
Expand Down

0 comments on commit 7784c3f

Please sign in to comment.