Final SW Version 8
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(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
|
||||
|
||||
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
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user