Final SW Version 8
This commit is contained in:
@@ -6,6 +6,9 @@
|
|||||||
PinState *MeyPin = NULL;
|
PinState *MeyPin = NULL;
|
||||||
CanInterface *CanBusses = NULL;
|
CanInterface *CanBusses = NULL;
|
||||||
uint16_t myDeviceId;
|
uint16_t myDeviceId;
|
||||||
|
byte _deviceTypeId = 0;
|
||||||
|
byte _majorHardwareVersion = 0;
|
||||||
|
byte _minorHardwareVersion = 0;
|
||||||
|
|
||||||
void SetupMeyPin(PinState *state)
|
void SetupMeyPin(PinState *state)
|
||||||
{
|
{
|
||||||
@@ -27,8 +30,11 @@ void ForEachCanInterface(void (*handle)(MCP2515 *canInterace))
|
|||||||
CanBusses->ForEachInterface(handle);
|
CanBusses->ForEachInterface(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupMeyCan()
|
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId)
|
||||||
{
|
{
|
||||||
|
_majorHardwareVersion = majorHardwareVersion;
|
||||||
|
_minorHardwareVersion = minorHardwareVersion;
|
||||||
|
_deviceTypeId = deviceTypeId;
|
||||||
CalculateMyDeviceId();
|
CalculateMyDeviceId();
|
||||||
|
|
||||||
if (MeyPin != NULL);
|
if (MeyPin != NULL);
|
||||||
@@ -192,14 +198,13 @@ void SendVersionPackage(MCP2515 *interface)
|
|||||||
{
|
{
|
||||||
can_frame toSend;
|
can_frame toSend;
|
||||||
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
|
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
|
||||||
toSend.can_dlc = 6;
|
toSend.can_dlc = 5;
|
||||||
|
|
||||||
toSend.data[0] = SOFTWARE_VERSION_HIGH;
|
toSend.data[0] = SOFTWARE_VERSION_HIGH;
|
||||||
toSend.data[1] = SOFTWARE_VERSION_LOW;
|
toSend.data[1] = SOFTWARE_VERSION_LOW;
|
||||||
toSend.data[2] = HARDWARE_VERSION_HIGH;
|
toSend.data[2] = _majorHardwareVersion;
|
||||||
toSend.data[3] = HARDWARE_VERSION_LOW;
|
toSend.data[3] = _minorHardwareVersion;
|
||||||
toSend.data[4] = (myDeviceId >> 8) & 0xFF;
|
toSend.data[4] = _deviceTypeId;
|
||||||
toSend.data[5] = myDeviceId & 0xFF;
|
|
||||||
|
|
||||||
DoSendCanPkg(interface, &toSend);
|
DoSendCanPkg(interface, &toSend);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ typedef struct CanInterface
|
|||||||
handle(this->interface, frame);
|
handle(this->interface, frame);
|
||||||
|
|
||||||
if (this->next != NULL)
|
if (this->next != NULL)
|
||||||
this->next->ForEach(handle, frame);
|
this->next->ForEach(handle, frame, exclude);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddCanInterface(CanInterface *newCanInterface)
|
void AddCanInterface(CanInterface *newCanInterface)
|
||||||
@@ -99,7 +99,7 @@ const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
|
|||||||
void AddCanInterface(byte pinId);
|
void AddCanInterface(byte pinId);
|
||||||
void SetMeyPin(byte index, byte meyPinId, 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));
|
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace));
|
||||||
bool ReadPin(PinState *state);
|
bool ReadPin(PinState *state);
|
||||||
|
|||||||
@@ -3,27 +3,48 @@
|
|||||||
#include "MeyCan.h";
|
#include "MeyCan.h";
|
||||||
#include "MeyRule.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;
|
struct can_frame incomingCanFrame;
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
SPI.begin();
|
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
|
AddToggle(UP_KUECHE_FLUR, 1, SW_ANBAU, 2);
|
||||||
AddToggleInverse(0x051F, 5, 0x3D2D, 3); // Lichtschalter Wohnzimmer Licht 2
|
AddToggle(UP_KUECHE_FLUR, 2, SW_ANBAU, 3);
|
||||||
AddToggle(0x05df, 1, 0x3D2D, 4); // Licht 1 von Terassenschalter
|
AddToggle(UP_KUECHE_BAD, 1, SW_ANBAU, 2);
|
||||||
AddToggle(0x05df, 1, 0x3D2D, 3); // Licht 2 von Terassenschalter
|
AddSimple(UP_KUECHE_BAD, 3, SW_ANBAU, 1);
|
||||||
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);
|
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7);
|
||||||
|
|
||||||
@@ -44,7 +65,7 @@ void setup() {
|
|||||||
AddCanInterface(PIN_PB1);
|
AddCanInterface(PIN_PB1);
|
||||||
|
|
||||||
|
|
||||||
SetupMeyCan();
|
SetupMeyCan(7, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -58,5 +79,6 @@ void CheckCanInterface(MCP2515 *interface)
|
|||||||
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK)
|
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK)
|
||||||
{
|
{
|
||||||
HandleFrame(&incomingCanFrame, interface);
|
HandleFrame(&incomingCanFrame, interface);
|
||||||
|
HandleRules(&incomingCanFrame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user