Merge branch 'f/advanced-receiver' into gateway
This commit is contained in:
commit
fdc7712b9d
70
gateway/include/output.h
Normal file
70
gateway/include/output.h
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
static const char* bin2tristate(const char* bin);
|
||||||
|
static char * dec2binWzerofill(unsigned long Dec, unsigned int bitLength);
|
||||||
|
|
||||||
|
void output(unsigned long decimal, unsigned int length, unsigned int delay, unsigned int* raw, unsigned int protocol) {
|
||||||
|
|
||||||
|
const char* b = dec2binWzerofill(decimal, length);
|
||||||
|
Serial.print("Decimal: ");
|
||||||
|
Serial.print(decimal);
|
||||||
|
Serial.print(" (");
|
||||||
|
Serial.print( length );
|
||||||
|
Serial.print("Bit) Binary: ");
|
||||||
|
Serial.print( b );
|
||||||
|
Serial.print(" Tri-State: ");
|
||||||
|
Serial.print( bin2tristate( b) );
|
||||||
|
Serial.print(" PulseLength: ");
|
||||||
|
Serial.print(delay);
|
||||||
|
Serial.print(" microseconds");
|
||||||
|
Serial.print(" Protocol: ");
|
||||||
|
Serial.println(protocol);
|
||||||
|
|
||||||
|
Serial.print("Raw data: ");
|
||||||
|
for (unsigned int i=0; i<= length*2; i++) {
|
||||||
|
Serial.print(raw[i]);
|
||||||
|
Serial.print(",");
|
||||||
|
}
|
||||||
|
Serial.println();
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char* bin2tristate(const char* bin) {
|
||||||
|
static char returnValue[50];
|
||||||
|
int pos = 0;
|
||||||
|
int pos2 = 0;
|
||||||
|
while (bin[pos]!='\0' && bin[pos+1]!='\0') {
|
||||||
|
if (bin[pos]=='0' && bin[pos+1]=='0') {
|
||||||
|
returnValue[pos2] = '0';
|
||||||
|
} else if (bin[pos]=='1' && bin[pos+1]=='1') {
|
||||||
|
returnValue[pos2] = '1';
|
||||||
|
} else if (bin[pos]=='0' && bin[pos+1]=='1') {
|
||||||
|
returnValue[pos2] = 'F';
|
||||||
|
} else {
|
||||||
|
return "not applicable";
|
||||||
|
}
|
||||||
|
pos = pos+2;
|
||||||
|
pos2++;
|
||||||
|
}
|
||||||
|
returnValue[pos2] = '\0';
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char * dec2binWzerofill(unsigned long Dec, unsigned int bitLength) {
|
||||||
|
static char bin[64];
|
||||||
|
unsigned int i=0;
|
||||||
|
|
||||||
|
while (Dec > 0) {
|
||||||
|
bin[32+i++] = ((Dec & 1) > 0) ? '1' : '0';
|
||||||
|
Dec = Dec >> 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (unsigned int j = 0; j< bitLength; j++) {
|
||||||
|
if (j >= bitLength - i) {
|
||||||
|
bin[j] = bin[ 31 + i - (j - (bitLength - i)) ];
|
||||||
|
} else {
|
||||||
|
bin[j] = '0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bin[bitLength] = '\0';
|
||||||
|
|
||||||
|
return bin;
|
||||||
|
}
|
||||||
@ -23,7 +23,7 @@ lib_deps =
|
|||||||
adafruit/Adafruit Unified Sensor@^1.1.4
|
adafruit/Adafruit Unified Sensor@^1.1.4
|
||||||
adafruit/DHT sensor library@1.3.10
|
adafruit/DHT sensor library@1.3.10
|
||||||
https://git.hodos.ro/arduino/lib_serial-reader.git@^1.0.0
|
https://git.hodos.ro/arduino/lib_serial-reader.git@^1.0.0
|
||||||
build_flags = -D DHT_SENSOR=0
|
build_flags = -D DHT_SENSOR=0 -D DEBUG_RAW=0
|
||||||
upload_port = /dev/ttyUSB0
|
upload_port = /dev/ttyUSB0
|
||||||
check_tool = cppcheck
|
check_tool = cppcheck
|
||||||
check_flags = --enable=all
|
check_flags = --enable=all
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
#include "Dht.h"
|
#include "Dht.h"
|
||||||
#include "Protocol_1.h"
|
#include "Protocol_1.h"
|
||||||
#include "Protocol_2.h"
|
#include "Protocol_2.h"
|
||||||
|
#include "output.h"
|
||||||
#include <SerialReader.h>
|
#include <SerialReader.h>
|
||||||
|
|
||||||
#define RESET_PIN 10
|
#define RESET_PIN 10
|
||||||
@ -48,6 +49,12 @@ Protocol* findProtocol(unsigned int protocol) {
|
|||||||
|
|
||||||
void readRcSwitch() {
|
void readRcSwitch() {
|
||||||
if (mySwitch.available()) {
|
if (mySwitch.available()) {
|
||||||
|
#if DEBUG_RAW
|
||||||
|
if (mySwitch.available()) {
|
||||||
|
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
|
||||||
|
mySwitch.resetAvailable();
|
||||||
|
}
|
||||||
|
#else
|
||||||
unsigned long value = mySwitch.getReceivedValue();
|
unsigned long value = mySwitch.getReceivedValue();
|
||||||
mySwitch.resetAvailable();
|
mySwitch.resetAvailable();
|
||||||
|
|
||||||
@ -59,6 +66,7 @@ void readRcSwitch() {
|
|||||||
serializeJson(jsonDoc, Serial);
|
serializeJson(jsonDoc, Serial);
|
||||||
Serial.println();
|
Serial.println();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user