Changed Sensor Output formating
This commit is contained in:
63
main.cpp
63
main.cpp
@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user