Final SW Version 8

This commit is contained in:
Meydin87
2023-07-30 17:07:49 +02:00
parent ad72be85b1
commit c8ffe71fca
3 changed files with 52 additions and 25 deletions

View File

@@ -6,6 +6,9 @@
PinState *MeyPin = NULL;
CanInterface *CanBusses = NULL;
uint16_t myDeviceId;
byte _deviceTypeId = 0;
byte _majorHardwareVersion = 0;
byte _minorHardwareVersion = 0;
void SetupMeyPin(PinState *state)
{
@@ -27,8 +30,11 @@ void ForEachCanInterface(void (*handle)(MCP2515 *canInterace))
CanBusses->ForEachInterface(handle);
}
void SetupMeyCan()
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId)
{
_majorHardwareVersion = majorHardwareVersion;
_minorHardwareVersion = minorHardwareVersion;
_deviceTypeId = deviceTypeId;
CalculateMyDeviceId();
if (MeyPin != NULL);
@@ -192,14 +198,13 @@ void SendVersionPackage(MCP2515 *interface)
{
can_frame toSend;
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
toSend.can_dlc = 6;
toSend.can_dlc = 5;
toSend.data[0] = SOFTWARE_VERSION_HIGH;
toSend.data[1] = SOFTWARE_VERSION_LOW;
toSend.data[2] = HARDWARE_VERSION_HIGH;
toSend.data[3] = HARDWARE_VERSION_LOW;
toSend.data[4] = (myDeviceId >> 8) & 0xFF;
toSend.data[5] = myDeviceId & 0xFF;
toSend.data[2] = _majorHardwareVersion;
toSend.data[3] = _minorHardwareVersion;
toSend.data[4] = _deviceTypeId;
DoSendCanPkg(interface, &toSend);
}

View File

@@ -24,7 +24,7 @@ typedef struct CanInterface
handle(this->interface, frame);
if (this->next != NULL)
this->next->ForEach(handle, frame);
this->next->ForEach(handle, frame, exclude);
}
void AddCanInterface(CanInterface *newCanInterface)
@@ -99,7 +99,7 @@ const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
void AddCanInterface(byte pinId);
void SetMeyPin(byte index, byte meyPinId, byte pinId);
void SetupMeyCan();
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId);
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace));
bool ReadPin(PinState *state);

View File

@@ -3,27 +3,48 @@
#include "MeyCan.h";
#include "MeyRule.h";
const int16_t SW_FLUR = 0XD238;
const int16_t SW_ANBAU = 0x87A9;
const int16_t SW_WOHNZIMMER = 0x87CA;
const int16_t UP_WOHNZIMMER_TUER = 0x051F;
const int16_t UP_WOHNZIMMER_TERASSE = 0x05df;
const int16_t UP_FLUR_EINGANG = 0x0769;
const int16_t UP_BUERO = 0x1177;
const int16_t UP_FLUR_BUERO = 0x05A1;
const int16_t UP_FLUR_KUECHE = 0x01EF;
const int16_t UP_KINDERZIMMER = 0x0196;
const int16_t UP_FLUR_ELTERN = 0x0632;
const int16_t UP_KUECHE_FLUR = 0x07F5;
const int16_t UP_KUECHE_BAD = 0x0585;
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
AddToggleInverse(UP_WOHNZIMMER_TUER, 5, SW_WOHNZIMMER, 4); // Lichtschalter Wohnzimmer Licht 1
AddToggleInverse(UP_WOHNZIMMER_TUER, 5, SW_WOHNZIMMER, 3); // Lichtschalter Wohnzimmer Licht 2
AddToggle(UP_WOHNZIMMER_TERASSE, 1, SW_WOHNZIMMER, 4); // Licht 1 von Terassenschalter
AddToggle(UP_WOHNZIMMER_TERASSE, 1, SW_WOHNZIMMER, 3); // Licht 2 von Terassenschalter
AddToggle(UP_FLUR_EINGANG, 1, SW_WOHNZIMMER, 6); // Eingangstür Flur Licht 2
AddToggle(UP_FLUR_EINGANG, 1, SW_FLUR, 1); //Eingangstür Flur Licht 1
AddSimple(UP_WOHNZIMMER_TUER, 3, SW_WOHNZIMMER, 1); // Licht 1 Wochzimmer Eingangstür
AddSimple(UP_WOHNZIMMER_TUER, 4, SW_WOHNZIMMER, 2); // Licht 2 Wochzimmer Eingangstür
AddToggle(UP_BUERO, 1, SW_WOHNZIMMER, 7); // Licht Papa Büro
AddToggle(UP_FLUR_BUERO, 1, SW_WOHNZIMMER, 6); // Flurlicht von Papas Büro
AddToggle(UP_FLUR_BUERO, 1, SW_FLUR, 1); // Flurlicht von Papas Büro
AddToggle(UP_FLUR_KUECHE, 1, SW_WOHNZIMMER, 6); // Flurlicht von Papas Büro
AddToggle(UP_FLUR_KUECHE, 1, SW_FLUR, 1); // Flurlicht von Papas Büro
AddToggle(UP_KINDERZIMMER, 3, SW_WOHNZIMMER, 6); // Flurlicht von Papas Büro
AddToggle(UP_KINDERZIMMER, 3, SW_FLUR, 1); // Flurlicht von Papas Büro
AddToggle(UP_FLUR_ELTERN, 1, SW_FLUR, 5); // Flurlicht von Papas Büro
AddToggle(UP_KUECHE_FLUR, 1, SW_ANBAU, 2);
AddToggle(UP_KUECHE_FLUR, 2, SW_ANBAU, 3);
AddToggle(UP_KUECHE_BAD, 1, SW_ANBAU, 2);
AddSimple(UP_KUECHE_BAD, 3, SW_ANBAU, 1);
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7);
@@ -44,7 +65,7 @@ void setup() {
AddCanInterface(PIN_PB1);
SetupMeyCan();
SetupMeyCan(7, 0, 1);
}
@@ -58,5 +79,6 @@ void CheckCanInterface(MCP2515 *interface)
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK)
{
HandleFrame(&incomingCanFrame, interface);
HandleRules(&incomingCanFrame);
}
}