Программирование ЛИР-917

Модератор: Денис Кашин

Бочкарев Юрий2

Re: Программирование ЛИР-917

Сообщение Бочкарев Юрий2 »

Прошу прощения. Вот Кусок кода опроса:
int connectRotSystem(void)
{
DWORD numDevices = 0;
SI_GetNumDevices(&numDevices);

if (numDevices == 0)
{
return 1;
}

if (SI_Open(usbNum, &usb) != SI_SUCCESS)
{

return 2;
}
return 0;
}
int GetResultRotSystem(void)
{
UCHAR buffer[IN_PACKAGE_SIZE];
DWORD byteCount = 0;
UCHAR command = PACKAGE_REQUEST;
const DWORD STANDART_TIMEOUT = 500; // мс
SI_SetTimeouts(STANDART_TIMEOUT, STANDART_TIMEOUT);

SI_FlushBuffers(usb, 1, 1);

if (SI_Write(usb, &command, OUT_PACKAGE_SIZE, &byteCount) == SI_SUCCESS &&
byteCount == OUT_PACKAGE_SIZE)
{
if (SI_Read(usb, buffer, IN_PACKAGE_SIZE, &byteCount) == SI_SUCCESS &&
byteCount == IN_PACKAGE_SIZE)
{
if ((buffer[STATUS_OFFSET] & VCC_FLAG) == 0)
{
return GetInt32(buffer, ABS_COORD_NUM);
}

}
}
return -1;
}
Михаил Поляков
СКБИС
СКБИС
Сообщения: 79
Зарегистрирован: 06 фев 2008, 16:10

Re: Программирование ЛИР-917

Сообщение Михаил Поляков »

Здравствуйте, Юрий !
1. В функции connectRotSystem необходимо добавить сброс абсолютной и относительной координаты.
2. После добавления сброса координат, опишите что происходит с референтной меткой поподробнее.
(buffer[STATUS_OFFSET] & VCC_FLAG) == 0 - проверяет питание на датчике. (0- есть питание, 1- нет питания)
(buffer[STATUS_OFFSET] & R_FLAG) == 0 - проверяет захвачена ли референтная метка. (0 - не захвачена , 1 - захвачена)
Бочкарев Юрий2

Re: Программирование ЛИР-917

Сообщение Бочкарев Юрий2 »

Я правильно понимаю, что при подключении (connectRotSys) - необходимо будет каждый раз искать референтную метку, даже если датчик уже до этого был включен и его уже до реф метки доводили?
Бочкарев Юрий2

Re: Программирование ЛИР-917

Сообщение Бочкарев Юрий2 »

Добавил следующее к запросу на подключение:
UCHAR command = DROP_ABS_COORDINATE;
DWORD byteCount = 0;
SI_FlushBuffers(usb, 1, 1);
const DWORD STANDART_TIMEOUT = 500; // мс
SI_SetTimeouts(STANDART_TIMEOUT, STANDART_TIMEOUT);
SI_Write(usb, &command, OUT_PACKAGE_SIZE, &byteCount);
UCHAR command = DROP_ABS_COORDINATE;
SI_FlushBuffers(usb, 1, 1);
SI_Write(usb, &command, OUT_PACKAGE_SIZE, &byteCount);
Михаил Поляков
СКБИС
СКБИС
Сообщения: 79
Зарегистрирован: 06 фев 2008, 16:10

Re: Программирование ЛИР-917

Сообщение Михаил Поляков »

Бочкарев Юрий2 писал(а):Я правильно понимаю, что при подключении (connectRotSys) - необходимо будет каждый раз искать референтную метку, даже если датчик уже до этого был включен и его уже до реф метки доводили?
Да, правильно ! Так как питание датчика включается только после SI_Open.
Бочкарев Юрий2

Re: Программирование ЛИР-917

Сообщение Бочкарев Юрий2 »

