src/main.cpp

changeset 36
a6c7292742a0
parent 35
b2dca6b935bb
child 37
07e8ca2bdf6d
equal deleted inserted replaced
35:b2dca6b935bb 36:a6c7292742a0
70 KP_C0, KP_C1, 70 KP_C0, KP_C1,
71 KP_C2, KP_C3, 71 KP_C2, KP_C3,
72 KP_C4 72 KP_C4
73 }; 73 };
74 74
75 /* mapping (RxC) 75 /* key mapping
76 0x2 0x00: View 76 RxC code name
77 0x1 0x01: Mon 77 0x2 0x00 View
78 3x3 0x02: Sto/Rcl 78 0x1 0x01 Mon
79 0x0 0x03: Scan 79 3x3 0x02 Sto/Rcl
80 1x2 0x04: Alarm 80 0x0 0x03 Scan
81 1x1 0x05: Mx+B 81 1x2 0x04 Alarm
82 1x0 0x06: Measure 82 1x1 0x05 Mx+B
83 2x0 0x07: Interval 83 1x0 0x06 Measure
84 3x2 0x08: Card Reset 84 2x0 0x07 Interval
85 3x1 0x09: Close 85 3x2 0x08 Card Reset
86 3x0 0x0A: Open 86 3x1 0x09 Close
87 0x3 0x0B: Read 87 3x0 0x0A Open
88 2x3 0x0C: Shift 88 0x3 0x0B Read
89 1x3 0x0D: Write 89 2x3 0x0C Shift
90 0x4 0x0E: Left 90 1x3 0x0D Write
91 1x4 0x0F: Right 91 0x4 0x0E Left
92 2x2 0x10: Advanced 92 1x4 0x0F Right
93 2x1 0x11: Step 93 2x2 0x10 Advanced
94 2x1 0x11 Step
94 */ 95 */
95 96
96 uint8_t kp_mapping[KP_NROWS][KP_NCOLS] = { // [row][column] 97 uint8_t kp_mapping[KP_NROWS][KP_NCOLS] = {
97 {0x03, 0x01, 0x00, 0x0B, 0x0E}, 98 {0x03, 0x01, 0x00, 0x0B, 0x0E},
98 {0x06, 0x05, 0x04, 0x0D, 0x0F}, 99 {0x06, 0x05, 0x04, 0x0D, 0x0F},
99 {0x07, 0x11, 0x10, 0x0C, 0xFF}, 100 {0x07, 0x11, 0x10, 0x0C, 0xFF},
100 {0x0A, 0x09, 0x08, 0x02, 0xFF} 101 {0x0A, 0x09, 0x08, 0x02, 0xFF}
101 }; 102 };
102
103 103
104 void kp_cb(uint8_t row, uint8_t col); 104 void kp_cb(uint8_t row, uint8_t col);
105 void kr_cb(uint8_t row, uint8_t col); 105 void kr_cb(uint8_t row, uint8_t col);
106 106
107 Keypad *kpad; 107 Keypad *kpad;
768 for (uint8_t i=0; i<7; i++) 768 for (uint8_t i=0; i<7; i++)
769 err[i] = hp->nerrors(i); 769 err[i] = hp->nerrors(i);
770 770
771 printf("CMD[%d] %02X", (int)cmd.id, cmd.cmd); 771 printf("CMD[%d] %02X", (int)cmd.id, cmd.cmd);
772 772
773 // 0x00: main display
774 // 0x0C: channel display
773 if ((cmd.cmd == 0x00) || (cmd.cmd == 0x0C)) 775 if ((cmd.cmd == 0x00) || (cmd.cmd == 0x0C))
774 printf(": '%s'\r\n", cmd.value); 776 printf(": '%s'\r\n", cmd.value);
775 else { 777 else {
776 printf(":"); 778 printf(":");
777 for (uint8_t i=0; i<cmd.size; i++) 779 for (uint8_t i=0; i<cmd.size; i++)
778 printf("%02x ", cmd.value[i]); 780 printf("%02x ", cmd.value[i]);
779 printf("\r\n"); 781 printf("\r\n");
780 } 782 }
781 show(cmd.cmd, cmd.value, cmd.size); 783
784 if (cmd.cmd == 0x01) {
785 // clear a flag
786 if (cmd.value[0] == 0x0E) {
787 // clear the Shift flag
788 shift = false;
789 }
790 } else if (cmd.cmd == 0x86) {
791 // shutdown
792 // TODO
793 } else {
794 // display related commands
795 show(cmd.cmd, cmd.value, cmd.size);
796 }
782 #if defined(HAS_LED) 797 #if defined(HAS_LED)
783 led = 0; 798 led = 0;
784 #endif 799 #endif
785 } 800 }
786 } 801 }

mercurial