graphlcd-base/glcddrivers/picctl.c
changeset 20 23b8c749e5a0
parent 18 8cd4c128bd99
child 29 2723893dc865
equal deleted inserted replaced
19:ad1139d9e73f 20:23b8c749e5a0
   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