Moxa IA261-I-LX Инструкция по эксплуатации онлайн [62/71] 170911

Moxa IA261-I-LX Инструкция по эксплуатации онлайн [62/71] 170911
IA260/IA261/IA262/EM-2260 Linux User’s Manual Programmer’s Guide
unsigned char byte6;
unsigned char byte7;
unsigned char byte8;
} byte;
} can_data_u;
typedef struct user_frame_struct {
int id;
int info; // RTR & extend ID flag
#define USER_RTR BIT(0)
#define USER_EXTEND_ID BIT(1)
int data_length;
can_data_u data;
} user_frame_t;
// ioctl command code
#define MOXACAN_IOCTL_SET_BAUD_RATE 0x100
#define MOXACAN_IOCTL_GET_BAUD_RATE 0x101
#endif // _MOXACAN_IOCTL_H
Then we can include this header for CAN programming
We can open /dev/can[n] to use the CAN device. Then read(), write() or ioctl() the device files. If
you complete the using, you should close() this file to release this device.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include “moxacan_ioctl.h”
#define PORT1_NAME “/dev/can0
#define PORT2_NAME “/dev/can1
int main(int argc, char *argv[])
{ int fd1, fd2, i, baudrate;
user_frame_t txframe, rxframe;
fd1 = open(PORT1_NAME, O_RDWR);
if ( fd1 < 0 ) {
printf(“Open %s fail !\n”, PORT1_NAME);
return -1;
}
fd2 = open(PORT2_NAME, O_RDWR);
if ( fd2 < 0 ) {
printf(“Open %s fail !\n”, PORT2_NAME);
return -1;
}
baudrate = 100000;
ioctl(fd1, MOXACAN_IOCTL_SET_BAUD_RATE, &baudrate);
ioctl(fd2, MOXACAN_IOCTL_SET_BAUD_RATE, &baudrate);
6-6

Содержание

Похожие устройства

Скачать