CAN�ֱ� vs ͨ����

Magnus Carlsson
Wed, 03 Jun 2015 17:22:12 +0000

��׫д”CANlibͨ���Ż��ǿ��ţ�“һ��ʱ�����û�����Ҫ�����CanHandle��ͨ����֮���������Ϊ���Ƕ��ɴ��㿪ʼ��

CANͨ��ʹ��CANlib�е�canOpenChannel()�����򿪣���ͨ������Ϊ��һ��������

CanHandle handle;
canStatus stat;

int canLibChannelNumber = 0;

handle = canOpenChannel(canLibChannelNumber, canOPEN_ACCEPT_VIRTUAL);
if (handle < 0) {
  printf("canOpenChannel failed, status=%d\n", stat);
}

�⽫����һ���������κηǸ����ľ�����ڵ�һ�ε�����ʱͨ��Ϊ�㣩���ֱ��Ժ�ᱻ�õ����統��ȡ��һ�����õ�CAN����ʱ���������tocanOpenChannel()ʧ�ܣ������ظ�������룬��������Ч�ľ����

long id;
unsigned char data[8];
unsigned int dlc, flags;
unsigned long timestamp;

stat = canRead(handle, &id, data, &dlc, &flags, &timestamp);
if (stat != canERR_NOMSG) {
  printf("Failed, status == %d\n", stat);
}

������ڲ��������������ֶ��༭����ǰ������CANlib�з��ص�CanHandle������ͨ���Ż��������°�⣬��kvrlib����᷵��һ���������������֣��Խ��ͻ����ķ�����

�ҽ�������Ӧ������ϰ�߽��������ΪCanHandle��������int�����Ӷ�����ر�Ǿ�����ڴ˽����ͬʱ��Ҳ�������ʼ�ռ�鷵��״̬�����������canRead() �����������������ִ���ʱ���⽫���������̵���ʱ����