equal
deleted
inserted
replaced
102 delete oldConfig; |
102 delete oldConfig; |
103 } |
103 } |
104 |
104 |
105 void cDriverPICCtl::SignalHandler(int signal) |
105 void cDriverPICCtl::SignalHandler(int signal) |
106 { |
106 { |
107 // uint8_t i; |
107 //uint8_t i; |
108 |
108 |
109 // read all available data |
109 // read all available data |
110 while (instance->port->ReadData(&buf[buf_pos]) > 0) |
110 while (instance->port->ReadData(&buf[buf_pos]) > 0) |
111 { |
111 { |
112 // search for SYNC byte |
112 // search for SYNC byte |
113 if ((buf[buf_pos] == CMD_SYNC_RECV) && (!buf_flag_escape)) |
113 if ((buf[buf_pos] == CMD_SYNC_RECV) && (!buf_flag_escape)) |
114 { |
114 { |
115 if (buf_cmd_start != 255) |
115 if (buf_cmd_start != 255) |
116 { |
116 { |
|
117 /*printf("Damaged Packet: "); |
|
118 for (i=buf_cmd_start; i<buf_pos; i++) |
|
119 { |
|
120 printf("0x%02x ",buf[i]); |
|
121 } |
|
122 printf("; buf_pos = %d, buf_cmd_start = %d\n",buf_pos,buf_cmd_start);*/ |
|
123 |
117 syslog(LOG_INFO, "PICCtl received a malformed packet. Scrapped %d bytes\n",(buf_pos - buf_cmd_start)); |
124 syslog(LOG_INFO, "PICCtl received a malformed packet. Scrapped %d bytes\n",(buf_pos - buf_cmd_start)); |
118 buf_pos = 0; |
125 buf_pos = 0; |
119 buf[buf_pos] = CMD_SYNC_RECV; |
126 buf[buf_pos] = CMD_SYNC_RECV; |
120 } |
127 } |
121 buf_cmd_start = buf_pos; |
128 buf_cmd_start = buf_pos; |
135 printf("\n");*/ |
142 printf("\n");*/ |
136 |
143 |
137 buf_pos++; |
144 buf_pos++; |
138 |
145 |
139 // we need to check for a valid packet... |
146 // we need to check for a valid packet... |
140 if (buf_pos >= CMD_DATA_START) |
147 if ((buf_pos - buf_cmd_start) >= CMD_DATA_START) |
141 { |
148 { |
142 // if we recieved a valid packet: start decoding |
149 // if we recieved a valid packet: start decoding |
143 if (buf[CMD_HDR_LENGTH+1] == (buf_pos - CMD_DATA_START)) |
150 if (buf[buf_cmd_start + CMD_HDR_LENGTH+1] == (buf_pos - buf_cmd_start - CMD_DATA_START)) |
144 { |
151 { |
145 instance->DecodeCmd(&buf[buf_cmd_start],buf_pos); |
152 instance->DecodeCmd(&buf[buf_cmd_start],buf_pos); |
146 buf_pos = 0; |
153 buf_pos = 0; |
147 buf_cmd_start = 255; |
154 buf_cmd_start = 255; |
148 } |
155 } |
163 { |
170 { |
164 case CMD_SYS_ACK: ack_flag = true; |
171 case CMD_SYS_ACK: ack_flag = true; |
165 break; |
172 break; |
166 |
173 |
167 case CMD_SYS_IR: syslog(LOG_INFO," %s: incoming Key-Event 0x%02x (Source 0x%02x)\n",config->name.c_str(), cmd[CMD_DATA_START+1], cmd[CMD_DATA_START]); |
174 case CMD_SYS_IR: syslog(LOG_INFO," %s: incoming Key-Event 0x%02x (Source 0x%02x)\n",config->name.c_str(), cmd[CMD_DATA_START+1], cmd[CMD_DATA_START]); |
|
175 printf(" %s: incoming Key-Event 0x%02x (Source 0x%02x)\n",config->name.c_str(), cmd[CMD_DATA_START+1], cmd[CMD_DATA_START]); |
168 break; |
176 break; |
169 |
177 |
170 default: syslog(LOG_INFO," %s: recieved Message 0x%x \n",config->name.c_str(), cmd[CMD_HDR_COMMAND]); |
178 default: syslog(LOG_INFO," %s: recieved Message 0x%x \n",config->name.c_str(), cmd[CMD_HDR_COMMAND]); |
171 } |
179 } |
172 |
180 |