#include "lin_bus.h"
uint16_t Power = 175; // set to required power
uint8_t Temperature = 45; // set to required temperature
// Create an IntervalTimer object
IntervalTimer myTimer;
int ledState = LOW; // ledState used to set the LED
unsigned long interval = 200000; // interval at which to blinkLED to run every 0.2 seconds
//#define DIAGNOSTIC_FRAME_SLAVE 0x55
LIN lin;
int lin_cs = 32;
int led1 = 23;
int lin_fault = 28;
uint8_t linTXdata[4] = { 0, 0, 0, 0 };
uint8_t linRXdata[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
byte id = 0;
//void get_HVH50_full_status(id, linRXdata, 8) {
//Serial.print("CRC: ");
//Serial.println(lin.response(DIAGNOSTIC_FRAME_SLAVE, linRXdata, length),HEX);
//}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(lin_fault,INPUT);
pinMode(lin_cs, OUTPUT);
digitalWrite(lin_cs, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
lin.begin(&Serial3, 9600);
//lin.begin(&Serial3, 19200);
delay(1000);
pinMode(led1,OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Serial.begin(115200);
Serial.println("HVH Full Status Demo");
myTimer.begin(blinkLED, interval);
}
void loop() {
//get_HVH50_full_status(id, linTXdata, 4, lin2x); // set power, temp and heater ON // 9600: 21 instead of 35
//delay(3000);
//lin.response(22, linRXdata, 8, lin2x); // read the data from the HVH // 9600: 22 instead of 24
if (id < 256 ) {id++;}
//Serial.print(lin.response(id, linRXdata, 8,lin2x ));
//Serial.print("CRC: ");
Serial.println(id);
Serial.println(lin.response(id, linRXdata, 8),HEX);
for (int i = 0; i < 8; i++) { // display the raw data
//if (linRXdata[i] <8)
//Serial.println("0");
Serial.println(linRXdata[i], HEX);
Serial.println(" ");
//delay(100);
digitalToggle(LED_BUILTIN);
delay(100);
}
//void frame(uint8_t* data, uint8_t length) {
// for (int i=0; i<length; i++) {
// for (int i = 0; i < 8; i++) {
// if (data[i] < 0x55)
//if (data[i] <8)
//Serial.print("0");
//Serial.print(data[i], HEX);
//Serial.print(" ");
// }
// Serial.println();
}
void blinkLED() {
ledState = !ledState;
digitalWrite(LED_BUILTIN, ledState);
digitalWrite(led1, ledState);
}