Тема: CITROEN-ARDUINO
Показать сообщение отдельно
Старый 15.07.2015, 23:54   #7
Bersenev
Бывалый писикарщик
 
Аватар для Bersenev
 
Регистрация: 23.04.2009
Возраст: 53
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
Bersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant future
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
Какой программой можно анализировать траффик с ком порта?
А то эта угадайка на долго.
А это как повезёт, по работе приходится искать в протоколах в основном скорость и уровень топлива, иногда на это уходит часов шесть, а иногда 5 минут.

Я сделал себе программу для анализа протокола, протокол формирует этот скетч.

Код:
#include <mcp_can.h>
#include <SPI.h>

INT32U canId = 0x000;

unsigned char len = 0;
unsigned char buf[8];
char str[20];
int count = 0;

MCP_CAN CAN0(10);

void setup()
{
  Serial.begin(38400);
  while(!Serial){}
  
START_INIT:

  if(CAN0.begin(CAN_500KBPS) == CAN_OK) 
    {
      Serial.println("CAN BUS Shield init ok!");
    }
    else 
    {
            Serial.println("CAN BUS Shield init fail");
            Serial.println("Init CAN BUS Shield again");
            delay(100);
            goto START_INIT;
    }
    
  pinMode(18, INPUT); 
}

void loop()
{
      
    if(!digitalRead(18))                         
    {
      CAN0.readMsgBuf(&len, buf);              
      canId = CAN0.getCanId();                    
      
      Serial.print("<");Serial.print(canId);Serial.print(",");
      for(int i = 0; i<len; i++)
      {
        Serial.print(buf[i]);Serial.print(",");
      }
      Serial.print(">");
      Serial.println();
    }
}
Так что можешь сделать файл этим скетчем, отправь мне, а я посмотрю.

Только для того что бы найти обороты надо сделать следующее:

Подключить шилд к машине, запустить монитор ком порта, включить зажигание секунд на пять, потом завести машину, потом медленно давить на газ что бы обороты плавно подымались, а потом также плавно опускать обороты до холостых. После этого глушим машину и сохраняем протокол. Вот тогда что бы найти обороты понадобится минут десять.

Для скорости почти тоже самое, только надо равномерно разогнать машину километров до 40 - 50-ти, а потом также спокойно остановиться.

Для уровня топлива нужны протоколы до и после заправок.
Bersenev вне форума   Ответить с цитированием