Oregon Scientific Decoder V2 and V3 for Nucleo-F401RE

Dependencies:   Oregon_Decode

Oregon-Scientific Decoder for V2 and V3 protocol. As exemple it handles THGR122NX (V2) and THGR810 (V3) sensors.

The software use interrupts to collect frames in a buffer and decode them in a background task.

Committer:
sev2000
Date:
Sat Oct 12 11:55:05 2019 +0000
Revision:
0:7d471396cb64
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sev2000 0:7d471396cb64 1 #include "mbed.h"
sev2000 0:7d471396cb64 2
sev2000 0:7d471396cb64 3 extern Serial pc;
sev2000 0:7d471396cb64 4
sev2000 0:7d471396cb64 5 //#define __DEBUG__
sev2000 0:7d471396cb64 6 #define Level 1
sev2000 0:7d471396cb64 7 #define DBG(x, ...) if (Level>=3) pc.printf("[DBG]"x"\r\n", ##__VA_ARGS__);
sev2000 0:7d471396cb64 8 #define WARN(x, ...) if (Level>=2) pc.printf("[WARN]"x"\r\n", ##__VA_ARGS__);
sev2000 0:7d471396cb64 9 #define ERR(x, ...) if (Level>=1) pc.printf("[ERR]"x"\r\n", ##__VA_ARGS__);
sev2000 0:7d471396cb64 10
sev2000 0:7d471396cb64 11 #define BUF_SIZE 1024
sev2000 0:7d471396cb64 12
sev2000 0:7d471396cb64 13 #define DEVICE_ID 1
sev2000 0:7d471396cb64 14 #define FA
sev2000 0:7d471396cb64 15
sev2000 0:7d471396cb64 16 #define NB_CHAN 3
sev2000 0:7d471396cb64 17
sev2000 0:7d471396cb64 18 typedef struct {
sev2000 0:7d471396cb64 19 char deviceID;
sev2000 0:7d471396cb64 20 unsigned long timestamp;
sev2000 0:7d471396cb64 21 float hum1;
sev2000 0:7d471396cb64 22 float temp1;
sev2000 0:7d471396cb64 23 float hum2;
sev2000 0:7d471396cb64 24 float temp2;
sev2000 0:7d471396cb64 25 unsigned char pwm;
sev2000 0:7d471396cb64 26 int speed;
sev2000 0:7d471396cb64 27 }measure_t;
sev2000 0:7d471396cb64 28
sev2000 0:7d471396cb64 29 typedef struct {
sev2000 0:7d471396cb64 30 int first;
sev2000 0:7d471396cb64 31 int prev;
sev2000 0:7d471396cb64 32 int last;
sev2000 0:7d471396cb64 33 measure_t data[BUF_SIZE];
sev2000 0:7d471396cb64 34 }s_meas_t;
sev2000 0:7d471396cb64 35
sev2000 0:7d471396cb64 36 typedef struct {
sev2000 0:7d471396cb64 37 int v;
sev2000 0:7d471396cb64 38 bool update;
sev2000 0:7d471396cb64 39 }pwm_t;
sev2000 0:7d471396cb64 40
sev2000 0:7d471396cb64 41 int Init_Regul();
sev2000 0:7d471396cb64 42 int Mesurement(measure_t *);
sev2000 0:7d471396cb64 43 int RegulPWM(measure_t *, pwm_t *);
sev2000 0:7d471396cb64 44 //int SendRcvData(NetworkStack *, s_meas_t *, pwm_t *);
sev2000 0:7d471396cb64 45 //int SendLoger(NetworkStack *, const char * );