timex_datalink_client 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/timex_datalink_client/helpers/char_encoders.rb +2 -2
  3. data/lib/timex_datalink_client/protocol_1/eeprom/anniversary.rb +44 -0
  4. data/lib/timex_datalink_client/protocol_1/eeprom/appointment.rb +49 -0
  5. data/lib/timex_datalink_client/protocol_1/eeprom/list.rb +43 -0
  6. data/lib/timex_datalink_client/protocol_1/eeprom/phone_number.rb +56 -0
  7. data/lib/timex_datalink_client/protocol_1/end.rb +12 -2
  8. data/lib/timex_datalink_client/protocol_1/sync.rb +33 -3
  9. data/lib/timex_datalink_client/protocol_3/eeprom/anniversary.rb +44 -0
  10. data/lib/timex_datalink_client/protocol_3/eeprom/appointment.rb +49 -0
  11. data/lib/timex_datalink_client/protocol_3/eeprom/list.rb +43 -0
  12. data/lib/timex_datalink_client/protocol_3/eeprom/phone_number.rb +56 -0
  13. data/lib/timex_datalink_client/protocol_3/end.rb +12 -2
  14. data/lib/timex_datalink_client/protocol_3/sync.rb +33 -3
  15. data/lib/timex_datalink_client/protocol_9/alarm.rb +63 -0
  16. data/lib/timex_datalink_client/protocol_9/eeprom/chrono.rb +47 -0
  17. data/lib/timex_datalink_client/protocol_9/eeprom/phone_number.rb +74 -0
  18. data/lib/timex_datalink_client/protocol_9/eeprom.rb +85 -0
  19. data/lib/timex_datalink_client/protocol_9/end.rb +20 -0
  20. data/lib/timex_datalink_client/protocol_9/sound_options.rb +42 -0
  21. data/lib/timex_datalink_client/protocol_9/start.rb +20 -0
  22. data/lib/timex_datalink_client/protocol_9/sync.rb +40 -0
  23. data/lib/timex_datalink_client/protocol_9/time.rb +61 -0
  24. data/lib/timex_datalink_client/protocol_9/time_name.rb +46 -0
  25. data/lib/timex_datalink_client/protocol_9/timer.rb +54 -0
  26. data/lib/timex_datalink_client/version.rb +1 -1
  27. data/lib/timex_datalink_client.rb +25 -8
  28. metadata +22 -9
  29. data/lib/timex_datalink_client/eeprom/anniversary.rb +0 -42
  30. data/lib/timex_datalink_client/eeprom/appointment.rb +0 -47
  31. data/lib/timex_datalink_client/eeprom/list.rb +0 -41
  32. data/lib/timex_datalink_client/eeprom/phone_number.rb +0 -56
  33. data/lib/timex_datalink_client/end.rb +0 -18
  34. data/lib/timex_datalink_client/sync.rb +0 -37
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "timex_datalink_client/helpers/char_encoders"
4
- require "timex_datalink_client/helpers/length_packet_wrapper"
5
-
6
- class TimexDatalinkClient
7
- class Eeprom
8
- class List
9
- include Helpers::CharEncoders
10
- prepend Helpers::LengthPacketWrapper
11
-
12
- attr_accessor :list_entry, :priority
13
-
14
- # Create a List instance.
15
- #
16
- # @param list_entry [String] List entry text.
17
- # @param priority [Integer] List priority.
18
- # @return [List] List instance.
19
- def initialize(list_entry:, priority:)
20
- @list_entry = list_entry
21
- @priority = priority
22
- end
23
-
24
- # Compile a packet for a list.
25
- #
26
- # @return [Array<Integer>] Array of integers that represent bytes.
27
- def packet
28
- [
29
- priority,
30
- list_entry_characters
31
- ].flatten
32
- end
33
-
34
- private
35
-
36
- def list_entry_characters
37
- eeprom_chars_for(list_entry)
38
- end
39
- end
40
- end
41
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "timex_datalink_client/helpers/char_encoders"
4
- require "timex_datalink_client/helpers/length_packet_wrapper"
5
-
6
- class TimexDatalinkClient
7
- class Eeprom
8
- class PhoneNumber
9
- include Helpers::CharEncoders
10
- prepend Helpers::LengthPacketWrapper
11
-
12
- PHONE_DIGITS = 12
13
-
14
- attr_accessor :name, :number, :type
15
-
16
- # Create a PhoneNumber instance.
17
- #
18
- # @param name [String] Name associated to phone number.
19
- # @param number [String] Phone number text.
20
- # @param type [String] Phone number type.
21
- # @return [PhoneNumber] PhoneNumber instance.
22
- def initialize(name:, number:, type: " ")
23
- @name = name
24
- @number = number
25
- @type = type
26
- end
27
-
28
- # Compile a packet for a phone number.
29
- #
30
- # @return [Array<Integer>] Array of integers that represent bytes.
31
- def packet
32
- [
33
- number_with_type_characters,
34
- name_characters,
35
- ].flatten
36
- end
37
-
38
- private
39
-
40
- def number_with_type_truncated
41
- number_with_type = "#{number} #{type}"
42
- padded_number_with_type = number_with_type.rjust(PHONE_DIGITS)
43
-
44
- padded_number_with_type[0..PHONE_DIGITS - 1]
45
- end
46
-
47
- def number_with_type_characters
48
- phone_chars_for(number_with_type_truncated)
49
- end
50
-
51
- def name_characters
52
- eeprom_chars_for(name)
53
- end
54
- end
55
- end
56
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "timex_datalink_client/helpers/crc_packets_wrapper"
4
-
5
- class TimexDatalinkClient
6
- class End
7
- prepend Helpers::CrcPacketsWrapper
8
-
9
- CPACKET_SKIP = [0x21]
10
-
11
- # Compile packets for data end command.
12
- #
13
- # @return [Array<Array<Integer>>] Two-dimensional array of integers that represent bytes.
14
- def packets
15
- [CPACKET_SKIP]
16
- end
17
- end
18
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class TimexDatalinkClient
4
- class Sync
5
- SYNC_1_BYTE = [0x55]
6
- SYNC_2_BYTE = [0xaa]
7
-
8
- SYNC_2_LENGTH = 40
9
-
10
- attr_accessor :length
11
-
12
- # Create a Sync instance.
13
- #
14
- # @param length [Integer] Number of 0x55 sync bytes to use.
15
- # @return [Sync] Sync instance.
16
- def initialize(length: 300)
17
- @length = length
18
- end
19
-
20
- # Compile packets for syncronization data.
21
- #
22
- # @return [Array<Array<Integer>>] Two-dimensional array of integers that represent bytes.
23
- def packets
24
- [render_sync_1 + render_sync_2]
25
- end
26
-
27
- private
28
-
29
- def render_sync_1
30
- SYNC_1_BYTE * length
31
- end
32
-
33
- def render_sync_2
34
- SYNC_2_BYTE * SYNC_2_LENGTH
35
- end
36
- end
37
- end