uplink works
This commit is contained in:
@ -89,12 +89,13 @@ static void prepareTxFrame( uint8_t port )
|
|||||||
struct {
|
struct {
|
||||||
uint16_t status;
|
uint16_t status;
|
||||||
uint64_t addrs[NUM_OF_SENSORS];
|
uint64_t addrs[NUM_OF_SENSORS];
|
||||||
} msg;
|
} __attribute__((packed)) msg;
|
||||||
msg.status = ERR_START_UP;
|
msg.status = ERR_START_UP;
|
||||||
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
||||||
msg.addrs[i] = sensors[i].addr;
|
msg.addrs[i] = sensors[i].addr;
|
||||||
}
|
}
|
||||||
appDataSize = sizeof(msg);
|
appDataSize = sizeof(msg);
|
||||||
|
Serial.printf("appDataSize: %ld\n\r", appDataSize);
|
||||||
memcpy(&appData, (void*)&msg, appDataSize);
|
memcpy(&appData, (void*)&msg, appDataSize);
|
||||||
display.drawString(1, 0, "Start up");
|
display.drawString(1, 0, "Start up");
|
||||||
Serial.println("Start up message send");
|
Serial.println("Start up message send");
|
||||||
@ -106,19 +107,22 @@ static void prepareTxFrame( uint8_t port )
|
|||||||
struct {
|
struct {
|
||||||
uint64_t addr;
|
uint64_t addr;
|
||||||
int32_t value;
|
int32_t value;
|
||||||
} sensors[NUM_OF_SENSORS];
|
} __attribute__((packed)) sensors[NUM_OF_SENSORS];
|
||||||
} msg;
|
} __attribute__((packed)) msg;
|
||||||
msg.status = (DS18B20.getDS18Count() == NUM_OF_SENSORS) ? errorCode : errorCode | ERR_SENSOR_LOST;
|
msg.status = (DS18B20.getDS18Count() == NUM_OF_SENSORS) ? errorCode : errorCode | ERR_SENSOR_LOST;
|
||||||
DS18B20.requestTemperatures();
|
DS18B20.requestTemperatures();
|
||||||
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
||||||
msg.sensors[i].addr = sensors[i].addr;
|
msg.sensors[i].addr = sensors[i].addr;
|
||||||
msg.sensors[i].value = DS18B20.getTemp((const uint8_t*)&(sensors[i].addr));
|
Serial.printf("%d: %s: %016llx\n\r", i, sensors[i].label, sensors[i].addr);
|
||||||
|
msg.sensors[i].value = DS18B20.getTemp(((const uint8_t*)(&(sensors[i].addr))));
|
||||||
|
Serial.printf("v: %08x\n\r", msg.sensors[i].value);
|
||||||
|
|
||||||
float tempC = ((float)msg.sensors[i].value) / 128;
|
float tempC = ((float)msg.sensors[i].value) / 128;
|
||||||
|
Serial.printf("f: %.2f\n\r", tempC);
|
||||||
char dispbuf[128];
|
char dispbuf[128];
|
||||||
sprintf(dispbuf, "%s: %.2f °C", sensors[i].label, tempC);
|
sprintf(dispbuf, "%s: %.2f °C", sensors[i].label, tempC);
|
||||||
display.drawString(1, i * 17, dispbuf);
|
display.drawString(1, i * 16, dispbuf);
|
||||||
Serial.printf("%d, %08x, %s, %.2f\n\r", sensors[i].index, sensors[i].addr, sensors[i].label, tempC);
|
Serial.printf("%d, %016llx, %s, %.2f\n\r", sensors[i].index, sensors[i].addr, sensors[i].label, tempC);
|
||||||
}
|
}
|
||||||
appDataSize = sizeof(msg);
|
appDataSize = sizeof(msg);
|
||||||
memcpy(&appData, (void*)&msg, appDataSize);
|
memcpy(&appData, (void*)&msg, appDataSize);
|
||||||
@ -129,7 +133,7 @@ static void prepareTxFrame( uint8_t port )
|
|||||||
|
|
||||||
errorCode = ERR_OK;
|
errorCode = ERR_OK;
|
||||||
} else {
|
} else {
|
||||||
appDataSize = 1;
|
appDataSize = 2;
|
||||||
appData[0] = errorCode;
|
appData[0] = errorCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -188,14 +192,16 @@ void productionSetup() {
|
|||||||
uint8_t cnt = DS18B20.getDS18Count();
|
uint8_t cnt = DS18B20.getDS18Count();
|
||||||
if (cnt != 4) {
|
if (cnt != 4) {
|
||||||
display.drawString(1, 0, "invalid number of sensors");
|
display.drawString(1, 0, "invalid number of sensors");
|
||||||
|
Serial.println("invalid number of sensors");
|
||||||
errorCode = ERR_INVALID_NUM_OF_SENSORS;
|
errorCode = ERR_INVALID_NUM_OF_SENSORS;
|
||||||
} else {
|
} else {
|
||||||
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
for (uint8_t i = 0; i < NUM_OF_SENSORS; i++) {
|
||||||
sprintf(sensors[i].label, "Sens%d", i);
|
sprintf(sensors[i].label, "Sens%d", i);
|
||||||
DS18B20.getAddress((uint8_t*)&(sensors[i].addr), i);
|
DS18B20.getAddress(((uint8_t*)(&(sensors[i].addr))), i);
|
||||||
char buf[128];
|
char buf[128];
|
||||||
sprintf(buf, "%s: %08x", sensors[i].label, sensors[i].addr);
|
sprintf(buf, "%d: %s: %016llx", i, sensors[i].label, sensors[i].addr);
|
||||||
display.drawString(1, i*16, buf);
|
Serial.println(buf);
|
||||||
|
//display.drawString(1, i*16, buf);
|
||||||
sensors[i].index = 0;
|
sensors[i].index = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
35
snippets/decoding2.txt
Normal file
35
snippets/decoding2.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
0: Sens0: 000000006a4f8c28
|
||||||
|
1: Sens1: 000000000ac31928
|
||||||
|
2: Sens2: 000000006a863528
|
||||||
|
3: Sens3: 00000000f611c728
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint16_t status;
|
||||||
|
uint64_t addrs[NUM_OF_SENSORS];
|
||||||
|
} __attribute__((packed)) msg;
|
||||||
|
|
||||||
|
04 00 0000 3802 033C 288C 4F6A 0D00 0094 2819 C30A 0D00 00B4 2835 866A 0D00 00D4 28C7 11F6622001B8
|
||||||
|
|
||||||
|
0400 288C 4F6A 0D00 0094 2819 C30A 0D00 00B4 2835 866A 0D00 00D4 28C7 11F6 6220 01B8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint16_t status;
|
||||||
|
struct {
|
||||||
|
uint64_t addr;
|
||||||
|
int32_t value;
|
||||||
|
} __attribute__((packed)) sensors[NUM_OF_SENSORS];
|
||||||
|
} __attribute__((packed)) msg;
|
||||||
|
|
||||||
|
0000
|
||||||
|
288C 4F6A 0D00 0094
|
||||||
|
9808 0000
|
||||||
|
2819 C30A 0D00 00B4
|
||||||
|
E008 0000
|
||||||
|
2835 866A 0D00 00D4
|
||||||
|
D008 0000
|
||||||
|
28C7 11F6 6220 01B8
|
||||||
|
9808 0000
|
Reference in New Issue
Block a user