Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
файл базы небольшой мне в почту пришлите poulch@mail.ru посмотрю что там. давно это было надо вспомнить.
нет тут никого кто сможет ответить. прибор сняли с производства. и меня как разработчика lpw-studio ii там тоже нет...
смотря как получен COM порт на компе. Если он там физический и раньше модуль работал с ним, то может и неисправен... а если USB конверторы то возможны варианты...
Все было рабочее в 2020 году когда меня увольняли... и на все ос ставилось нормально.
Как такового драйвера там нет. Там есть только Dll для работы через COM-порт через стандартное WinApi. Это я как автор говорю. И примеры.
ну не собрался графический пример и ладно. меня как автора этого всего уже 4 года как в лкарде нет. да и wxwigets только я там пользовался. все остальные qt-шники. главное чтобы дрова собрались. библиотека и пример test. частным порядком можете чего-то у меня спросить на poulch@mail.ru
да обычный L7XX.TST из lcomp. после ReadPlataDescr в нем сделать сохранение в файл структуры. Любой программист разберется.
Программку написать или пример модифицировать. Но если нет компетенций, то никак тогда.
ReadPlataDescr WritePlataDescr если переживаете за калибр коэф. вроде работала иначе как бы тогда поняли что нужно прошивку править.
обновляйте на том пк где она работает. там были какие-то упрощения в прошивке у первоначального разработчика платы. емнип в плане поддержки режимов чтения/записи и базировались они на анализе как с платой работали ос которые в тот момент были актуальны. в более свежих ос процесс энумерации изменился и плата перестала нормально инициализироваться. пришлось делать обновленную прошивку. Но если что - я тут уже не работаю... при обновлении там выдаст
cout << "Working with: " << endl;
cout << " Board name : " << pd.BrdName << endl;
cout << " Serial number: " << pd.SerNum << endl;
cout << " Revision : " << pd.Rev << endl;
cout << endl << "If board name and serial number are broken please ABORT this program (press N)" << endl;
cout << "and try another PC and/or OS, or try DOS flash utility !!!" << endl;
pI->inmdword(0xFF4,&Ver);
cout << endl << "Current Firmware Version 0x" << hex << Ver << dec << endl;
/*
if(Ver>0x2000201)
{
cout << "No update needed. Exiting..." << endl;
pI->CloseLDevice();
pI->Release();
return;
}
*/
char ch;
cout << "Continue? (Y/N)";
скажите нет и сюда firmvare version выложите - вам точно скажут нужно обновлять или нет.
когда то давно, когда я еще работал в лкард, я купил из любопытства переходник pci-pciex на asmedia asm1083 и проверил работу плат с ним. там не будет питания отрицательного, которое критично для некоторых плат, его придется проводком кидать. проверял ли я именно 791 плату не помню. всякие 761 780 783 работают. переходник, то у меня сохранился, но платы 791 для проверки нет. идею производить переходники или сделать pciex варианты 761-780 с иcпользованием asmedia не восприняли. переходник у меня практически такой как по ссылке, только noname с aliexpress.
нет это не задание буфера, это только желание задать буфер в плате. буферов 2 - в плате и в PC. в примере L7XX.TST из lcomp есть комментарии. в хелпе есть описание принципа сбора данных с модуля. такой вот некий автономный режим сбора и обработки не был предусмотрен. вернее его ручками придется задавать записывая нужные данные в нужные ячейки памяти через put/get. или запустить потоковый сбор и просто не забирать данные, а читать что нужно.
не только. нужен полный запуск потокового сбора как в примере. с выделением хоть небольшого буфера и дальше по порядку.
Оно так работать не будет. FillADCparameters в драйвер передаст, а в модуль их передаст StarLdevice.
это первый такой запрос за все время как я написал эту библиотеку. а сейчас это уже не моя печаль...
#define LBIOS_OUTVAR(v) ((unsigned int)v<<8)
ULONG EnableCorrection(USHORT Ena)
{
for(int i = 0; i < 4; i++)
{
if(pI->PutWord_PM(L_ZERO_E440+i, LBIOS_OUTVAR(pd.t4.KoefADC[ i ]))) return L_ERROR;
if(pI->PutWord_PM(L_SCALE_E440+i, LBIOS_OUTVAR(pd.t4.KoefADC[4+i]))) return L_ERROR;
}
// enable or disable
if(pI->PutWord_PM(L_CORRECTION_ENABLED_E440, LBIOS_OUTVAR(Ena))) return L_ERROR;
return L_SUCCESS;
}
просто реализуйте ее у себя на верху и передавайте свои коэф. сколько угодно. ну и вызывайте ее вместо встроенной
первый запрос с usb не общается, можно не реализовывать. reset и abort вроде не имеют прямых аналогов в Android API
https://stackoverflow.com/questions/957 … -host-apis
DeviceIoControl так пакет формирует для DIOC_SEND_COMMAND
WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(
&Packet,
(((PUSHORT)inBuf)[0] ? BmRequestDeviceToHost : BmRequestHostToDevice ),
BmRequestToDevice,
(BYTE)(((PUSHORT)inBuf)[1]), // cmd
((PUSHORT)inBuf)[2], // addr value
((PUSHORT)inBuf)[3] // index len
);
те надо не bulkTransfer, а controlTransfer я думаю.
LUsbApi работает через драйвер ldevusbu.sys. принцип там такой. через ControlPipe передаются медленные команды это DiviceIoControl и там пакет InBuf[4] и возврат данных массивом (см GetArray PutArray), а когда сконфигурирован потоковый ввод или вывод, то используется ReadFile WriteFile для откачки данных и это уже по BulkPipe.
Ну а штатные примеры из sdk эта студия не берет? они там на vs2010 и раньше вроде конвертировались при открытии...
А подробней? Для lcomp.exe на XP надо чтобы все все обновления стояли и сервиспаки. В крайнем случае lcomp_old можно попробовать.
А у прибора на старом ноутбуке какой адрес был? Какие настройки сети у старого ноута были и какие в новом установить пытаетесь?
Тогда решите пропорцию и увидите что все ок. А такое число результат применения корр. коэф.
входное напряжение при этом какое? Ну или надо убедиться что при декларируемом МАХ входном напряжении диапазона на входе код ацп 8000. (из руководства программиста)
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск