Тема: CITROEN-ARDUINO
Показать сообщение отдельно
Старый 08.02.2016, 17:49   #177
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

так ребят, не наступите на грабли! Я час потратил чтоб разобраться! Символы переведённые способом char(), переводятся все и получается что даже не видимые символы могут потом складываться с видимыми давая чудесные результаты!
вот окончательный код сборки строки.
через | выводится что поддерживает данная станция.
PHP код:
          if(canId == 293) // 125HEX
          
{
            if ((
buf[0] >> 4) == 0x01)
            {
              
LengthP = ((buf[0] & 0x0F) * 256 + buf[1]) - 6;
              
DataBufSize = 2;
              
DataBuf[0]=buf[6];
              
DataBuf[1]=buf[7];
            }    

            if(((
buf[0] >> 4) == 0x02) && LengthP > 0){
              if (
LengthP > 8)
              {
                for (
int i=1; i < 8;i++) DataBuf[i + DataBufSize - 1] = buf[i];
                
DataBufSize = DataBufSize + 7;
                
LengthP = LengthP - 7;
              }
              else{
                for (
int i=1; i < LengthP+1;i++) DataBuf[i + DataBufSize - 1] = buf[i];
                
DataBufSize = DataBufSize + LengthP;
                
                
//OUT OF MESSAGE
                
for (int c=0; c < DataBufSize/9;c++){
                    
String strmsg;
                  for (
int i= 9*c; i < (9*c)+8;i++){
                    if (
DataBuf[i] > 31) strmsg = strmsg + char(DataBuf[i]);
                    else  
strmsg = strmsg + " ";
                  }
                  
strmsg = strmsg + "|" + String(DataBuf[(9*c)+8]);
                  
Message[c] = strmsg;
                }
                for (
int i=0; i < DataBufSize/9;i++) Serial.println(Message[i]);
                }
            }  
          
          } 
T_r_D вне форума   Ответить с цитированием