Страница 3 из 4

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

Добавлено: 25 сен 2011, 17:20
Бочкарев Юрий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;
}

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

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

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

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

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

Добавлено: 26 сен 2011, 10:44
Бочкарев Юрий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);

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

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

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

Добавлено: 26 сен 2011, 12:46
Бочкарев Юрий2
Спасибо за помощь! Только после того, как я скомпилировал проект, пришел начальник, случайно задел ногой шнур USB и 917 перегорел - при подключении пишет- неизвестное устройство USB - VID PID нулевые! Можно как - нибудь организовать быстрый ремонт?

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

Добавлено: 26 сен 2011, 12:57
Михаил Поляков
Привозите, посмотрим.
Но скорее всего придется заменять. Новый будет готов только через неделю.

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

Добавлено: 26 сен 2011, 13:05
Бочкарев Юрий2
Очень жалко! Что же он такой нежный-то? А Аналоги есть у него какие -нибудь доступные ?

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

Добавлено: 27 сен 2011, 10:41
Михаил Поляков
Скорее всего там провода порваны.
Аналогов нет.

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

Добавлено: 31 мар 2013, 20:33
Индикатор
Здравствуйте, на первой странице данной ветки есть ссылка на пример для Дельфи-5, к сожалению ссылка дохлая. Нельзя ли её обновить?

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

Добавлено: 01 апр 2013, 11:01
Stas_SPb
Попробуйте это

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

Добавлено: 10 авг 2016, 17:09
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, я для тестов их переименовываю )))

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

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

С уважением, Александр.

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

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

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

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

Заранее благодарен.
С уважением, Александр.

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

Добавлено: 23 авг 2016, 10:34
Денис Кашин
Напишите мне в ЛС свой почтовый адрес, я отправлю вам прошивку.
Со старой прошивкой работать можно, на функциональность и точность она не влияет, просто драйвер не установится в 64 битных системах.