Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Приветствую! Имеется программа, написанная под плату L-1250, под DOS. Совместима ли она с платой L780?
sl неправильно описан. SLOT_PAR sl; и вызов GetSlotParam(&sl); будет работать, а так описан указатель и память под него не выделена...
Большое спасибо. Аналогичным образом исправил с ReadPlataDescr - все заработало.
как бы функции возвращают результат. и если до этого момента были ошибки то все может быть... чего trace печатает? и как себя ведет готовый проект?
По trace все нормально до этой строки, ошибок или исключений не возникало. Готовый проект отрабатывает полностью.
там этот символ определен. и вообще лучше просто взять готовый проект l7xx.tst и его мучить.
Понял, спасибо. Готовый проект это хорошо, но необходимо полностью разобраться. A что насчет метода trace?
там в готовом проекте l7xx.tst включаетс lguids.cpp...
Каким образом он связан и поможет в моем случае?
Написал программу в соответствии с руководствами для проверки вывода данных с одиночного отсчета и последующей расшифровки кода АЦП:
// ConsoleApplication2.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <clocale>
#include <iostream>
#include <iomanip>
#include <objbase.h>
#include <math.h>
#include "ioctl.h"
#include "ifc_ldev.h"
#include "e2010cmd.h"
//#include "create.h"
ULONG slot = 0;
PSLOT_PAR sl;
LPVOID pd;
void *data;
ULONG *sync;
ASYNC_PAR pp;
using namespace std;
typedef IDaqLDevice* (*CREATEFUNCPTR)(ULONG Slot);
CREATEFUNCPTR CreateInstance;
HINSTANCE CallCreateInstance(char* name)
{
HINSTANCE hComponent = ::LoadLibrary((LPCWSTR)name);
if (hComponent == NULL) { return 0; }
CreateInstance = (CREATEFUNCPTR)::GetProcAddress(hComponent, "CreateInstance");
if (CreateInstance == NULL) { return 0; }
return hComponent;
}
int main(int argc, char *argv[])
{
trace("Get IUnknown pointer");
CallCreateInstance("lcomp.dll");
LUnknown* pIUnknown = CreateInstance(slot);
if (pIUnknown == NULL)
{
trace("CallCreateInstance failed");
return 1;
}
trace("Get IDaqLDevice interface");
IDaqLDevice* pI;
HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV, (void**)&pI);
if (!SUCCEEDED(hr))
{
trace("Get IDaqLDevice failed");
return 1;
}
trace("IDaqLDevice get success");
trace("Free IUnknown");
pIUnknown->Release();
pI->OpenLDevice(); // начало работы с платой
pI->GetSlotParam(sl);
pI->LoadBios("l780");
pI->PlataTest();
pI->ReadPlataDescr(pd);
pp.s_Type = L_ASYNC_ADC_INP;
pp.Chn[0] = 0x00; // 0 канал дифф. подключение (в общем случае лог. номер канала)
pI->IoAsync(&pp);
cout << (short)pp.Data[0] << endl; // в Data[0] код АЦП
pI->CloseLDevice(); // завершение работы
pI->Release();
system("PAUSE");
}
В результате, имею
Если удаляю из кода все, что связано с trace имею последние 2 ошибки, появляющиеся при компиляции, никак не отражающиеся в коде.
Буду очень признателен за анализ возможных ошибок.
как модуль выдает так напрямую данные и записываются. для скорости.
В таком случае мне необходимо знать структуру записи данных в двоичной форме для перевода в десятичную.
ну там они в двоичном формате. так просто не получится. надо или в примере их в другом формате выводить или какую-нибудь программу написать для чтения и конвертации.
А с какой целью это было сделано? Это функция по умолчанию выдает результаты в двоичном формате или уже сама программа пример преобразует?
Добрый вечер! Рассматриваю на примере l7xx.tst получение данных отсчетов с ацп, которые сохраняются в .dat файл. При помощи обычного блокнота и notepad++ в читаемый формат привести не удалось, интересуют варианты "расшифровки". Заранее спасибо.
не увидел никаких проблем практически. скачал VS2017 community edition. открыл солюшн L7XX.TST, исправил версию SDK в свойствах проекта с 7.1 на 10.0, в тексте исходника или void *data переименовать в void *data1 или :: перед data поставить. и все собирается без ошибок.
Выполнил последние указанные действия, эффект возымели, спасибо.
быстро нет. я 2010 пользуюсь. я попробую поставить 2017 и посмотреть что-там происходит...
Спасибо. прошу отписать по результату.
2017 не конвертирует проекты 2010? в принципе главное все файлы в проект включить и пути прописать до папки INCLUDE. create.cpp lguids.cpp client.cpp это cpp которые должны быть в проекте.
Видимо, конвертирует, но с большими проблемами. Подключил все как в примере, согласно руководству, написал часть кода. На ошибки в написанном мною коде не указывает, но зато при компиляции 178 ошибок, и все в подключенном файле ioctl.h. У вас есть возможность смоделировать ситуацию, используя visual studio 2017?
а просто проект примера открыть и посмотреть как там? L7XX.TST в папке \L-Card\Library
Ссылки на подключенные к проекту файлы недействительны, в результате VS не видит даже подключенные windows.h и прочие файлы. Их я подключил прописав прямой путь к их обычному местоположению - видит. Но при компиляции 1614 ошибок, поэтому, увы, не проще.
Доброго вечера, делаю аналогично примеру, при комплиция проекта вылезает 178 ошибок и все в ioctl.h Ошибки из серии синтакически (отсутствие скобок, спецификатора типа). Использую Vs 2017, в чем может быть причина?
в папке INCLUDE все есть. в проектах-примерах должно быть create.h create.cpp и lguids.cpp.
Спасибо.
Добрый вечер, согласно руководству программиста создал файл create.h со следующим содержанием
#ifndef __TEST__
#define __TEST__
typedef IDaqLDevice* (*CREATEFUNCPTR)(ULONG Slot);
ULONG CallCreateInstance(char* name);
extern CREATEFUNCPTR CreateInstance;
#endif
VS 2017 не определяет идентификатор IDaqLDevice*б какие решения или чего не хватает?
Заранее спасибо.
ну это грубо говоря printf. и в текущих готовых примерах его давно уже нет. смотрите в L-Cаrd/Library/L7xx.tst
Спасибо. Но почему в руководстве программиста под современную библиотеку LComp используются старые методы, да и функции отличаются от тех, что в примерах.
но, как его отправить, непонятно...
Прикрепил изображение с кодом
Спасибо. Используя руководство, пытаюсь составить рабочую программу для инициализации платы. VS 2017 пишет, что идентификатор trace не определен. Вроде все, что нужно подключил...
Добрый день! Установил последнюю версию драйверов lcomp. Согласно руководству для программистов для платы l780m необходимо в среде программирования подключить библиотеку plx_api.h, которая находится в папке library lcard. К сожалению, этого заголовочного файла я не нашел. Хочу уточнить, где его взять?
В данном случае ничего, хотя другие программы из библиотеки запустились. Есть программа, строящая график, есть ли возможность зуммирования в ней?
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск