Перейти к основному содержимому

Пользовательский API

В этом разделе представлен набор пользовательских функций, реализованных в библиотеке unican_ard.h.

Функции

Инициализация

uint8_t UCanArd.Init();

Возвращает 0 в случае успешного выполнения.

Смена собственного UniCAN ID

uint8_t UCanArd.ChangeSelfId(uint8_t self_id);
к сведению

В качестве аргумента передаётся новый ID в диапазоне от 0х1 до 0х1F. Не рекомендуется использовать ID=0x1 или идентификатор который может быть использован другими устройствами. Значение по умолчанию: 0x1A.

Возвращает 0 в случае успешного выполнения.

Смена UniCAN ID головного устройства

uint8_t UCanArd.ChangeMasterId(uint8_t master_id);
к сведению

В качестве аргумента передаётся новый ID в диапазоне от 0х1 до 0х1F. Не рекомендуется использовать ID=0x1 или идентификатор который может быть использован другими устройствами. Значение по умолчанию: 0x05.

Возвращает 0 в случае успешного выполнения.

Деинициализация

uint8_t UCanArd.DeInit();

Возвращает 0 в случае успешного выполнения.

Получение CAN сообщения

uint8_t UCanArd.ReceiveTask();
Функция должна выполняться в цикле. Получение UniCAN сообщений состоящих из нескольких кадров возможен только при малом периоде цикла (порядка нескольких мс или менее). При создании протокола рекомендуется ограничиться однокадровыми входящими сообщениями.

Возвращает 0 в случае успешного выполнения.

Отправка UniCAN сообщения:

uint8_t UCanArd.SendMessage(uint8_t receiver_id, uint16_t msg_id, uint8_t* data, uint8_t length);

Аргументы:

  • UniCAN ID получателя;
  • MSGid;
  • указатель на первый байт данных и размер данных в байтах.

Возвращает 0 в случае успешного выполнения.

Отправка UniCAN сообщения головному устройству

uint8_t UCanArd.SendMessageToMaster(uint16_t msg_id, uint8_t* data, uint8_t length);

Аргументы:

  • MSGid;
  • указатель на первый байт данных и размер данных в байтах.

Возвращает 0 в случае успешного выполнения.

Прочитать последнее сохранённое сообщение

uint8_t UCanArd.ReadMessage(uint8_t* sender_id, uint16_t* msg_id, uint8_t* data, uint8_t* length);

Аргументы:

  • указатель на переменные для UniCAN ID получателя;
  • MSGid;
  • указатель на первый байт данных и указатель на переменную для размер данных в байтах.

Возвращает 0 в случае успешного выполнения, 1 - в случае отсутсвия нового сообщения.

Ответить подтверждением

uint8_t UCanArd.SendAck(uint8_t receiver_id); 
к сведению

Используется стандартный MSGid 0x0118.

Аргументы:

  • UniCAN ID получателя.

Возвращает 0 в случае успешного выполнения.

Ответить отказом

uint8_t UCanArd.SendNack(uint8_t receiver_id); 
к сведению

Используется стандартный MSGid 0x0119.

Аргументы:

  • UniCAN ID получателя.

Возвращает 0 в случае успешного выполнения.