|
@@ -1,6 +1,6 @@
|
|
|
-#include "nbus_comm.h"
|
|
|
|
|
|
|
+#include "nbus_broadcast_comm.h"
|
|
|
|
|
|
|
|
-uint8_t const NbusComm::_crc8x_table[] = {
|
|
|
|
|
|
|
+uint8_t const NbusBroadcastComm::_crc8x_table[] = {
|
|
|
0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E,
|
|
0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E,
|
|
|
0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB,
|
|
0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB,
|
|
|
0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8,
|
|
0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8,
|
|
@@ -16,7 +16,7 @@ uint8_t const NbusComm::_crc8x_table[] = {
|
|
|
0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC,
|
|
0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC,
|
|
|
0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3};
|
|
0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3};
|
|
|
|
|
|
|
|
-uint8_t NbusComm::_crc8x_fast(void const *mem, uint16_t len)
|
|
|
|
|
|
|
+uint8_t NbusBroadcastComm::_crc8x_fast(void const *mem, uint16_t len)
|
|
|
{
|
|
{
|
|
|
uint8_t crc = CRC8_INIT_VALUE;
|
|
uint8_t crc = CRC8_INIT_VALUE;
|
|
|
uint8_t const *data = (uint8_t *)mem;
|
|
uint8_t const *data = (uint8_t *)mem;
|
|
@@ -28,31 +28,30 @@ uint8_t NbusComm::_crc8x_fast(void const *mem, uint16_t len)
|
|
|
return crc;
|
|
return crc;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-NbusComm::NbusComm(Stream &slave_interface) :_slave_interface{slave_interface}
|
|
|
|
|
|
|
+NbusBroadcastComm::NbusBroadcastComm(Stream &slave_interface) :_slave_interface{slave_interface}
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-void NbusComm::cmd_set_start()
|
|
|
|
|
|
|
+void NbusBroadcastComm::cmd_set_start()
|
|
|
{
|
|
{
|
|
|
_init_packet(CMD_SET_START, nullptr, 0);
|
|
_init_packet(CMD_SET_START, nullptr, 0);
|
|
|
_slave_interface.write(_packet, _size);
|
|
_slave_interface.write(_packet, _size);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void NbusComm::cmd_set_stop()
|
|
|
|
|
|
|
+void NbusBroadcastComm::cmd_set_stop()
|
|
|
{
|
|
{
|
|
|
_init_packet(CMD_SET_STOP, nullptr, 0);
|
|
_init_packet(CMD_SET_STOP, nullptr, 0);
|
|
|
_slave_interface.write(_packet, _size);
|
|
_slave_interface.write(_packet, _size);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void NbusComm::cmd_set_data(uint8_t *data, int16_t count)
|
|
|
|
|
|
|
+void NbusBroadcastComm::cmd_set_data(uint8_t *data, int16_t count)
|
|
|
{
|
|
{
|
|
|
_init_packet(CMD_SET_DATA, data, count);
|
|
_init_packet(CMD_SET_DATA, data, count);
|
|
|
_slave_interface.write(_packet, _size);
|
|
_slave_interface.write(_packet, _size);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void NbusComm::_init_packet(uint8_t fc, uint8_t *data, int16_t count)
|
|
|
|
|
|
|
+void NbusBroadcastComm::_init_packet(uint8_t fc, uint8_t *data, int16_t count)
|
|
|
{
|
|
{
|
|
|
if (count > NBUS_COMM_PACKET_SIZE - NBUS_META)
|
|
if (count > NBUS_COMM_PACKET_SIZE - NBUS_META)
|
|
|
return;
|
|
return;
|
|
@@ -66,7 +65,7 @@ void NbusComm::_init_packet(uint8_t fc, uint8_t *data, int16_t count)
|
|
|
_add_crc();
|
|
_add_crc();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void NbusComm::_add_data(uint8_t *data, int16_t count)
|
|
|
|
|
|
|
+void NbusBroadcastComm::_add_data(uint8_t *data, int16_t count)
|
|
|
{
|
|
{
|
|
|
if (data == nullptr || count == 0)
|
|
if (data == nullptr || count == 0)
|
|
|
return;
|
|
return;
|
|
@@ -75,7 +74,7 @@ void NbusComm::_add_data(uint8_t *data, int16_t count)
|
|
|
_packet[_size++] = data[i];
|
|
_packet[_size++] = data[i];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void NbusComm::_add_crc()
|
|
|
|
|
|
|
+void NbusBroadcastComm::_add_crc()
|
|
|
{
|
|
{
|
|
|
_packet[_size] = _crc8x_fast(_packet + 1, _size - 1);
|
|
_packet[_size] = _crc8x_fast(_packet + 1, _size - 1);
|
|
|
_size++;
|
|
_size++;
|