moved libs to the lib directory
This commit is contained in:
186
lib/x502/x502api_errs.c
Normal file
186
lib/x502/x502api_errs.c
Normal file
@ -0,0 +1,186 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#include "x502api.h"
|
||||
#include "l502_bf_cmd_defs.h"
|
||||
|
||||
#include "../devs/e502/e502_cm4_defs.h"
|
||||
|
||||
static const char* f_unknow_err = "Неизвестная ошибка";
|
||||
|
||||
typedef struct {
|
||||
int32_t err;
|
||||
const char* str;
|
||||
}t_err_table;
|
||||
|
||||
static const t_err_table f_err_tbl[] = {
|
||||
{ X502_ERR_OK, "Выполнено без ошибок" },
|
||||
{ X502_ERR_INVALID_HANDLE, "Недействительный описатель модуля"},
|
||||
{ X502_ERR_MEMORY_ALLOC, "Ошибка выделения памяти"},
|
||||
{ X502_ERR_ALREADY_OPENED, "Попытка открыть уже открытое устройство"},
|
||||
{ X502_ERR_DEVICE_NOT_FOUND, "Устройство с заданными параметрами не найдено в системе"},
|
||||
{ X502_ERR_DEVICE_ACCESS_DENIED, "Доступ к устройству запрещен"},
|
||||
{ X502_ERR_DEVICE_OPEN, "Ошибка открытия устройства"},
|
||||
{ X502_ERR_INVALID_POINTER, "В функцию передан недействительный указатель"},
|
||||
{ X502_ERR_STREAM_IS_RUNNING, "Функция не может быть выполнена при запущенном потоке сбора данных"},
|
||||
{ X502_ERR_RECV, "Ошибка чтения данных синхронного ввода"},
|
||||
{ X502_ERR_SEND, "Ошибка записи данных для синхронного вывода"},
|
||||
{ X502_ERR_STREAM_OVERFLOW, "Произошло переполнение внутреннего буфера для потока синхронного ввода"},
|
||||
{ X502_ERR_UNSUP_STREAM_MSG, "Неизвестное сообщение в потоке синхронного ввода"},
|
||||
{ X502_ERR_MUTEX_CREATE, "Ошибка создания системного мьютекса"},
|
||||
{ X502_ERR_MUTEX_INVALID_HANDLE, "Неверный описатель мьютекса"},
|
||||
{ X502_ERR_MUTEX_LOCK_TOUT, "Истекло время ожидания освобождния мьютекса"},
|
||||
{ X502_ERR_MUTEX_RELEASE, "Ошибка освобождения мьютекса"},
|
||||
{ X502_ERR_INSUFFICIENT_SYSTEM_RESOURCES, "Недостаточно системных ресурсов"},
|
||||
{ X502_ERR_NOT_IMPLEMENTED, "Данная возможность еще не реализована"},
|
||||
{ X502_ERR_INSUFFICIENT_ARRAY_SIZE, "Недостаточный размер массива"},
|
||||
{ X502_ERR_FPGA_REG_READ, "Ошибка чтения регистра FPGA"},
|
||||
{ X502_ERR_FPGA_REG_WRITE, "Ошибка записи регистра FPGA"},
|
||||
{ X502_ERR_STREAM_IS_NOT_RUNNING, "Синхронный сбор уже остановлен"},
|
||||
{ X502_ERR_INTERFACE_RELEASE, "Ошибка освобождения интерфейса"},
|
||||
{ X502_ERR_THREAD_START, "Ошибка запуска потока"},
|
||||
{ X502_ERR_THREAD_STOP, "Ошибка останова потока"},
|
||||
{ X502_ERR_DEVICE_DISCONNECTED, "Устройство было отключено"},
|
||||
{ X502_ERR_IOCTL_INVALID_RESP_SIZE, "Неверный размер ответа на управляющий запрос"},
|
||||
{ X502_ERR_INVALID_DEVICE, "Неверный тип устройства"},
|
||||
{ X502_ERR_INVALID_DEVICE_RECORD, "Недействительная запись о устройстве"},
|
||||
{ X502_ERR_INVALID_CONFIG_HANDLE, "Неверный описатель конфигурации модуля"},
|
||||
{ X502_ERR_DEVICE_NOT_OPENED, "Связь с устройством закрыта или не была установлена"},
|
||||
{ X502_ERR_INVALID_OP_FOR_IFACE, "Данная операция не доступна для текущего интерфейса связи с устройством"},
|
||||
{ X502_ERR_FPGA_NOT_LOADED, "Не загружен ПЛИС модуля"},
|
||||
{ X502_ERR_INVALID_USB_CONFIGURATION,"Неверная конфигурация USB-устройства"},
|
||||
{ X502_ERR_INVALID_SVC_BROWSE_HANDLE, "Неверный описатель контекста поиска сервисов"},
|
||||
{ X502_ERR_INVALID_SVC_RECORD_HANDLE,"Неверный описатель записи о сервисе"},
|
||||
#ifdef _WIN32
|
||||
{ X502_ERR_DNSSD_NOT_RUNNING, "Не запущена программа обнаружения устройств в локальной сети (Bonjour Service)"},
|
||||
#else
|
||||
{ X502_ERR_DNSSD_NOT_RUNNING, "Не запущена программа обнаружения устройств в локальной сети (AVAHI)"},
|
||||
#endif
|
||||
{ X502_ERR_DNSSD_COMMUNICATION, "Ошибка при обращении к программе обнаружения устройств в локальной сети"},
|
||||
{ X502_ERR_INVALID_SVC_BROWSE_HANDLE, "Неверный описатель контекста поиска устройств в сети"},
|
||||
{ X502_ERR_INVALID_SVC_RECORD_HANDLE, "Неверный описатель записи о сервисе"},
|
||||
{ X502_ERR_DNSSD_NOT_RUNNING, "Не запущена программа обнаружения устройств в локальной сети"},
|
||||
{ X502_ERR_DNSSD_COMMUNICATION, "Ошибка при обращении к программе обнаружения устройств в локальной сети"},
|
||||
{ X502_ERR_SVC_RESOLVE_TIMEOUT, "Превышен таймаут запроса параметров автообнаруженного сетевого устройства"},
|
||||
{ X502_ERR_INSTANCE_NAME_ENCODING, "Ошибка в кодировке имени экземляра устройства"},
|
||||
{ X502_ERR_INSTANCE_MISMATCH, "Экземпляры модулей не совпадают"},
|
||||
{ X502_ERR_NOT_SUP_BY_FIRMWARE, "Возможность не поддерживается текущей версией прошивки устройства"},
|
||||
{ X502_ERR_NOT_SUP_BY_DRIVER, "Возможность не поддерживается текущей версией драйвера устройства"},
|
||||
{ X502_ERR_OUT_CYCLE_SETUP_TOUT, "Превышено время ожидания установления цикличиского сигнала на вывод"},
|
||||
|
||||
{ X502_ERR_INVALID_LTABLE_SIZE, "Задан неверный размер логической таблицы"},
|
||||
{ X502_ERR_INVALID_LCH_NUMBER, "Задан неверный номер логического канала"},
|
||||
{ X502_ERR_INVALID_LCH_RANGE, "Неверно задано значение диапазона АЦП"},
|
||||
{ X502_ERR_INVALID_LCH_MODE, "Неверно задан режим измерения для логического канала"},
|
||||
{ X502_ERR_INVALID_LCH_PHY_NUMBER, "Неверно задан номер физического канала при настройке логического"},
|
||||
{ X502_ERR_INVALID_LCH_AVG_SIZE, "Неверно задан размер усреднения для логического канала"},
|
||||
{ X502_ERR_INVALID_ADC_FREQ_DIV, "Неверно задан делитель частоты сбора данных АЦП"},
|
||||
{ X502_ERR_INVALID_DIN_FREQ_DIV, "Неверно задан делитель частоты синхронного ввода цифровых линий"},
|
||||
{ X502_ERR_INVALID_MODE, "Неверно задан режим работы платы"},
|
||||
{ X502_ERR_INVALID_DAC_CHANNEL, "Неверный номер канала ЦАП"},
|
||||
{ X502_ERR_INVALID_REF_FREQ, "Неверный код выбора опорной частоты синхронизации"},
|
||||
{ X502_ERR_INVALID_INTERFRAME_DELAY,"Неверно задано значение межкадровой задержки"},
|
||||
{ X502_ERR_INVALID_SYNC_MODE, "Неверно задан режим синхронизации"},
|
||||
{ X502_ERR_INVALID_STREAM_CH, "Неверно задан номер потока данных"},
|
||||
{ X502_ERR_INVALID_OUT_FREQ_DIV, "Неверно задан делитель частоты синхронного вывода"},
|
||||
{ X502_ERR_REF_FREQ_NOT_LOCKED, "Ошибка захвата опорной частоты синхронизации"},
|
||||
{ X502_ERR_IOCTL_FAILD, "Управляющий запрос к драйверу завершен с ошибкой"},
|
||||
{ X502_ERR_IOCTL_TIMEOUT, "Истек таймаут ожидания завершения выполнения управляющего запроса к драйверу"},
|
||||
{ X502_ERR_GET_INFO, "Ошибка получения информации о устройстве от драйвера"},
|
||||
{ X502_ERR_DIG_IN_NOT_RDY, "За время ожидания не было считано новое слово с цифровых линий"},
|
||||
{ X502_ERR_RECV_INSUFFICIENT_WORDS, "Принято недостаточно слов от модуля"},
|
||||
{ X502_ERR_DAC_NOT_PRESENT, "Попытка выполнить операцию, требующую наличие ЦАП, при его отсутствии"},
|
||||
{ X502_ERR_SEND_INSUFFICIENT_WORDS, "Передано недостаточно слов в модуль"},
|
||||
{ X502_ERR_NO_CMD_RESPONSE, "Не пришло ответа на переданную команду"},
|
||||
{ X502_ERR_PROC_INVALID_CH_NUM, "Неверный номер канала в обрабатываемом потоке синхронного ввода"},
|
||||
{ X502_ERR_PROC_INVALID_CH_RANGE, "Неверный код диапазона в обрабатываемом потоке синхронного ввода"},
|
||||
{ X502_ERR_FLASH_INVALID_ADDR, "Задан неверный адрес во Flash-памяти"},
|
||||
{ X502_ERR_FLASH_INVALID_SIZE, "Задан неверный размер блока данных при работе с Flash-памятью"},
|
||||
{ X502_ERR_FLASH_WRITE_TOUT, "Истек таймаут ожидания завершения записи во Flash-память"},
|
||||
{ X502_ERR_FLASH_ERASE_TOUT, "Истек таймаут ожидания завершения стирания блока Flash-памяти"},
|
||||
{ X502_ERR_FLASH_SECTOR_BOUNDARY, "Заданная область для стирания Flash-памяти нарушает границу блока в 4 Кбайт"},
|
||||
|
||||
{ X502_ERR_SOCKET_OPEN, "Не удалось открыть сокет для соединения"},
|
||||
{ X502_ERR_CONNECTION_TOUT, "Превышено время подключения"},
|
||||
{ X502_ERR_CONNECTION_CLOSED_BY_DEV,"Соединение закрыто устройством"},
|
||||
{ X502_ERR_SOCKET_SET_BUF_SIZE, "Не удалось установить заданный размер буфера сокета"},
|
||||
{ X502_ERR_NO_DATA_CONNECTION, "Соединение для передачи данных не установлено"},
|
||||
{ X502_ERR_NO_STREAM_END_MSG, "Не удалось дождаться сообщения о завершении потока"},
|
||||
{ X502_ERR_CONNECTION_RESET, "Соединение было сброшено другой стороной"},
|
||||
{ X502_ERR_HOST_UNREACHABLE, "Не удалось найти хост с указанным адресом"},
|
||||
{ X502_ERR_TCP_CONNECTION_ERROR, "Ошибка установления TCP-соединения"},
|
||||
|
||||
{ X502_ERR_LDR_FILE_OPEN, "Не удалось открыть файл прошивки BlackFin"},
|
||||
{ X502_ERR_LDR_FILE_READ, "Ошибка чтения из фала прошивки BlackFin"},
|
||||
{ X502_ERR_LDR_FILE_FORMAT, "Неверный формат файла прошивки BlackFin"},
|
||||
{ X502_ERR_LDR_FILE_UNSUP_FEATURE, "Используются возможность LDR-файла, недоступные при записи прошивки BlackFin по HDMA"},
|
||||
{ X502_ERR_LDR_FILE_UNSUP_STARTUP_ADDR, "Неверный стартовый адрес программы в прошивке BlackFin"},
|
||||
{ X502_ERR_BF_REQ_TIMEOUT, "Истек таймаут выполнения запроса на чтения/запись памяти BlackFin"},
|
||||
{ X502_ERR_BF_CMD_IN_PROGRESS, "Команда для BlackFin все еще находится в процессе обработки"},
|
||||
{ X502_ERR_BF_CMD_TIMEOUT, "Истекло время выполнения управляющей команды процессором BlackFin"},
|
||||
{ X502_ERR_BF_CMD_RETURN_INSUF_DATA,"Возвращено недостаточно данных в ответ на команду к BlackFin"},
|
||||
{ X502_ERR_BF_LOAD_RDY_TOUT, "Истек таймаут ожидания готовности процессора BlackFin к записи прошивки"},
|
||||
{ X502_ERR_BF_NOT_PRESENT, "Процессор BlackFin не присутствует на плате"},
|
||||
{ X502_ERR_BF_INVALID_ADDR, "Неверный адрес памяти BlackFin при записи или чтении по HDMA"},
|
||||
{ X502_ERR_BF_INVALID_CMD_DATA_SIZE,"Неверный размер данных, передаваемых с управляющей командой в BlackFin"},
|
||||
|
||||
{ L502_BF_ERR_UNSUP_CMD, "Ошибка BlackFin: неподдерживаемый код команды"},
|
||||
{ L502_BF_ERR_CMD_OVERRUN, "Ошибка BlackFin: запрос на выполнение команды опережает завершение предыдущей"},
|
||||
{ L502_BF_ERR_INVALID_CMD_PARAMS, "Ошибка BlackFin: неверное значение параметров команды"},
|
||||
{ L502_BF_ERR_INSUF_CMD_DATA, "Ошибка BlackFin: недостаточное данных передано с командой"},
|
||||
{ L502_BF_ERR_STREAM_RUNNING, "Ошибка BlackFin: команда не допустима при запущеном сборе"},
|
||||
{ L502_BF_ERR_STREAM_STOPPED, "Ошибка BlackFin: команда допустима только при запущеном сборе"},
|
||||
{ L502_BF_ERR_NO_TEST_IN_PROGR, "Ошибка BlackFin: не выполняется ни одного теста"},
|
||||
{ L502_BF_ERR_TEST_VALUE, "Ошибка BlackFin: неверное значение при выполнении теста"},
|
||||
|
||||
{ E502_CM4_ERR_FPGA_NSTATUS_TOUT, "Ошибка Cortex-M4: При загрузке ПЛИС не удалось дождаться сигнала перехода в режим загрузки"},
|
||||
{ E502_CM4_ERR_FPGA_CONF_DONE_TOUT, "Ошибка Cortex-M4: При загрузке ПЛИС не удалось дождаться сигнала завершения загрузки"},
|
||||
{ E502_CM4_ERR_FPGA_FW_NOT_PRESENT, "Ошибка Cortex-M4: Не обнаружена прошивка ПЛИС во flash-памяти модуля"},
|
||||
{ E502_CM4_ERR_FPGA_REG_NACK, "Ошибка Cortex-M4: Обращение к регистру ПЛИС вернуло ответ NACK"},
|
||||
{ E502_CM4_ERR_FPGA_REG_ERROR, "Ошибка Cortex-M4: Обращение к регистру ПЛИС вернуло ответ ERROR"},
|
||||
{ E502_CM4_ERR_FPGA_REG_WT_TOUT, "Ошибка Cortex-M4: Не удалось дожлаться ответ на обращение к регистру ПЛИС"},
|
||||
{ E502_CM4_ERR_TEST_INVALID_NUM, "Ошибка Cortex-M4: Неподдерживаемый номер теста"},
|
||||
{ E502_CM4_ERR_TEST_VALUE_MISMATH, "Ошибка Cortex-M4: Несовпадение ожидаемых значений при проходе теста"},
|
||||
{ E502_CM4_ERR_TEST_NOT_RUNNING, "Ошибка Cortex-M4: Тест не запущен"},
|
||||
{ E502_CM4_ERR_TEST_ALREADY_RUNNING,"Ошибка Cortex-M4: Tест уже запщен"},
|
||||
{ E502_CM4_ERR_BF_LDR_FILE_SIZE, "Ошибка Cortex-M4: Не удалось найти конец файла прошивки BlackFin"},
|
||||
{ E502_CM4_ERR_LDR_FILE_FORMAT, "Ошибка Cortex-M4: Неверный формат файла прошивки BlackFin"},
|
||||
{ E502_CM4_ERR_LDR_FILE_UNSUP_FEATURE, "Ошибка Cortex-M4: Используются возможность LDR-файла, недоступные при записи прошивки BlackFin по HDMA"},
|
||||
{ E502_CM4_ERR_LDR_FILE_UNSUP_STARTUP_ADDR, "Ошибка Cortex-M4: Неверный стартовый адрес программы в прошивке BlackFin"},
|
||||
{ E502_CM4_ERR_BF_REQ_TIMEOUT, "Ошибка Cortex-M4: Истек таймаут выполнения запроса на чтения/запись памяти BlackFin"},
|
||||
{ E502_CM4_ERR_BF_CMD_IN_PROGRESS, "Ошибка Cortex-M4: Команда для BlackFin все еще находится в процессе обработки"},
|
||||
{ E502_CM4_ERR_BF_CMD_TIMEOUT, "Ошибка Cortex-M4: Истекло время выполнения управляющей команды процессором BlackFin"},
|
||||
{ E502_CM4_ERR_BF_CMD_RETURN_INSUF_DATA, "Ошибка Cortex-M4: Возвращено недостаточно данных в ответ на команду к BlackFin"},
|
||||
{ E502_CM4_ERR_BF_LOAD_RDY_TOUT, "Ошибка Cortex-M4: Истек таймаут ожидания готовности процессора BlackFin к записи прошивки"},
|
||||
{ E502_CM4_ERR_BF_NOT_PRESENT, "Ошибка Cortex-M4: Попытка выполнить операцию для которой нужен сигнальный процессор при отсутствии сигнального процессора в модуле"},
|
||||
{ E502_CM4_ERR_BF_INVALID_ADDR, "Ошибка Cortex-M4: Неверный адрес памяти BlackFin при записи или чтении по HDMA"},
|
||||
{ E502_CM4_ERR_BF_INVALID_CMD_DATA_SIZE, "Ошибка Cortex-M4: Неверный размер данных, передаваемых с управляющей командой в BlackFin"},
|
||||
{ E502_CM4_ERR_UNKNOWN_CMD, "Ошибка Cortex-M4: Неподдерживаемый код команды"},
|
||||
{ E502_CM4_ERR_INVALID_CMD_PARAMS, "Ошибка Cortex-M4: Неверные параметры переданной команды"},
|
||||
{ E502_CM4_ERR_FIRM_BUF_OVERFLOW, "Ошибка Cortex-M4: Переполнение буфера для приема прошивки"},
|
||||
{ E502_CM4_ERR_CMD_SIGNATURE, "Ошибка Cortex-M4: Неверный признак начала команды"},
|
||||
{ E502_CM4_ERR_INVALID_CMD_DATA_SIZE, "Ошибка Cortex-M4: Неверное количество данных в команде"},
|
||||
{ E502_CM4_ERR_FLASH_PROT_CODE, "Ошибка Cortex-M4: Неверный код настройки защиты Flash-памяти"},
|
||||
{ E502_CM4_ERR_FLASH_OP, "Ошибка Cortex-M4: Ошибка выполнения операции с Flash-памятью"},
|
||||
{ E502_CM4_ERR_FLASH_DATA_COMPARE, "Ошибка Cortex-M4: Ошибка сравнения записанных данных во Flash-память"},
|
||||
{ E502_CM4_ERR_INVALID_PASSWORD, "Ошибка Cortex-M4: Неверный пароль для изменения сетевых настроек"},
|
||||
{ E502_CM4_ERR_FPGA_NOT_LOADED, "Ошибка Cortex-M4: ПЛИС не был загружен"},
|
||||
{ E502_CM4_ERR_FLASH_SET_PROT_BITS, "Ошибка Cortex-M4: Не удалось изменить занчения битов защиты Flash-памяти"},
|
||||
{ E502_CM4_ERR_FPGA_FW_INVALID_TEMP_RANGE, "Ошибка Cortex-M4: Загруженная прошивка ПЛИС предназначена для другого темп. исполнения"},
|
||||
{ E502_CM4_ERR_M0_STREAM_START_REQ, "Ошибка Cortex-M4: Нет ответа на запрос запуска потока от ядра Cortex-M0"},
|
||||
{ E502_CM4_ERR_M0_STREAM_STOP_REQ, "Ошибка Cortex-M4: Нет ответа на запрос останова потока от ядра Cortex-M0"},
|
||||
{ E502_CM4_ERR_OUT_STREAM_RUNNING, "Ошибка Cortex-M4: Уже запущен вывод в потоковом режиме"},
|
||||
{ E502_CM4_ERR_OUT_NO_CYCLE_BUF, "Ошибка Cortex-M4: Нет свободного буфера для циклического режима. Не произошла смена страниц"},
|
||||
{ E502_CM4_ERR_OUT_CYCLE_BUF_SIZE, "Ошибка Cortex-M4: Задан слишком большой размер циклического буфера"},
|
||||
{ E502_CM4_ERR_OUT_CYCLE_NOT_LOADED, "Ошибка Cortex-M4: Не был полностью загружен циклический буфер перед сменой"}
|
||||
};
|
||||
|
||||
|
||||
X502_EXPORT(const char*) X502_GetErrorString(int32_t err) {
|
||||
size_t i;
|
||||
const char *str = f_unknow_err;
|
||||
|
||||
for (i=0; (i < sizeof(f_err_tbl)/sizeof(f_err_tbl[0])) && (str==f_unknow_err); i++) {
|
||||
if (f_err_tbl[i].err == err)
|
||||
str = f_err_tbl[i].str;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
Reference in New Issue
Block a user