Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Canbus.h>
- #include <defaults.h>
- #include <global.h>
- #include <mcp2515.h>
- #include <mcp2515_defs.h>
- void setup() {
- Serial.begin(500000); // For debug use
- Serial.println("CAN Read - Testing receival of CAN Bus message");
- delay(1000);
- if(Canbus.init(CANSPEED_500)) //Initialise MCP2515 CAN controller at the specified speed
- Serial.println("CAN Init ok");
- else
- Serial.println("Can't init CAN");
- delay(1000);
- }
- //********************************Main Loop*********************************//
- int StartCounting = 0;
- int PowerLoops = 0;
- void loop(){
- tCAN message;
- if (mcp2515_check_message())
- {
- if (mcp2515_get_message(&message))
- {
- if(message.id == 0x2A0 and message.data[0] == 0x1F and message.data[1] == 0xFF and message.data[2] == 0xFF and message.data[3] == 0xFF and message.data[4] == 0x10 and message.data[5] == 0x00 and message.data[6] == 0x1E and message.data[7] == 0x02)
- {
- Serial.println("power button pressed, counting");
- StartCounting = 1;
- }
- if(StartCounting == 1)
- {
- if(message.id == 0x2A0 and message.data[0] == 0x1F and message.data[1] == 0xFF and message.data[2] == 0xFF and message.data[3] == 0xFF and message.data[4] == 0x10 and message.data[5] == 0x00 and message.data[6] == 0x1E and message.data[7] == 0x00)
- {
- Serial.println("still pressed");
- PowerLoops++;
- }
- }
- if(message.id == 0x2A0 and message.data[0] == 0x1F and message.data[1] == 0xFF and message.data[2] == 0xFF and message.data[3] == 0xFF and message.data[4] == 0x00 and message.data[5] == 0x00 and message.data[6] == 0x1E and message.data[7] == 0x00)
- {
- StartCounting = 0;
- Serial.println("button released. counts: ");
- Serial.println(PowerLoops);
- if(PowerLoops >= 3)
- {
- Serial.println("turn audio back on");
- Serial.println("power press");
- message.id = 0x2A0; //formatted in HEX
- message.header.rtr = 0;
- message.header.length = 8; //formatted in DEC
- message.data[0] = 0x1F;
- message.data[1] = 0xFF;
- message.data[2] = 0xFF;
- message.data[3] = 0xFF; //formatted in HEX
- message.data[4] = 0x10;
- message.data[5] = 0x00;
- message.data[6] = 0xFF;
- message.data[7] = 0x02;
- mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
- mcp2515_send_message(&message);
- Serial.println("power release");
- message.id = 0x2A0; //formatted in HEX
- message.header.rtr = 0;
- message.header.length = 8; //formatted in DEC
- message.data[0] = 0x1F;
- message.data[1] = 0xFF;
- message.data[2] = 0xFF;
- message.data[3] = 0xFF; //formatted in HEX
- message.data[4] = 0x00;
- message.data[5] = 0x00;
- message.data[6] = 0xFF;
- message.data[7] = 0x00;
- mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
- mcp2515_send_message(&message);
- Serial.println("screen off");
- message.id = 0x2A0; //formatted in HEX
- message.header.rtr = 0;
- message.header.length = 8; //formatted in DEC
- message.data[0] = 0x50;
- message.data[1] = 0xFF;
- message.data[2] = 0xFF;
- message.data[3] = 0xFF; //formatted in HEX
- message.data[4] = 0x10;
- message.data[5] = 0x00;
- message.data[6] = 0xFF;
- message.data[7] = 0x02;
- mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
- mcp2515_send_message(&message);
- message.id = 0x2A0; //formatted in HEX
- message.header.rtr = 0;
- message.header.length = 8; //formatted in DEC
- message.data[0] = 0x50;
- message.data[1] = 0xFF;
- message.data[2] = 0xFF;
- message.data[3] = 0xFF; //formatted in HEX
- message.data[4] = 0x00;
- message.data[5] = 0x00;
- message.data[6] = 0xFF;
- message.data[7] = 0x00;
- mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
- mcp2515_send_message(&message);
- }
- PowerLoops = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement