mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
CAN and CAN FD transmit implemented
This commit is contained in:
+19
-7
@@ -191,6 +191,22 @@ bool Device::goOffline() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Device::transmit(std::shared_ptr<Message> message) {
|
||||
std::vector<uint8_t> packet;
|
||||
if(!com->encoder->encode(packet, message))
|
||||
return false;
|
||||
|
||||
return com->sendPacket(packet);
|
||||
}
|
||||
|
||||
bool Device::transmit(std::vector<std::shared_ptr<Message>> messages) {
|
||||
for(auto& message : messages) {
|
||||
if(!transmit(message))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void Device::handleInternalMessage(std::shared_ptr<Message> message) {
|
||||
switch(message->network.getNetID()) {
|
||||
case Network::NetID::Reset_Status:
|
||||
@@ -202,17 +218,13 @@ void Device::handleInternalMessage(std::shared_ptr<Message> message) {
|
||||
}
|
||||
|
||||
void Device::updateLEDState() {
|
||||
auto msg = std::make_shared<Message>();
|
||||
msg->network = Network::NetID::Device;
|
||||
/* NetID::Device is a super old command type.
|
||||
* It has a leading 0x00 byte, a byte for command, and a byte for an argument.
|
||||
* In this case, command 0x06 is SetLEDState.
|
||||
* This old command type is not really used anywhere else.
|
||||
*/
|
||||
auto msg = std::make_shared<Message>();
|
||||
msg->network = Network::NetID::Device;
|
||||
msg->data = {0x00, 0x06, uint8_t(ledState)};
|
||||
std::vector<uint8_t> packet;
|
||||
if(!com->encoder->encode(packet, msg))
|
||||
return;
|
||||
|
||||
com->sendPacket(packet);
|
||||
transmit(msg);
|
||||
}
|
||||
Reference in New Issue
Block a user