CAN-200  1.3.0
Функции
Функции для работы с платой в режиме PeliCAN

Функции

int CAN200_P_SetInputFilter (HANDLE Handle, int Channel, pFilter_t *filter)
 Настройка фильтра входных кадров для режима PeliCAN. Подробнее...
 
int CAN200_P_GetInputFilter (HANDLE Handle, int Channel, pFilter_t *filter)
 Получение фильтра входных кадров для режима PeliCAN. Подробнее...
 
int CAN200_P_SetRxErrorCounter (HANDLE Handle, int Channel, int Counter)
 Установка счетчика ошибок приема по шине CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetRxErrorCounter (HANDLE Handle, int Channel, int *Counter)
 Получение счетчика ошибок приема по шине CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_SetTxErrorCounter (HANDLE Handle, int Channel, int Counter)
 Установка счетчика ошибок выдачи по шине CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetTxErrorCounter (HANDLE Handle, int Channel, int *Counter)
 Получение счетчика ошибок выдачи по шине CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_SetErrorWarningLimit (HANDLE Handle, int Channel, int Limit)
 Установка верхнего предела счетчика ошибок CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetErrorWarningLimit (HANDLE Handle, int Channel, int *Limit)
 Получение верхнено предела счетчика ошибок CAN (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetArbitrationLostCapture (HANDLE Handle, int Channel, int *Data)
 Получение номера бита, на котором был проигран арбитраж (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetRxMessageCounter (HANDLE Handle, int Channel, int *Counter)
 Получение количества принятых (и не прочитанных) кадров в буфере приёма (только для режима PeliCAN) Подробнее...
 
int CAN200_P_GetErrorCode (HANDLE Handle, int Channel, int *Code)
 Получение типа и местоположения ошибки при обмене по шине CAN (только для режима PeliCAN) Подробнее...
 

Подробное описание

Функции

◆ CAN200_P_GetArbitrationLostCapture()

int CAN200_P_GetArbitrationLostCapture ( HANDLE  Handle,
int  Channel,
int *  Data 
)

Получение номера бита, на котором был проигран арбитраж (только для режима PeliCAN)

Функция позволяет получить значение Получение номера бита, на котором был проигран арбитраж для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Data(IN) Указатель на переменную типа int, где будет сохранено значение бита, на котором был проигран арбитраж (используются младшие 8 бит, для расшифровки значения можно использовать структуру CAN_arbitration_lost_capture_t)
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetErrorCode()

int CAN200_P_GetErrorCode ( HANDLE  Handle,
int  Channel,
int *  Code 
)

Получение типа и местоположения ошибки при обмене по шине CAN (только для режима PeliCAN)

Функция позволяет получить тип и местоположение ошибки при обмене по шине CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Code(IN) Указатель на переменную типа int, где будет сохранен тип и местоположение ошибки при обмене по шине CAN кадров в буфере приема (используются младшие 8 бит, для расшифровки значения можно использовать структуру CAN_error_t)
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetErrorWarningLimit()

int CAN200_P_GetErrorWarningLimit ( HANDLE  Handle,
int  Channel,
int *  Limit 
)

Получение верхнено предела счетчика ошибок CAN (только для режима PeliCAN)

Функция позволяет получить значение верхнего предела счетчика ошибок CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Limit(IN) Указатель на переменную типа int, где будет сохранено значение верхнего предела счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetInputFilter()

int CAN200_P_GetInputFilter ( HANDLE  Handle,
int  Channel,
pFilter_t filter 
)

Получение фильтра входных кадров для режима PeliCAN.

Функция позволяет получить текущие настройки фильтра входных кадров для режима PeliCAN (для одного из каналов)

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
filter(IN) Указатель на структуру pFilter_t, где будет сохранено описание фильтра
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetRxErrorCounter()

int CAN200_P_GetRxErrorCounter ( HANDLE  Handle,
int  Channel,
int *  Counter 
)

Получение счетчика ошибок приема по шине CAN (только для режима PeliCAN)

Функция позволяет получить значение счетчика ошибок приема по шине CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Counter(IN) Указатель на переменную типа int, где будет сохранено значение счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetRxMessageCounter()

int CAN200_P_GetRxMessageCounter ( HANDLE  Handle,
int  Channel,
int *  Counter 
)

Получение количества принятых (и не прочитанных) кадров в буфере приёма (только для режима PeliCAN)

Функция позволяет получить количество принятых (и не прочитанных) кадров в буфере приёма для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Counter(IN) Указатель на переменную типа int, где будет сохранено значение количество принятых (и не прочитанных) кадров в буфере приема
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_GetTxErrorCounter()

int CAN200_P_GetTxErrorCounter ( HANDLE  Handle,
int  Channel,
int *  Counter 
)

Получение счетчика ошибок выдачи по шине CAN (только для режима PeliCAN)

Функция позволяет получить значение счетчика ошибок выдачи по шине CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Counter(IN) Указатель на переменную типа int, где будет сохранено значение счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_SetErrorWarningLimit()

int CAN200_P_SetErrorWarningLimit ( HANDLE  Handle,
int  Channel,
int  Limit 
)

Установка верхнего предела счетчика ошибок CAN (только для режима PeliCAN)

Функция позволяет установить значение верхнего предела счетчика ошибок CAN для одного из каналов. Если хоть один из счетчиков ошибок (при приеме или выдаче) превысит значение предела заданного этой функцией, произойдет установка бита "Наличие ошибок" (см. CAN200_GetStatus). По умолчанию верхний предел счётчиков ошибок равен 96.

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Limit(IN) Значение верхнего предела счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())
Примеры:
test-write.cpp.

◆ CAN200_P_SetInputFilter()

int CAN200_P_SetInputFilter ( HANDLE  Handle,
int  Channel,
pFilter_t filter 
)

Настройка фильтра входных кадров для режима PeliCAN.

Функция позволяет настроить фильтр входных кадров для режима PeliCAN (для одного из каналов)

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
filter(IN) Указатель на структуру pFilter_t с описанием фильтра
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())
Функционирование входного фильтра в режиме PeliCAN.
Фильтр входных пакетов может функционировать в одном из двух режимов. В следующих таблицах приведено отображение битов полей Filter и Mask на биты входного кадра.