Спасибо за помощь! Только после того, как я скомпилировал проект, пришел начальник, случайно задел ногой шнур USB и 917 перегорел - при подключении пишет- неизвестное устройство USB - VID PID нулевые! Можно как - нибудь организовать быстрый ремонт?
Михаил Поляков
СКБИС
СКБИС
Сообщения: 79
Зарегистрирован: 06 фев 2008, 16:10

Re: Программирование ЛИР-917

Сообщение Михаил Поляков »

Привозите, посмотрим.
Но скорее всего придется заменять. Новый будет готов только через неделю.
Бочкарев Юрий2

Re: Программирование ЛИР-917

Сообщение Бочкарев Юрий2 »

Очень жалко! Что же он такой нежный-то? А Аналоги есть у него какие -нибудь доступные ?
Михаил Поляков
СКБИС
СКБИС
Сообщения: 79
Зарегистрирован: 06 фев 2008, 16:10

Re: Программирование ЛИР-917

Сообщение Михаил Поляков »

Скорее всего там провода порваны.
Аналогов нет.
Индикатор
Сообщения: 1
Зарегистрирован: 31 мар 2013, 20:27

Re: Программирование ЛИР-917

Сообщение Индикатор »

Здравствуйте, на первой странице данной ветки есть ссылка на пример для Дельфи-5, к сожалению ссылка дохлая. Нельзя ли её обновить?
Stas_SPb
Сообщения: 46
Зарегистрирован: 04 апр 2008, 13:35

Re: Программирование ЛИР-917

Сообщение Stas_SPb »

Попробуйте это
Вложения
l917_d5.zip
(202.56 КБ) 897 скачиваний
as2714
Сообщения: 3
Зарегистрирован: 10 авг 2016, 16:09

Re: Программирование ЛИР-917

Сообщение as2714 »

День добрый, уважаемые разработчики!

Нужна ваша помощь.
Скачал вышеуказанный пример на Delphi 5, открыл в Delphi XE5, скомпилил, подключил Лир-14 + Лир-917, запустил программу, все работает.
В примере версия SiUSBXp.dll - 2.4.2.0

Попробовал с новой версией SiUSBXp.dll - 3.5.0.0, скачанной с сайта,
при вызове status := SI_Write(uHandle, @buf, 1, @NumBytesWritten) - возвращает код 12, далее
при вызове status := SI_Read(uHandle, @buf, 13, @NumBytesWritten) - получаю RuntimeError.

Проект во вложении, посмотрите, пожалуйста.
новая dll в проекте - new_SiUSBXp.dll, я для тестов их переименовываю )))

ПО "Скиф" работает.

Заранее благодарен.

С уважением, Александр.
Вложения
LIR_917_test.rar
(129.71 КБ) 489 скачиваний
Денис Кашин
СКБИС
СКБИС
Сообщения: 460
Зарегистрирован: 13 фев 2008, 14:38
Контактная информация:

Re: Программирование ЛИР-917

Сообщение Денис Кашин »

Здравствуйте,
У вас старая, 32х битная версия прошивки в ЛИР-917. Она работает со старым драйвером и библиотекой.
Для работы с новой версией библиотеки необходимо обновить прошивку в ЛИР-917
as2714
Сообщения: 3
Зарегистрирован: 10 авг 2016, 16:09

Re: Программирование ЛИР-917

Сообщение as2714 »

Спасибо!
Еще появились вопросы:
Подскажите, как обновить прошивку на ЛИР-917?
Можно ли работать со старой прошивкой, чем это чревато (точность измерений, зависания устройства, искажения данных и т.п.)?

Заранее благодарен.
С уважением, Александр.
Денис Кашин
СКБИС
СКБИС
Сообщения: 460
Зарегистрирован: 13 фев 2008, 14:38
Контактная информация:

Re: Программирование ЛИР-917

Сообщение Денис Кашин »

Напишите мне в ЛС свой почтовый адрес, я отправлю вам прошивку.
Со старой прошивкой работать можно, на функциональность и точность она не влияет, просто драйвер не установится в 64 битных системах.
Ответить