Add getDeviceFromClass
This commit is contained in:
parent
914dfdb1f3
commit
17b6e0487b
@ -317,26 +317,38 @@ void initializeDevices()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DeviceBase* getDeviceFromClass(uint8_t class_type)
|
||||||
|
{
|
||||||
|
switch (class_type)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
return new Device;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
return new AnalogInput;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return new Device;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DeviceBase* getDevice(uint8_t pointer)
|
DeviceBase* getDevice(uint8_t pointer)
|
||||||
{
|
{
|
||||||
uint8_t class_type = configuration_memory[pointer];
|
uint8_t class_type = configuration_memory[pointer];
|
||||||
|
DeviceBase* device = getDeviceFromClass(class_type);
|
||||||
if (class_type == 0)
|
if (class_type == 0)
|
||||||
{
|
{
|
||||||
DeviceBase* device = new Device;
|
|
||||||
device->class_type = 0;
|
device->class_type = 0;
|
||||||
device->sensor_type = 0xFF;
|
device->sensor_type = 0xFF;
|
||||||
device->pin = 0xFF;
|
device->pin = 0xFF;
|
||||||
return device;
|
|
||||||
}
|
}
|
||||||
if (class_type == 1)
|
else
|
||||||
{
|
{
|
||||||
DeviceBase* device = new AnalogInput;
|
memcpy(reinterpret_cast<uint8_t*>(device) + 4, &configuration_memory[pointer], device->size());
|
||||||
//memcpy(device + 4, &configuration_memory[pointer], sizeof(AnalogInput) - 4); // There is some 4 bytes extra at the beginning
|
|
||||||
memcpy(reinterpret_cast<uint8_t*>(device) + 4, &configuration_memory[pointer], sizeof(AnalogInput) - 4); // There is some 4 bytes extra at the beginning
|
|
||||||
return device;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
void storeDevice(uint8_t pointer, DeviceBase* device)
|
void storeDevice(uint8_t pointer, DeviceBase* device)
|
||||||
|
@ -183,6 +183,7 @@ void errorBlink(int n); // Quickly blink n times
|
|||||||
bool send(uint8_t data[], uint8_t len);
|
bool send(uint8_t data[], uint8_t len);
|
||||||
bool receive();
|
bool receive();
|
||||||
void initializeDevices();
|
void initializeDevices();
|
||||||
|
DeviceBase* getDeviceFromClass(uint8_t class_type);
|
||||||
DeviceBase* getDevice(uint8_t pointer); // Gets the device at the specified location from cfgmem
|
DeviceBase* getDevice(uint8_t pointer); // Gets the device at the specified location from cfgmem
|
||||||
void storeDevice(uint8_t pointer, DeviceBase* device); // Stores a device at the specified location in cfgmem (not in flash)
|
void storeDevice(uint8_t pointer, DeviceBase* device); // Stores a device at the specified location in cfgmem (not in flash)
|
||||||
void loopMN();
|
void loopMN();
|
||||||
|
@ -94,6 +94,7 @@ class MultiNode:
|
|||||||
self.devices[rx_id] = {"last_message_id": msg_id}
|
self.devices[rx_id] = {"last_message_id": msg_id}
|
||||||
|
|
||||||
self.decode_packet(self.devices[rx_id], data)
|
self.decode_packet(self.devices[rx_id], data)
|
||||||
|
self.print_data()
|
||||||
|
|
||||||
# print(f"{tx_id} #{msg_id}: {decode_packet(data):.3f} V, {payload.rssi} dB(?) RSSI, {payload.snr} dB(?) SNR {(time.clock_gettime_ns(0)) / 1e9}")
|
# print(f"{tx_id} #{msg_id}: {decode_packet(data):.3f} V, {payload.rssi} dB(?) RSSI, {payload.snr} dB(?) SNR {(time.clock_gettime_ns(0)) / 1e9}")
|
||||||
# print(f"{tx_id} #{msg_id}: {data.hex()} {self.decode_packet(data)}, {payload.rssi} dB(?) RSSI, {payload.snr} dB(?) SNR {(time.clock_gettime_ns(0)) / 1e9}")
|
# print(f"{tx_id} #{msg_id}: {data.hex()} {self.decode_packet(data)}, {payload.rssi} dB(?) RSSI, {payload.snr} dB(?) SNR {(time.clock_gettime_ns(0)) / 1e9}")
|
||||||
@ -116,7 +117,6 @@ class MultiNode:
|
|||||||
|
|
||||||
self.lora.send(payload, 255)
|
self.lora.send(payload, 255)
|
||||||
self.lora.set_mode_rx()
|
self.lora.set_mode_rx()
|
||||||
self.print_data()
|
|
||||||
|
|
||||||
def print_data(self):
|
def print_data(self):
|
||||||
for device_id in self.devices:
|
for device_id in self.devices:
|
||||||
|
Loading…
Reference in New Issue
Block a user