userhypearmor
| 
 | 09/27/2016 | 
|  | 08/05/2016 | 
| #include <SPI.h>
#include "mcp_can.h"
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* strtol */
const int SPI_CS_PIN = 9;
MCP_CAN CAN(SPI_CS_PIN);
void setup()
{
  Serial.begin(115200);
  while (CAN_OK != CAN.begin(CAN_500KBPS))
  {
      delay(100);
  }
  // CAN_EXTID_REMOTE
  //CAN.init_Filt(0, CAN_EXTID, 0x1FFFFFFF);
  //CAN.init_Mask(0, CAN_EXTID, 0x1FFFFFFF);
}
int ticks = 0;
const int size = 17;
double buf[size];
unsigned char rxBuf[8];
long unsigned int rxId;
unsigned char len = 0;
void loop()
{
  //CAN.readMsgBuf(&len, rxBuf);
  //rxId = CAN.getCanId();
  CAN.readMsgBufID(&rxId, &len, rxBuf);
  
  if (CAN.checkError() == false)
  {
    Serial.println("CAN ERROR");
  }
  if (CAN.isExtendedFrame())
  {
    Serial.println("Extended Frame");
  }
  /*if (rxId >= 300 && rxId <= 400)
  {
    Serial.println(rxId);
  }*/
  if (ticks == 1000)
  {
    ticks = 0;
    for (int i =0; i < size; i++)
    {
      Serial.print(buf[i]);
      if (i != size - 1)
      {
        Serial.print(',');
      }
    }
    Serial.println();
  }
  
  ticks++;
  if (rxId == 321)
  {
    if (rxBuf[5] > 130)
    {
      buf[0] = (rxBuf[4] + ((rxBuf[5] - 128) * 256));
    }
    else
    {
      buf[0] = (rxBuf[4] + (rxBuf[5] * 256));
    }
    buf[14] = (rxBuf[4] % 256);
    buf[15] = (rxBuf[5] / 256) + 0x80;
    
    buf[12] = (rxBuf[2] + ((rxBuf[3]-37) * 256)) / 2048;
  }
  else if (rxId == 320)
  {
    buf[1] = rxBuf[0]; // accel pos
  }
  else if (rxId == 209)
  {
    buf[2] = rxBuf[2]; // brake pos
    buf[3] = (rxBuf[0] + (rxBuf[1] * 256)); // log
    
    // arf fine? log again
    if (rxBuf[7] > 14)
    {
      buf[4] = rxBuf[7] - 256;
    }
    else
    {
      buf[4] = rxBuf[7];
    }
    
  }
  else if (rxId == 864)
  {
    buf[5] = rxBuf[4]; // load
    buf[6] = rxBuf[0] + (rxBuf[1] * 256); // log
  }
  else if (rxId == 322)
  {
    if (rxBuf[1] > 130)
    {
      //buf[7] = (rxBuf[0] + ((((100/128) * rxBuf[1]) - 100) * 256));
    }
    else
    {
      //buf[7] = (rxBuf[0] + (((100/128) * rxBuf[1]) * 256));
    }
    //=IF([@8]>=166, ((100/128)*[@8])-100,(100/128)*[@8])
    if (rxBuf[1] >= 166)
    {
      buf[8] = ((100/128) * rxBuf[1]) - 100;
    }
    else
    {
      buf[8] = (100/128) * rxBuf[1];
    }
    
  }
  else if (rxId == 324)
  {
    buf[9] = rxBuf[2]; // log again
  }
  else if (rxId == 211)
  {
    buf[10] = rxBuf[4]; // speeds up with road speed and or rpm
    buf[13] = rxBuf[5];
    buf[11] = rxBuf[7]; // clutch slip?
  }
  else if (rxId == 865)
  {
    buf[16] = rxBuf[0]; // gear
  }
  
}
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/ | 08/05/2016 | 
|  | 07/23/2016 | 
|  | 07/17/2016 | 
