[uC] Added a header file for packets
This commit is contained in:
parent
71d721057b
commit
77dd3293f2
|
@ -0,0 +1,85 @@
|
||||||
|
#ifndef DG_ARDUINO_H_
|
||||||
|
#define DG_ARDUINO_H_
|
||||||
|
|
||||||
|
enum {CMD_CLIMA, CMD_TEMP, CMD_ERR, CMD_DEBUG};
|
||||||
|
|
||||||
|
struct Packet_t {
|
||||||
|
uint8_t size;
|
||||||
|
uint8_t cmd;
|
||||||
|
|
||||||
|
// Note: at the end a CHK is append and size is automatically updated by SendPacket method
|
||||||
|
Packet_t() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Packet_t(uint8_t size, uint8_t cmd) {
|
||||||
|
this->size = size;
|
||||||
|
this->cmd = cmd;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackClimaCmd_t : Packet_t {
|
||||||
|
uint8_t cmd_clima;
|
||||||
|
PackClimaCmd_t() {
|
||||||
|
this->size = sizeof(PackClimaCmd_t);
|
||||||
|
this->cmd = CMD_CLIMA;
|
||||||
|
//this->cmd_clima = cmd_clima;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackTempCmd_t : Packet_t {
|
||||||
|
uint8_t cmd_temp;
|
||||||
|
PackTempCmd_t() {
|
||||||
|
this->size = sizeof(PackClimaCmd_t);
|
||||||
|
this->cmd = CMD_TEMP;
|
||||||
|
//this->cmd_temp = cmd_temp;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackReceived_t : Packet_t {
|
||||||
|
uint8_t buffer[BUF_SIZE];
|
||||||
|
PackReceived_t() {
|
||||||
|
// Uninitalised, will be populated by reading function
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackSendTemp_t : Packet_t {
|
||||||
|
int temp;
|
||||||
|
PackSendTemp_t(int temp) {
|
||||||
|
this->size = sizeof(PackSendTemp_t);
|
||||||
|
this->cmd = CMD_TEMP;
|
||||||
|
this->temp = temp;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackError_t : Packet_t {
|
||||||
|
uint8_t err_code;
|
||||||
|
PackError_t(uint8_t err_code) {
|
||||||
|
this->size = sizeof(PackError_t);
|
||||||
|
this->cmd = CMD_CLIMA;
|
||||||
|
this->err_code = err_code;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PackMsg_t : Packet_t {
|
||||||
|
uint8_t msg[10];
|
||||||
|
PackMsg_t(uint8_t size) {
|
||||||
|
this->size = size + sizeof(Packet_t);
|
||||||
|
this->cmd = CMD_DEBUG;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void SendPacket(void *_p) {
|
||||||
|
uint8_t * p = (uint8_t*)_p;
|
||||||
|
uint8_t chk = 0;
|
||||||
|
// increase by one to keep CHK in account
|
||||||
|
uint8_t size = *p;
|
||||||
|
*p = *p + 1;
|
||||||
|
for (uint8_t c = 0; c < size; c++) {
|
||||||
|
Serial.write(*p);
|
||||||
|
chk += *p;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
Serial.write(chk);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Servo.h>
|
#include <Servo.h>
|
||||||
|
#include "dg-arduino.h"
|
||||||
#define SERVO_ON 55
|
#define SERVO_ON 55
|
||||||
#define SERVO_OFF 80
|
#define SERVO_OFF 80
|
||||||
#define SERVO_PIN 9
|
#define SERVO_PIN 9
|
||||||
|
@ -16,87 +17,6 @@ Servo myServo;
|
||||||
|
|
||||||
#define BUF_SIZE 10
|
#define BUF_SIZE 10
|
||||||
|
|
||||||
enum {CMD_CLIMA, CMD_TEMP, CMD_ERR, CMD_DEBUG};
|
|
||||||
|
|
||||||
struct Packet_t {
|
|
||||||
uint8_t size;
|
|
||||||
uint8_t cmd;
|
|
||||||
|
|
||||||
// Note: at the end a CHK is append and size is automatically updated by SendPacket method
|
|
||||||
Packet_t() {
|
|
||||||
}
|
|
||||||
|
|
||||||
Packet_t(uint8_t size, uint8_t cmd) {
|
|
||||||
this->size = size;
|
|
||||||
this->cmd = cmd;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackClimaCmd_t : Packet_t {
|
|
||||||
uint8_t cmd_clima;
|
|
||||||
PackClimaCmd_t(/*uint8_t cmd_clima*/) {
|
|
||||||
this->size = sizeof(*this);
|
|
||||||
this->cmd = CMD_CLIMA;
|
|
||||||
//this->cmd_clima = cmd_clima;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackTempCmd_t : Packet_t {
|
|
||||||
uint8_t cmd_temp;
|
|
||||||
PackTempCmd_t(/*uint8_t cmd_temp*/) {
|
|
||||||
this->size = sizeof(*this);
|
|
||||||
this->cmd = CMD_TEMP;
|
|
||||||
//this->cmd_temp = cmd_temp;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackReceived_t : Packet_t {
|
|
||||||
uint8_t buffer[BUF_SIZE];
|
|
||||||
PackReceived_t() {
|
|
||||||
// Uninitalised, will be populated by reading function
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackSendTemp_t : Packet_t {
|
|
||||||
int temp;
|
|
||||||
PackSendTemp_t(int temp) {
|
|
||||||
this->size = sizeof(*this);
|
|
||||||
this->cmd = CMD_TEMP;
|
|
||||||
this->temp = temp;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackError_t : Packet_t {
|
|
||||||
uint8_t err_code;
|
|
||||||
PackError_t(uint8_t err_code) {
|
|
||||||
this->size = sizeof(PackError_t);
|
|
||||||
this->cmd = CMD_CLIMA;
|
|
||||||
this->err_code = err_code;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PackMsg_t : Packet_t {
|
|
||||||
uint8_t msg[10];
|
|
||||||
PackMsg_t(uint8_t size) {
|
|
||||||
this->size = size + sizeof(Packet_t);
|
|
||||||
this->cmd = CMD_DEBUG;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void SendPacket(void *_p) {
|
|
||||||
uint8_t * p = _p;
|
|
||||||
uint8_t chk = 0;
|
|
||||||
// increase by one to keep CHK in account
|
|
||||||
uint8_t size = *p;
|
|
||||||
*p = *p + 1;
|
|
||||||
for (uint8_t c = 0; c < size; c++) {
|
|
||||||
Serial.write(*p);
|
|
||||||
chk += *p;
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
Serial.write(chk);
|
|
||||||
}
|
|
||||||
|
|
||||||
PackReceived_t PackReceived;
|
PackReceived_t PackReceived;
|
||||||
int temperatures[10];
|
int temperatures[10];
|
||||||
unsigned long int interval = 30000; // 30 seconds
|
unsigned long int interval = 30000; // 30 seconds
|
||||||
|
|
Loading…
Reference in New Issue