Добавить общий API старого CAN terminal
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "pcan_crc.h"
|
||||
#include "balsam_can.h"
|
||||
#include "pcan_frame.h"
|
||||
#include "pcan_id.h"
|
||||
#include "gui_frame.h"
|
||||
@@ -60,6 +61,33 @@ uint16_t pcan_abi_crc16(const uint8_t *data, size_t size)
|
||||
return pcan_crc16(data, size);
|
||||
}
|
||||
|
||||
int pcan_abi_balsam_decode(uint32_t can_id, const uint8_t *data, size_t size,
|
||||
pcan_abi_balsam_frame_t *output)
|
||||
{
|
||||
balsam_can_frame_t decoded;
|
||||
int status;
|
||||
if (output == NULL) return -1;
|
||||
status = balsam_can_decode(can_id, data, size, &decoded);
|
||||
if (status != 1) return status;
|
||||
output->device = decoded.device;
|
||||
output->direction = decoded.direction;
|
||||
output->present_mask = decoded.present_mask;
|
||||
output->start_address = decoded.start_address;
|
||||
memcpy(output->values, decoded.values, sizeof output->values);
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char *pcan_abi_balsam_device_name(uint8_t device)
|
||||
{
|
||||
return balsam_can_device_name(device);
|
||||
}
|
||||
|
||||
size_t pcan_abi_balsam_register_name(uint8_t device, uint16_t address,
|
||||
char *output, size_t output_size)
|
||||
{
|
||||
return balsam_can_register_name(device, address, output, output_size);
|
||||
}
|
||||
|
||||
size_t pcan_abi_frame_encode(uint8_t sequence, uint8_t flags,
|
||||
uint32_t can_id, const uint8_t *data, uint8_t dlc,
|
||||
uint8_t *output, size_t output_size)
|
||||
|
||||
Reference in New Issue
Block a user