Таблица, поясняющая функционирование входного фильтра при приеме стандартного кадра (режим Single, Mode = 1);

Бит Filter[0] Бит Filter[1] Бит Filter[2] Бит Filter[3]
7 6 5 4 3 2 1 0 7 6 5 4 unused 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Бит Mask[0] Бит Mask[1] Бит Mask[2] Бит Mask[3]
7 6 5 4 3 2 1 0 7 6 5 4 unused 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Входной кадр
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 RTR   DB1.7 DB1.6 DB1.5 DB1.4 DB1.3 DB1.2 DB1.1 DB1.0 DB2.7 DB2.6 DB2.5 DB2.4 DB2.3 DB2.2 DB2.1 DB2.0

Таблица, поясняющая функционирование входного фильтра при приеме расширенного кадра (режим Single, Mode = 1);

Бит Filter[0] Бит Filter[1] Бит Filter[2] Бит Filter[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 unused
Бит Mask[0] Бит Mask[1] Бит Mask[2] Бит Mask[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 unused
Входной кадр
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13 ID.12 ID.11 ID.10 ID.9 ID.8 ID.7 ID.6 ID.5 ID.4 ID.3 ID.2 ID.1 ID.0 RTR  

Таблица, поясняющая функционирование входного фильтра при приеме стандартного кадра (режим Dual, Mode = 0);

Бит Filter[0] Бит Filter[1] Бит Filter[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 3 2 1 0
Бит Mask[0] Бит Mask[1] Бит Mask[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 3 2 1 0
Входной кадр
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 RTR DB1.7 DB1.6 DB1.5 DB1.4 DB1.3 DB1.2 DB1.1 DB1.0
Бит Mask[2] Бит Mask[3]
7 6 5 4 3 2 1 0 7 6 5 4
Бит Filter[2] Бит Filter[3]
7 6 5 4 3 2 1 0 7 6 5 4

Таблица, поясняющая функционирование входного фильтра при приеме расширенного кадра (режим Dual, Mode = 0);

Бит Filter[0] Бит Filter[1]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Бит Mask[0] Бит Mask[1]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Входной кадр
ID.28 ID.27 ID.26 ID.25 ID.24 ID.23 ID.22 ID.21 ID.20 ID.19 ID.18 ID.17 ID.16 ID.15 ID.14 ID.13
Бит Mask[2] Бит Mask[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Бит Filter[2] Бит Filter[3]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Входной фильтр функционирует следующим образом: Биты кадра (приведенные в соответствующей таблице) сравниваются на идентичность (поразрядно) с идентификатором входного фильтра. Если в соответствующем разряде маски стоит логическая 1, то биты кадра и идентификатора входного фильтра в этом разряде не сравниваются и результат сравнения в данном разряде принимается равным логической 1. Кадр проходит приемный фильтр, если результат сравнения во всех разрядах содержит логические 1.

Заметки
Для приема всех кадров необходимо установить маску равную FFh-FFh-FFh-FFh (значение идентификатора входного фильтра можно установить любое).
Примеры:
test-read.cpp и test-write.cpp.

◆ CAN200_P_SetRxErrorCounter()

int CAN200_P_SetRxErrorCounter ( HANDLE  Handle,
int  Channel,
int  Counter 
)

Установка счетчика ошибок приема по шине CAN (только для режима PeliCAN)

Функция позволяет установить значение счетчика ошибок приема по шине CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Counter(IN) Значение счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

◆ CAN200_P_SetTxErrorCounter()

int CAN200_P_SetTxErrorCounter ( HANDLE  Handle,
int  Channel,
int  Counter 
)

Установка счетчика ошибок выдачи по шине CAN (только для режима PeliCAN)

Функция позволяет установить значение счетчика ошибок выдачи по шине CAN для одного из каналов

Аргументы
Handle(IN) Хэндл платы (возвращенный функцией CAN200_Open)
Channel(IN) Номер канала платы
Counter(IN) Значение счетчика ошибок
Возвращает
CAN200_OK - успешное завершение
CAN200_ERR_PARM - ошибка входных параметров
CAN200_ERR_MODE - режим работы канала не соответствует PeliCAN
CAN200_ERR_SYS - системная ошибка (для определения причины используйте (GetLastError())

CAN-200 documentation. Copyright (c) 2012 - 2017 Elcus Corporation. All rights reserved.