Files
info.linkwitz.ha_pcb/Software/Switch/Switch.ino
2023-07-18 07:31:20 +02:00

63 lines
1.9 KiB
C++

#include <SPI.h>;
#include <mcp2515.h>;
#include "MeyCan.h";
#include "MeyRule.h";
struct can_frame incomingCanFrame;
void setup() {
SPI.begin();
AddToggleInverse(0x051F, 5, 0x3D2D, 4); // Lichtschalter Wohnzimmer Licht 1
AddToggleInverse(0x051F, 5, 0x3D2D, 3); // Lichtschalter Wohnzimmer Licht 2
AddToggle(0x05df, 1, 0x3D2D, 4); // Licht 1 von Terassenschalter
AddToggle(0x05df, 1, 0x3D2D, 3); // Licht 2 von Terassenschalter
AddToggle(0x0769, 1, 0x3D2D, 6); // Eingangstür Flur Licht 2
AddToggle(0x0769, 1, 0x9829, 1); //Eingangstür Flur Licht 1
AddSimple(0x051F, 3, 0x3D2D, 1); // Licht 1 Wochzimmer Eingangstür
AddSimple(0x051F, 4, 0x3D2D, 2); // Licht 2 Wochzimmer Eingangstür
AddToggle(0x1177, 1, 0x3D2D, 7); // Licht Papa Büro
AddToggle(0x05A1, 1, 0x3D2D, 6); // Flurlicht von Papas Büro
AddToggle(0x05A1, 1, 0x9829, 1); // Flurlicht von Papas Büro
AddToggle(0x01EF, 1, 0x3D2D, 6); // Flurlicht von Papas Büro
AddToggle(0x01EF, 1, 0x9829, 1); // Flurlicht von Papas Büro
AddToggle(0x0196, 3, 0x3D2D, 6); // Flurlicht von Papas Büro
AddToggle(0x0196, 3, 0x9829, 1); // Flurlicht von Papas Büro
AddToggle(0x0632, 1, 0x9829, 5); // Flurlicht von Papas Büro
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7);
delay(10); // a bit delay for mcp2515 to get the clock
SetMeyPin(0, 1, PIN_PC7);
SetMeyPin(1, 2, PIN_PC6);
SetMeyPin(2, 3, PIN_PC5);
SetMeyPin(3, 4, PIN_PC4);
SetMeyPin(4, 5, PIN_PC3);
SetMeyPin(5, 6, PIN_PC2);
SetMeyPin(6, 7, PIN_PC1);
SetMeyPin(7, 8, PIN_PC0);
AddCanInterface(PIN_PA2);
AddCanInterface(PIN_PA3);
AddCanInterface(PIN_PB0);
AddCanInterface(PIN_PB1);
SetupMeyCan();
}
void loop()
{
ForEachCanInterface(CheckCanInterface);
}
void CheckCanInterface(MCP2515 *interface)
{
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK)
{
HandleFrame(&incomingCanFrame, interface);
}
}