timex_datalink_client 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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