remove beacon monitormode
This commit is contained in:
parent
de2e576599
commit
49aba50df1
23
README.md
23
README.md
@ -154,7 +154,6 @@ Paxcounter generates identifiers for sniffed Wifi or Bluetooth MAC adresses and
|
|||||||
- Quick blink (20ms on each 1/5 second): joining LoRaWAN network in progress or pending
|
- Quick blink (20ms on each 1/5 second): joining LoRaWAN network in progress or pending
|
||||||
- Small blink (10ms on each 1/2 second): LoRaWAN data transmit in progress or pending
|
- Small blink (10ms on each 1/2 second): LoRaWAN data transmit in progress or pending
|
||||||
- Long blink (200ms on each 2 seconds): LoRaWAN stack error
|
- Long blink (200ms on each 2 seconds): LoRaWAN stack error
|
||||||
- Single long flash (2sec): Known beacon detected
|
|
||||||
|
|
||||||
**RGB LED:**
|
**RGB LED:**
|
||||||
|
|
||||||
@ -164,7 +163,6 @@ Paxcounter generates identifiers for sniffed Wifi or Bluetooth MAC adresses and
|
|||||||
- Pink: LORAWAN MAC transmit in progress
|
- Pink: LORAWAN MAC transmit in progress
|
||||||
- Blue: LoRaWAN data transmit in progress or pending
|
- Blue: LoRaWAN data transmit in progress or pending
|
||||||
- Red: LoRaWAN stack error
|
- Red: LoRaWAN stack error
|
||||||
- White: Known Beacon detected
|
|
||||||
|
|
||||||
# Display
|
# Display
|
||||||
|
|
||||||
@ -190,7 +188,7 @@ Output of sensor and peripheral data is internally switched by a bitmask registe
|
|||||||
| Bit | Sensordata | Default
|
| Bit | Sensordata | Default
|
||||||
| --- | ------------- | -------
|
| --- | ------------- | -------
|
||||||
| 0 | Paxcounter | on
|
| 0 | Paxcounter | on
|
||||||
| 1 | Beacon alarm | on
|
| 1 | unused | off
|
||||||
| 2 | BME280/680 | on
|
| 2 | BME280/680 | on
|
||||||
| 3 | GPS* | on
|
| 3 | GPS* | on
|
||||||
| 4 | User sensor 1 | on
|
| 4 | User sensor 1 | on
|
||||||
@ -320,7 +318,7 @@ Hereafter described is the default *plain* format, which uses MSB bit numbering.
|
|||||||
byte 14: count randomizated MACs only (0=disabled, 1=enabled) [default 1]
|
byte 14: count randomizated MACs only (0=disabled, 1=enabled) [default 1]
|
||||||
byte 15: RGB LED luminosity (0..100 %) [default 30]
|
byte 15: RGB LED luminosity (0..100 %) [default 30]
|
||||||
byte 16: 0 (reserved)
|
byte 16: 0 (reserved)
|
||||||
byte 17: Beacon proximity alarm mode (1=on, 0=off) [default 0]
|
byte 17: 0 (reserved)
|
||||||
bytes 18-28: Software version (ASCII format, terminating with zero)
|
bytes 18-28: Software version (ASCII format, terminating with zero)
|
||||||
|
|
||||||
|
|
||||||
@ -336,10 +334,7 @@ Hereafter described is the default *plain* format, which uses MSB bit numbering.
|
|||||||
|
|
||||||
byte 1: static value 0x01
|
byte 1: static value 0x01
|
||||||
|
|
||||||
**Port #6:** Beacon proximity alarm
|
**Port #6:** (unused)
|
||||||
|
|
||||||
byte 1: Beacon RSSI reception level
|
|
||||||
byte 2: Beacon identifier (0..255)
|
|
||||||
|
|
||||||
**Port #7:** Environmental sensor data (only if device has feature BME)
|
**Port #7:** Environmental sensor data (only if device has feature BME)
|
||||||
|
|
||||||
@ -474,16 +469,6 @@ Send for example `83` `86` as Downlink on Port 2 to get battery status and time/
|
|||||||
0 ... 100 percentage of luminosity (100% = full light)
|
0 ... 100 percentage of luminosity (100% = full light)
|
||||||
e.g. 50 -> 50% of luminosity [default]
|
e.g. 50 -> 50% of luminosity [default]
|
||||||
|
|
||||||
0x11 set beacon proximity alarm mode on/off
|
|
||||||
|
|
||||||
0 = Beacon monitor mode off [default]
|
|
||||||
1 = Beacon monitor mode on, enables proximity alarm if test beacons are seen
|
|
||||||
|
|
||||||
0x12 set or reset a beacon MAC for proximity alarm
|
|
||||||
|
|
||||||
byte 1 = beacon ID (0..255)
|
|
||||||
bytes 2..7 = beacon MAC with 6 digits (e.g. MAC 80:ab:00:01:02:03 -> 0x80ab00010203)
|
|
||||||
|
|
||||||
0x13 set user sensor mode
|
0x13 set user sensor mode
|
||||||
|
|
||||||
byte 1 = user sensor number (1..3)
|
byte 1 = user sensor number (1..3)
|
||||||
@ -493,7 +478,7 @@ Send for example `83` `86` as Downlink on Port 2 to get battery status and time/
|
|||||||
|
|
||||||
byte 1 = sensor data payload mask (0..255, meaning of bits see below)
|
byte 1 = sensor data payload mask (0..255, meaning of bits see below)
|
||||||
0x01 = COUNT_DATA
|
0x01 = COUNT_DATA
|
||||||
0x02 = ALARM_DATA
|
0x02 = RESERVED_DATA
|
||||||
0x04 = MEMS_DATA
|
0x04 = MEMS_DATA
|
||||||
0x08 = GPS_DATA
|
0x08 = GPS_DATA
|
||||||
0x10 = SENSOR_1_DATA (also ENS counter)
|
0x10 = SENSOR_1_DATA (also ENS counter)
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
#ifndef _BEACON_ARRAY_H
|
|
||||||
#define _BEACON_ARRAY_H
|
|
||||||
|
|
||||||
std::array<uint64_t, 0xff>::iterator it;
|
|
||||||
|
|
||||||
std::array<uint64_t, 0xff> beacons = {0x0000010203040506, 0x0000aabbccddeeff,
|
|
||||||
0x0000112233445566};
|
|
||||||
|
|
||||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
// bits in payloadmask for filtering payload data
|
// bits in payloadmask for filtering payload data
|
||||||
#define COUNT_DATA _bit(0)
|
#define COUNT_DATA _bit(0)
|
||||||
#define ALARM_DATA _bit(1)
|
#define RESERVED_DATA _bit(1)
|
||||||
#define MEMS_DATA _bit(2)
|
#define MEMS_DATA _bit(2)
|
||||||
#define GPS_DATA _bit(3)
|
#define GPS_DATA _bit(3)
|
||||||
#define SENSOR1_DATA _bit(4)
|
#define SENSOR1_DATA _bit(4)
|
||||||
@ -72,7 +72,6 @@ typedef struct __attribute__((packed)) {
|
|||||||
uint8_t wifiscan; // 0=disabled, 1=enabled
|
uint8_t wifiscan; // 0=disabled, 1=enabled
|
||||||
uint8_t wifiant; // 0=internal, 1=external (for LoPy/LoPy4)
|
uint8_t wifiant; // 0=internal, 1=external (for LoPy/LoPy4)
|
||||||
uint8_t rgblum; // RGB Led luminosity (0..100%)
|
uint8_t rgblum; // RGB Led luminosity (0..100%)
|
||||||
uint8_t monitormode; // 0=disabled, 1=enabled
|
|
||||||
uint8_t payloadmask; // bitswitches for payload data
|
uint8_t payloadmask; // bitswitches for payload data
|
||||||
uint8_t enscount; // 0=disabled 1= enabled
|
uint8_t enscount; // 0=disabled 1= enabled
|
||||||
|
|
||||||
@ -113,9 +112,6 @@ typedef struct {
|
|||||||
float pm25;
|
float pm25;
|
||||||
} sdsStatus_t;
|
} sdsStatus_t;
|
||||||
|
|
||||||
extern std::array<uint64_t, 0xff>::iterator it;
|
|
||||||
extern std::array<uint64_t, 0xff> beacons;
|
|
||||||
|
|
||||||
extern char clientId[20]; // unique clientID
|
extern char clientId[20]; // unique clientID
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -12,7 +12,6 @@
|
|||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
#include "configmanager.h"
|
#include "configmanager.h"
|
||||||
#include "cyclic.h"
|
#include "cyclic.h"
|
||||||
#include "beacon_array.h"
|
|
||||||
#include "ota.h"
|
#include "ota.h"
|
||||||
#include "irqhandler.h"
|
#include "irqhandler.h"
|
||||||
#include "spislave.h"
|
#include "spislave.h"
|
||||||
|
@ -52,7 +52,6 @@ public:
|
|||||||
void addConfig(configData_t value);
|
void addConfig(configData_t value);
|
||||||
void addStatus(uint16_t voltage, uint64_t uptime, float cputemp, uint32_t mem,
|
void addStatus(uint16_t voltage, uint64_t uptime, float cputemp, uint32_t mem,
|
||||||
uint8_t reset0, uint32_t restarts);
|
uint8_t reset0, uint32_t restarts);
|
||||||
void addAlarm(int8_t rssi, uint8_t message);
|
|
||||||
void addVoltage(uint16_t value);
|
void addVoltage(uint16_t value);
|
||||||
void addGPS(gpsStatus_t value);
|
void addGPS(gpsStatus_t value);
|
||||||
void addBME(bmeStatus_t value);
|
void addBME(bmeStatus_t value);
|
||||||
|
@ -49,7 +49,7 @@ description = Paxcounter is a device for metering passenger flows in realtime. I
|
|||||||
|
|
||||||
[common]
|
[common]
|
||||||
; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
|
; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
|
||||||
release_version = 2.5.0
|
release_version = 2.6.0
|
||||||
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
|
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
|
||||||
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
|
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
|
||||||
debug_level = 3
|
debug_level = 3
|
||||||
|
@ -62,11 +62,6 @@ function Decoder(bytes, port) {
|
|||||||
return decode(bytes, [uint8], ['button']);
|
return decode(bytes, [uint8], ['button']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (port === 6) {
|
|
||||||
// beacon proximity alarm
|
|
||||||
return decode(bytes, [int8, uint8], ['rssi', 'beacon']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (port === 7) {
|
if (port === 7) {
|
||||||
// BME680 sensor data
|
// BME680 sensor data
|
||||||
return decode(bytes, [float, pressure, ufloat, ufloat], ['temperature', 'pressure', 'humidity', 'air']);
|
return decode(bytes, [float, pressure, ufloat, ufloat], ['temperature', 'pressure', 'humidity', 'air']);
|
||||||
@ -248,7 +243,7 @@ var bitmap1 = function (byte) {
|
|||||||
}
|
}
|
||||||
var i = bytesToInt(byte);
|
var i = bytesToInt(byte);
|
||||||
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
||||||
return ['adr', 'screensaver', 'screen', 'countermode', 'blescan', 'antenna', 'reserved', 'alarm']
|
return ['adr', 'screensaver', 'screen', 'countermode', 'blescan', 'antenna', 'reserved', 'reserved']
|
||||||
.reduce(function (obj, pos, index) {
|
.reduce(function (obj, pos, index) {
|
||||||
obj[pos] = +bm[index];
|
obj[pos] = +bm[index];
|
||||||
return obj;
|
return obj;
|
||||||
@ -262,7 +257,7 @@ var bitmap2 = function (byte) {
|
|||||||
}
|
}
|
||||||
var i = bytesToInt(byte);
|
var i = bytesToInt(byte);
|
||||||
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
||||||
return ['battery', 'sensor3', 'sensor2', 'sensor1', 'gps', 'bme', 'alarm', 'counter']
|
return ['battery', 'sensor3', 'sensor2', 'sensor1', 'gps', 'bme', 'reserved', 'counter']
|
||||||
.reduce(function (obj, pos, index) {
|
.reduce(function (obj, pos, index) {
|
||||||
obj[pos] = +bm[index];
|
obj[pos] = +bm[index];
|
||||||
return obj;
|
return obj;
|
||||||
|
@ -49,12 +49,6 @@ function Decoder(bytes, port) {
|
|||||||
decoded.button = bytes[i++];
|
decoded.button = bytes[i++];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (port === 6) {
|
|
||||||
var i = 0;
|
|
||||||
decoded.rssi = bytes[i++];
|
|
||||||
decoded.beacon = bytes[i++];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (port === 7) {
|
if (port === 7) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
decoded.temperature = ((bytes[i++] << 8) | bytes[i++]);
|
decoded.temperature = ((bytes[i++] << 8) | bytes[i++]);
|
||||||
|
@ -70,11 +70,6 @@ function decodeUplink(input) {
|
|||||||
data = decode(input.bytes, [uint8], ['button']);
|
data = decode(input.bytes, [uint8], ['button']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.fPort === 6) {
|
|
||||||
// beacon proximity alarm
|
|
||||||
data = decode(input.bytes, [int8, uint8], ['rssi', 'beacon']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.fPort === 7) {
|
if (input.fPort === 7) {
|
||||||
// BME680 sensor data
|
// BME680 sensor data
|
||||||
data = decode(input.bytes, [float, pressure, ufloat, ufloat], ['temperature', 'pressure', 'humidity', 'air']);
|
data = decode(input.bytes, [float, pressure, ufloat, ufloat], ['temperature', 'pressure', 'humidity', 'air']);
|
||||||
@ -263,7 +258,7 @@ var bitmap1 = function (byte) {
|
|||||||
}
|
}
|
||||||
var i = bytesToInt(byte);
|
var i = bytesToInt(byte);
|
||||||
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
||||||
return ['adr', 'screensaver', 'screen', 'countermode', 'blescan', 'antenna', 'reserved', 'alarm']
|
return ['adr', 'screensaver', 'screen', 'countermode', 'blescan', 'antenna', 'reserved', 'reserved']
|
||||||
.reduce(function (obj, pos, index) {
|
.reduce(function (obj, pos, index) {
|
||||||
obj[pos] = +bm[index];
|
obj[pos] = +bm[index];
|
||||||
return obj;
|
return obj;
|
||||||
@ -277,7 +272,7 @@ var bitmap2 = function (byte) {
|
|||||||
}
|
}
|
||||||
var i = bytesToInt(byte);
|
var i = bytesToInt(byte);
|
||||||
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
var bm = ('00000000' + Number(i).toString(2)).substr(-8).split('').map(Number).map(Boolean);
|
||||||
return ['battery', 'sensor3', 'sensor2', 'sensor1', 'gps', 'bme', 'alarm', 'counter']
|
return ['battery', 'sensor3', 'sensor2', 'sensor1', 'gps', 'bme', 'reserved', 'counter']
|
||||||
.reduce(function (obj, pos, index) {
|
.reduce(function (obj, pos, index) {
|
||||||
obj[pos] = +bm[index];
|
obj[pos] = +bm[index];
|
||||||
return obj;
|
return obj;
|
||||||
|
@ -56,12 +56,6 @@ function decodeUplink(input) {
|
|||||||
data.button = input.bytes[i++];
|
data.button = input.bytes[i++];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.fPort === 6) {
|
|
||||||
var i = 0;
|
|
||||||
data.rssi = input.bytes[i++];
|
|
||||||
data.beacon = input.bytes[i++];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.fPort === 7) {
|
if (input.fPort === 7) {
|
||||||
var i = 0;
|
var i = 0;
|
||||||
data.temperature = ((input.bytes[i++] << 8) | input.bytes[i++]);
|
data.temperature = ((input.bytes[i++] << 8) | input.bytes[i++]);
|
||||||
|
@ -8,9 +8,9 @@ static const char TAG[] = __FILE__;
|
|||||||
|
|
||||||
// default settings for device data to be sent
|
// default settings for device data to be sent
|
||||||
#define PAYLOADMASK \
|
#define PAYLOADMASK \
|
||||||
((GPS_DATA | ALARM_DATA | MEMS_DATA | COUNT_DATA | SENSOR1_DATA | \
|
((GPS_DATA | MEMS_DATA | COUNT_DATA | SENSOR1_DATA | SENSOR2_DATA | \
|
||||||
SENSOR2_DATA | SENSOR3_DATA) & \
|
SENSOR3_DATA) & \
|
||||||
(~BATT_DATA))
|
(~BATT_DATA) & (~RESERVED_DATA))
|
||||||
|
|
||||||
// namespace for device runtime preferences
|
// namespace for device runtime preferences
|
||||||
#define DEVCONFIG "paxcntcfg"
|
#define DEVCONFIG "paxcntcfg"
|
||||||
@ -54,7 +54,6 @@ static void defaultConfig(configData_t *myconfig) {
|
|||||||
myconfig->wifiscan = WIFICOUNTER; // 0=disabled, 1=enabled
|
myconfig->wifiscan = WIFICOUNTER; // 0=disabled, 1=enabled
|
||||||
myconfig->wifiant = 0; // 0=internal, 1=external (for LoPy/LoPy4)
|
myconfig->wifiant = 0; // 0=internal, 1=external (for LoPy/LoPy4)
|
||||||
myconfig->rgblum = RGBLUMINOSITY; // RGB Led luminosity (0..100%)
|
myconfig->rgblum = RGBLUMINOSITY; // RGB Led luminosity (0..100%)
|
||||||
myconfig->monitormode = 0; // 0=disabled, 1=enabled
|
|
||||||
myconfig->payloadmask = PAYLOADMASK; // payloads as defined in default
|
myconfig->payloadmask = PAYLOADMASK; // payloads as defined in default
|
||||||
myconfig->enscount = COUNT_ENS; // 0=disabled, 1=enabled
|
myconfig->enscount = COUNT_ENS; // 0=disabled, 1=enabled
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ User, long press -> send a button message
|
|||||||
Reset -> reset device
|
Reset -> reset device
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define HAS_DISPLAY 1
|
#define HAS_DISPLAY 1
|
||||||
#define MY_DISPLAY_SDA SDA
|
#define MY_DISPLAY_SDA SDA
|
||||||
#define MY_DISPLAY_SCL SCL
|
#define MY_DISPLAY_SCL SCL
|
||||||
#define MY_DISPLAY_RST NOT_A_PIN
|
#define MY_DISPLAY_RST NOT_A_PIN
|
||||||
|
@ -76,12 +76,11 @@ void refreshTheMatrixDisplay(bool nextPage) {
|
|||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
|
|
||||||
if (cfg.countermode == 1)
|
// update counter values from libpax
|
||||||
|
libpax_counter_count(&count_from_libpax);
|
||||||
|
|
||||||
// update counter values from libpax
|
if (cfg.countermode == 1) {
|
||||||
libpax_counter_count(&count_from_libpax);
|
// cumulative counter mode -> display total number of pax
|
||||||
|
|
||||||
{ // cumulative counter mode -> display total number of pax
|
|
||||||
if (ulLastNumMacs != count_from_libpax.pax) {
|
if (ulLastNumMacs != count_from_libpax.pax) {
|
||||||
ulLastNumMacs = count_from_libpax.pax;
|
ulLastNumMacs = count_from_libpax.pax;
|
||||||
matrix.clear();
|
matrix.clear();
|
||||||
|
@ -101,7 +101,7 @@
|
|||||||
#define CONFIGPORT 3 // config query results
|
#define CONFIGPORT 3 // config query results
|
||||||
#define GPSPORT 4 // gps - NOTE: set to 1 to send combined GPS+COUNTERPORT payload
|
#define GPSPORT 4 // gps - NOTE: set to 1 to send combined GPS+COUNTERPORT payload
|
||||||
#define BUTTONPORT 5 // button pressed signal
|
#define BUTTONPORT 5 // button pressed signal
|
||||||
#define BEACONPORT 6 // beacon alarms
|
#define RESERVEDPORT 6 // reserved (unused)
|
||||||
#define BMEPORT 7 // BME680 sensor
|
#define BMEPORT 7 // BME680 sensor
|
||||||
#define BATTPORT 8 // battery voltage
|
#define BATTPORT 8 // battery voltage
|
||||||
#define TIMEPORT 9 // time query and response
|
#define TIMEPORT 9 // time query and response
|
||||||
|
@ -28,11 +28,6 @@ void PayloadConvert::addCount(uint16_t value, uint8_t snifftype) {
|
|||||||
buffer[cursor++] = lowByte(value);
|
buffer[cursor++] = lowByte(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PayloadConvert::addAlarm(int8_t rssi, uint8_t msg) {
|
|
||||||
buffer[cursor++] = rssi;
|
|
||||||
buffer[cursor++] = msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PayloadConvert::addVoltage(uint16_t value) {
|
void PayloadConvert::addVoltage(uint16_t value) {
|
||||||
buffer[cursor++] = highByte(value);
|
buffer[cursor++] = highByte(value);
|
||||||
buffer[cursor++] = lowByte(value);
|
buffer[cursor++] = lowByte(value);
|
||||||
@ -55,7 +50,7 @@ void PayloadConvert::addConfig(configData_t value) {
|
|||||||
buffer[cursor++] = 0; // reserved
|
buffer[cursor++] = 0; // reserved
|
||||||
buffer[cursor++] = value.rgblum;
|
buffer[cursor++] = value.rgblum;
|
||||||
buffer[cursor++] = value.payloadmask;
|
buffer[cursor++] = value.payloadmask;
|
||||||
buffer[cursor++] = value.monitormode;
|
buffer[cursor++] = 0; // reserved
|
||||||
memcpy(buffer + cursor, value.version, 10);
|
memcpy(buffer + cursor, value.version, 10);
|
||||||
cursor += 10;
|
cursor += 10;
|
||||||
}
|
}
|
||||||
@ -168,11 +163,6 @@ void PayloadConvert::addCount(uint16_t value, uint8_t snifftype) {
|
|||||||
writeUint16(value);
|
writeUint16(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PayloadConvert::addAlarm(int8_t rssi, uint8_t msg) {
|
|
||||||
writeUint8(rssi);
|
|
||||||
writeUint8(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PayloadConvert::addVoltage(uint16_t value) { writeUint16(value); }
|
void PayloadConvert::addVoltage(uint16_t value) { writeUint16(value); }
|
||||||
|
|
||||||
void PayloadConvert::addConfig(configData_t value) {
|
void PayloadConvert::addConfig(configData_t value) {
|
||||||
@ -185,8 +175,7 @@ void PayloadConvert::addConfig(configData_t value) {
|
|||||||
writeUint8(value.rgblum);
|
writeUint8(value.rgblum);
|
||||||
writeBitmap(value.adrmode ? true : false, value.screensaver ? true : false,
|
writeBitmap(value.adrmode ? true : false, value.screensaver ? true : false,
|
||||||
value.screenon ? true : false, value.countermode ? true : false,
|
value.screenon ? true : false, value.countermode ? true : false,
|
||||||
value.blescan ? true : false, value.wifiant ? true : false, 0,
|
value.blescan ? true : false, value.wifiant ? true : false, 0, 0);
|
||||||
value.monitormode ? true : false);
|
|
||||||
writeUint8(value.payloadmask);
|
writeUint8(value.payloadmask);
|
||||||
writeVersion(value.version);
|
writeVersion(value.version);
|
||||||
}
|
}
|
||||||
@ -373,19 +362,6 @@ void PayloadConvert::addCount(uint16_t value, uint8_t snifftype) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PayloadConvert::addAlarm(int8_t rssi, uint8_t msg) {
|
|
||||||
#if (PAYLOAD_ENCODER == 3)
|
|
||||||
buffer[cursor++] = LPP_ALARM_CHANNEL;
|
|
||||||
#endif
|
|
||||||
buffer[cursor++] = LPP_PRESENCE;
|
|
||||||
buffer[cursor++] = msg;
|
|
||||||
#if (PAYLOAD_ENCODER == 3)
|
|
||||||
buffer[cursor++] = LPP_MSG_CHANNEL;
|
|
||||||
#endif
|
|
||||||
buffer[cursor++] = LPP_ANALOG_INPUT;
|
|
||||||
buffer[cursor++] = rssi;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PayloadConvert::addVoltage(uint16_t value) {
|
void PayloadConvert::addVoltage(uint16_t value) {
|
||||||
uint16_t volt = value / 10;
|
uint16_t volt = value / 10;
|
||||||
#if (PAYLOAD_ENCODER == 3)
|
#if (PAYLOAD_ENCODER == 3)
|
||||||
|
@ -223,20 +223,6 @@ uint64_t macConvert(uint8_t *paddr) {
|
|||||||
return (__builtin_bswap64(*mac) >> 16);
|
return (__builtin_bswap64(*mac) >> 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_beacon(uint8_t val[]) {
|
|
||||||
uint8_t id = val[0]; // use first parameter as beacon storage id
|
|
||||||
memmove(val, val + 1, 6); // strip off storage id
|
|
||||||
beacons[id] = macConvert(val); // store beacon MAC in array
|
|
||||||
ESP_LOGI(TAG, "Remote command: set beacon ID#%d", id);
|
|
||||||
// printKey("MAC", val, 6, false); // show beacon MAC
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_monitor(uint8_t val[]) {
|
|
||||||
ESP_LOGI(TAG, "Remote command: set beacon monitor mode to %s",
|
|
||||||
val ? "on" : "off");
|
|
||||||
cfg.monitormode = val[0] ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_loradr(uint8_t val[]) {
|
void set_loradr(uint8_t val[]) {
|
||||||
#if (HAS_LORA)
|
#if (HAS_LORA)
|
||||||
if (validDR(val[0])) {
|
if (validDR(val[0])) {
|
||||||
@ -436,8 +422,7 @@ static const cmd_t table[] = {
|
|||||||
{0x09, set_reset, 1}, {0x0a, set_sendcycle, 1},
|
{0x09, set_reset, 1}, {0x0a, set_sendcycle, 1},
|
||||||
{0x0b, set_wifichancycle, 1}, {0x0c, set_blescantime, 1},
|
{0x0b, set_wifichancycle, 1}, {0x0c, set_blescantime, 1},
|
||||||
{0x0e, set_blescan, 1}, {0x0f, set_wifiant, 1},
|
{0x0e, set_blescan, 1}, {0x0f, set_wifiant, 1},
|
||||||
{0x10, set_rgblum, 1}, {0x11, set_monitor, 1},
|
{0x10, set_rgblum, 1}, {0x13, set_sensor, 2},
|
||||||
{0x12, set_beacon, 7}, {0x13, set_sensor, 2},
|
|
||||||
{0x14, set_payloadmask, 1}, {0x15, set_bme, 1},
|
{0x14, set_payloadmask, 1}, {0x15, set_bme, 1},
|
||||||
{0x16, set_batt, 1}, {0x17, set_wifiscan, 1},
|
{0x16, set_batt, 1}, {0x17, set_wifiscan, 1},
|
||||||
{0x18, set_enscount, 1}, {0x19, set_sleepcycle, 2},
|
{0x18, set_enscount, 1}, {0x19, set_sleepcycle, 2},
|
||||||
|
@ -37,7 +37,7 @@ uint8_t sensor_mask(uint8_t sensor_no) {
|
|||||||
case 6:
|
case 6:
|
||||||
return (uint8_t)MEMS_DATA;
|
return (uint8_t)MEMS_DATA;
|
||||||
case 7:
|
case 7:
|
||||||
return (uint8_t)ALARM_DATA;
|
return (uint8_t)RESERVED_DATA;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user