Changed Sensor Output formating

This commit is contained in:
IMback
2018-10-29 18:21:42 +01:00
parent 2fa8104164
commit 5dac2e5ff9
7 changed files with 318 additions and 12 deletions

View File

@ -10,6 +10,7 @@
#include "eeprom.h"
#include "bitrep.h"
#include "staticvector.h"
#include "W433DataReciver.h"
#define COMMAND_BUFFER_SIZE 64
#define SNPRINTF_BUFFER_SIZE 64
@ -21,6 +22,13 @@ char buffer[SNPRINTF_BUFFER_SIZE];
SVector<WirelessRelay, MAX_RELAYS> relays;
bool flag = false;
ISR(PCINT1_vect)
{
W433DataReciver::staticInterrupt();
}
inline static void printHelp(Serial* serial)
{
@ -270,6 +278,7 @@ void serialDispatch(Serial* serial, SVector<WirelessRelay, MAX_RELAYS>* relays,
unsigned int length = serial->getString(buffer, COMMAND_BUFFER_SIZE);
if(length > 2)
{
cli();
char* token = strtok(buffer, " \n");
if(strcmp(token, "relay") == 0)
{
@ -311,10 +320,28 @@ void serialDispatch(Serial* serial, SVector<WirelessRelay, MAX_RELAYS>* relays,
{
serial->write_p(PSTR("Not a valid command\n"));
}
sei();
}
}
}
void temperaturePacketRecived(uint32_t data, void* userData)
{
Serial* serial = reinterpret_cast<Serial*>(userData);
if(data >> 24 == 1)
{
serial->write_p(PSTR("SENSOR TYPE: "));
serial->write(data >> 24);
serial->write_p(PSTR(" ID: "));
serial->write((data & 0x00FF0000) >> 16);
serial->write_p(PSTR(" TEMPERATURE: "));
serial->write((data & 0x0000FF00) >> 8);
serial->write_p(PSTR(" HUMIDITY: "));
serial->write(data & 0x000000FF);
serial->putChar('\n');
}
}
int main()
{
@ -340,8 +367,12 @@ int main()
RgbLed rgbled( &pwmTc0, &pwmTc2 );
Pwm16b pwmTc1 ( &TCCR1A, &TCCR1B, &OCR1A, &OCR1B, &ICR1, 0b00000001, true, false);
serial.write_p(PSTR("RGBController v0.7 starting\n"));
setBit(&PCICR, PCIE1, true);
setBit(&PCMSK1, PCINT8, true);
W433DataReciver reciver(&PINC, PC0, &TCNT1, &TIFR1, &temperaturePacketRecived, reinterpret_cast<void*>(&serial));
serial.write_p(PSTR("RGBController v0.8 starting\n"));
load();
@ -355,9 +386,14 @@ int main()
_delay_ms(10);
if(doorOne != readPin(&PINB, PB3))
{
doorOne = readPin(&PINB, PB3);
serial.write("D1");
doorOne ? serial.write("O\n") : serial.write("C\n");
doorOne = readPin(&PINB, PB3);
serial->write_p(PSTR("SENSOR TYPE: "));
serial->putChar('0');
serial->write_p(PSTR(" ID: "));
serial->putChar('0');
serial->write_p(PSTR(" STATE: "));
serial->write(doorOne);
serial->putChar('\n');
}
}
@ -366,9 +402,14 @@ int main()
_delay_ms(10);
if(doorTow != readPin(&PINB, PB4))
{
doorTow = readPin(&PINB, PB4);
serial.write("D2");
doorTow ? serial.write("O\n") : serial.write("C\n");
doorTow = readPin(&PINB, PB3);
serial->write_p(PSTR("SENSOR TYPE: "));
serial->putChar('0');
serial->write_p(PSTR(" ID: "));
serial->putChar('1');
serial->write_p(PSTR(" STATE: "));
serial->write(doorTow);
serial->putChar('\n');
}
}
if(doorTow) openCount++;
@ -378,6 +419,12 @@ int main()
openCount = 0;
}
if(flag)
{
flag = false;
serial.write("flag\n");
}
_delay_ms(2);
}