Программирование ЛИР-917
Модератор: Денис Кашин
Re: Программирование ЛИР-917
Прошу прощения. Вот Кусок кода опроса:
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;
}
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 - захвачена)
1. В функции connectRotSystem необходимо добавить сброс абсолютной и относительной координаты.
2. После добавления сброса координат, опишите что происходит с референтной меткой поподробнее.
(buffer[STATUS_OFFSET] & VCC_FLAG) == 0 - проверяет питание на датчике. (0- есть питание, 1- нет питания)
(buffer[STATUS_OFFSET] & R_FLAG) == 0 - проверяет захвачена ли референтная метка. (0 - не захвачена , 1 - захвачена)
Re: Программирование ЛИР-917
Я правильно понимаю, что при подключении (connectRotSys) - необходимо будет каждый раз искать референтную метку, даже если датчик уже до этого был включен и его уже до реф метки доводили?
Re: Программирование ЛИР-917
Добавил следующее к запросу на подключение:
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);
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
Да, правильно ! Так как питание датчика включается только после SI_Open.Бочкарев Юрий2 писал(а):Я правильно понимаю, что при подключении (connectRotSys) - необходимо будет каждый раз искать референтную метку, даже если датчик уже до этого был включен и его уже до реф метки доводили?
Re: Программирование ЛИР-917
Спасибо за помощь! Только после того, как я скомпилировал проект, пришел начальник, случайно задел ногой шнур USB и 917 перегорел - при подключении пишет- неизвестное устройство USB - VID PID нулевые! Можно как - нибудь организовать быстрый ремонт?
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Re: Программирование ЛИР-917
Привозите, посмотрим.
Но скорее всего придется заменять. Новый будет готов только через неделю.
Но скорее всего придется заменять. Новый будет готов только через неделю.
Re: Программирование ЛИР-917
Очень жалко! Что же он такой нежный-то? А Аналоги есть у него какие -нибудь доступные ?
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Re: Программирование ЛИР-917
Скорее всего там провода порваны.
Аналогов нет.
Аналогов нет.
Re: Программирование ЛИР-917
Здравствуйте, на первой странице данной ветки есть ссылка на пример для Дельфи-5, к сожалению ссылка дохлая. Нельзя ли её обновить?
Re: Программирование ЛИР-917
День добрый, уважаемые разработчики!
Нужна ваша помощь.
Скачал вышеуказанный пример на 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, я для тестов их переименовываю )))
ПО "Скиф" работает.
Заранее благодарен.
С уважением, Александр.
Нужна ваша помощь.
Скачал вышеуказанный пример на 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 КБ) 491 скачивание
-
- СКБИС
- Сообщения: 466
- Зарегистрирован: 13 фев 2008, 14:38
- Контактная информация:
Re: Программирование ЛИР-917
Здравствуйте,
У вас старая, 32х битная версия прошивки в ЛИР-917. Она работает со старым драйвером и библиотекой.
Для работы с новой версией библиотеки необходимо обновить прошивку в ЛИР-917
У вас старая, 32х битная версия прошивки в ЛИР-917. Она работает со старым драйвером и библиотекой.
Для работы с новой версией библиотеки необходимо обновить прошивку в ЛИР-917
Re: Программирование ЛИР-917
Спасибо!
Еще появились вопросы:
Подскажите, как обновить прошивку на ЛИР-917?
Можно ли работать со старой прошивкой, чем это чревато (точность измерений, зависания устройства, искажения данных и т.п.)?
Заранее благодарен.
С уважением, Александр.
Еще появились вопросы:
Подскажите, как обновить прошивку на ЛИР-917?
Можно ли работать со старой прошивкой, чем это чревато (точность измерений, зависания устройства, искажения данных и т.п.)?
Заранее благодарен.
С уважением, Александр.
-
- СКБИС
- Сообщения: 466
- Зарегистрирован: 13 фев 2008, 14:38
- Контактная информация:
Re: Программирование ЛИР-917
Напишите мне в ЛС свой почтовый адрес, я отправлю вам прошивку.
Со старой прошивкой работать можно, на функциональность и точность она не влияет, просто драйвер не установится в 64 битных системах.
Со старой прошивкой работать можно, на функциональность и точность она не влияет, просто драйвер не установится в 64 битных системах.