Merge pull request #6939 from kristi5/dev2

JSN-SR04T add support for Mode 2 and Mode 3
This commit is contained in:
Theo Arends 2019-11-17 11:16:00 +01:00 committed by GitHub
commit 70b3fc6e0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 174 additions and 58 deletions

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -552,8 +552,8 @@
#define D_SENSOR_HPMA_TX "HPMA Tx" #define D_SENSOR_HPMA_TX "HPMA Tx"
#define D_SENSOR_SBR_RX "SerBr Rx" #define D_SENSOR_SBR_RX "SerBr Rx"
#define D_SENSOR_SBR_TX "SerBr Tx" #define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri" #define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech" #define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM120_TX "SDMx20 Tx" #define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx" #define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx" #define D_SENSOR_SDM630_TX "SDM630 Tx"

View File

@ -97,8 +97,8 @@ enum UserSelectablePins {
GPIO_SDS0X1_RX, // Nova Fitness SDS011 Serial interface GPIO_SDS0X1_RX, // Nova Fitness SDS011 Serial interface
GPIO_SBR_TX, // Serial Bridge Serial interface GPIO_SBR_TX, // Serial Bridge Serial interface
GPIO_SBR_RX, // Serial Bridge Serial interface GPIO_SBR_RX, // Serial Bridge Serial interface
GPIO_SR04_TRIG, // SR04 Trigger pin GPIO_SR04_TRIG, // SR04 Trigger/TX pin
GPIO_SR04_ECHO, // SR04 Echo pin GPIO_SR04_ECHO, // SR04 Echo/RX pin
GPIO_SDM120_TX, // SDM120 Serial interface GPIO_SDM120_TX, // SDM120 Serial interface
GPIO_SDM120_RX, // SDM120 Serial interface GPIO_SDM120_RX, // SDM120 Serial interface
GPIO_SDM630_TX, // SDM630 Serial interface GPIO_SDM630_TX, // SDM630 Serial interface
@ -603,8 +603,8 @@ const uint8_t kGpioNiceList[] PROGMEM = {
GPIO_RF_SENSOR, // Rf receiver with sensor decoding GPIO_RF_SENSOR, // Rf receiver with sensor decoding
#endif #endif
#ifdef USE_SR04 #ifdef USE_SR04
GPIO_SR04_TRIG, // SR04 Trigger pin GPIO_SR04_TRIG, // SR04 Tri/TXgger pin
GPIO_SR04_ECHO, // SR04 Echo pin GPIO_SR04_ECHO, // SR04 Ech/RXo pin
#endif #endif
#ifdef USE_TM1638 #ifdef USE_TM1638
GPIO_TM16CLK, // TM1638 Clock GPIO_TM16CLK, // TM1638 Clock

View File

@ -20,6 +20,7 @@
#ifdef USE_SR04 #ifdef USE_SR04
#include <NewPing.h> #include <NewPing.h>
#include <TasmotaSerial.h>
/*********************************************************************************************\ /*********************************************************************************************\
* HC-SR04, HC-SR04+, JSN-SR04T - Ultrasonic distance sensor * HC-SR04, HC-SR04+, JSN-SR04T - Ultrasonic distance sensor
* *
@ -30,17 +31,129 @@
#define XSNS_22 22 #define XSNS_22 22
uint8_t sr04_echo_pin = 0; uint8_t sr04_type = 1;
uint8_t sr04_trig_pin = 0; int sr04_echo_pin = 0;
int sr04_trig_pin = 0;
real64_t distance; real64_t distance;
NewPing* sonar = nullptr; NewPing* sonar = nullptr;
TasmotaSerial* sonar_serial = nullptr;
void Sr04Init(void)
uint8_t Sr04TModeDetect(void)
{ {
sr04_type = 0;
if (pin[GPIO_SR04_ECHO]>=99) return sr04_type;
sr04_echo_pin = pin[GPIO_SR04_ECHO]; sr04_echo_pin = pin[GPIO_SR04_ECHO];
sr04_trig_pin = pin[GPIO_SR04_TRIG]; sr04_trig_pin = (pin[GPIO_SR04_TRIG] < 99) ? pin[GPIO_SR04_TRIG] : -1;
sonar_serial = new TasmotaSerial(sr04_echo_pin, sr04_trig_pin, 1);
if (sonar_serial->begin(9600,1)) {
DEBUG_SENSOR_LOG(PSTR("SR04: Detect mode"));
if (sr04_trig_pin!=-1) {
sr04_type = (Sr04TMiddleValue(Sr04TMode3Distance(),Sr04TMode3Distance(),Sr04TMode3Distance())!=NO_ECHO)?3:1;
} else {
sr04_type = 2;
}
} else {
sr04_type = 1;
}
if (sr04_type < 2) {
delete sonar_serial;
sonar_serial = nullptr;
sonar = new NewPing(sr04_trig_pin, sr04_echo_pin, 300); sonar = new NewPing(sr04_trig_pin, sr04_echo_pin, 300);
} else {
if (sonar_serial->hardwareSerial()) {
ClaimSerial();
}
}
AddLog_P2(LOG_LEVEL_INFO,PSTR("SR04: Mode %d"), sr04_type);
return sr04_type;
}
uint16_t Sr04TMiddleValue(uint16_t first, uint16_t second, uint16_t third)
{
uint16_t ret = first;
if (first > second) {
first = second;
second = ret;
}
if (third < first) {
return first;
} else if (third > second) {
return second;
} else {
return third;
}
}
uint16_t Sr04TMode3Distance() {
sonar_serial->write(0x55);
sonar_serial->flush();
return Sr04TMode2Distance();
}
uint16_t Sr04TMode2Distance(void)
{
sonar_serial->setTimeout(300);
const char startByte = 0xff;
if (!sonar_serial->find(startByte)) {
//DEBUG_SENSOR_LOG(PSTR("SR04: No start byte"));
return NO_ECHO;
}
delay(5);
uint8_t crc = sonar_serial->read();
//read high byte
uint16_t distance = ((uint16_t)crc) << 8;
//read low byte
distance += sonar_serial->read();
crc += distance & 0x00ff;
crc += 0x00FF;
//check crc sum
if (crc != sonar_serial->read()) {
AddLog_P2(LOG_LEVEL_ERROR,PSTR("SR04: Reading CRC error."));
return NO_ECHO;
}
//DEBUG_SENSOR_LOG(PSTR("SR04: Distance: %d"), distance);
return distance;
}
void Sr04TReading(void) {
if (sonar_serial==nullptr && sonar==nullptr) {
Sr04TModeDetect();
}
switch (sr04_type) {
case 3:
distance = (real64_t)(Sr04TMiddleValue(Sr04TMode3Distance(),Sr04TMode3Distance(),Sr04TMode3Distance()))/ 10; //convert to cm
break;
case 2:
//empty input buffer first
while(sonar_serial->available()) sonar_serial->read();
distance = (real64_t)(Sr04TMiddleValue(Sr04TMode2Distance(),Sr04TMode2Distance(),Sr04TMode2Distance()))/10;
break;
case 1:
distance = (real64_t)(sonar->ping_median(5))/ US_ROUNDTRIP_CM;
break;
default:
distance = NO_ECHO;
}
return;
} }
#ifdef USE_WEBSERVER #ifdef USE_WEBSERVER
@ -50,7 +163,6 @@ const char HTTP_SNS_DISTANCE[] PROGMEM =
void Sr04Show(bool json) void Sr04Show(bool json)
{ {
distance = (real64_t)(sonar->ping_median(5))/ US_ROUNDTRIP_CM;
if (distance != 0) { // Check if read failed if (distance != 0) { // Check if read failed
char distance_chr[33]; char distance_chr[33];
@ -79,10 +191,14 @@ bool Xsns22(uint8_t function)
{ {
bool result = false; bool result = false;
if ((pin[GPIO_SR04_ECHO] < 99) && (pin[GPIO_SR04_TRIG] < 99)) { if (sr04_type) {
switch (function) { switch (function) {
case FUNC_INIT: case FUNC_INIT:
Sr04Init(); result = (pin[GPIO_SR04_ECHO]<99);
break;
case FUNC_EVERY_SECOND:
Sr04TReading();
result = true;
break; break;
case FUNC_JSON_APPEND: case FUNC_JSON_APPEND:
Sr04Show(1); Sr04Show(1);