Set the priority for transmitted messages
#include <sys/can_dcmd.h> #define CAN_DEVCTL_SET_PRIO __DIOT(_DCMD_MISC, CAN_CMD_CODE + 5, uint32_t)
Argument | Value |
---|---|
filedes | A file descriptor that you obtained by opening the device. This must be for a transmit mailbox (e.g., /dev/can1/tx3). |
dcmd | CAN_DEVCTL_SET_PRIO |
dev_data_ptr | A pointer to a uint32_t |
n_bytes | sizeof(uint32_t) |
dev_info_ptr | NULL |
This command sets the priority of messages for a transmit mailbox. The hardware uses these priorities to determine which CAN message to transmit first if there are multiple messages waiting to be transmitted.
The new priority, which must not exceed the maximum for the device (usually defined as a constant whose name is in the form board_CANMCF_TPL_MAXVAL).
None.
int ret; uint32_t val; if( (fd = open( "/dev/can1/tx3", O_RDWR)) == -1 ) { printf("open of %s failed \n", devname); exit(EXIT_FAILURE); } /* Get the new priority. */ val = strtoul(optarg, NULL, 0); if(EOK != (ret = devctl(fd, CAN_DEVCTL_SET_PRIO, &val, sizeof(val), NULL))) { fprintf(stderr, "devctl CAN_DEVCTL_SET_PRIO: %s\n", strerror(ret)); }