Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Получение данных

Вы не вошли.

 Поиск | Регистрация | Вход 

18.03.2018 21:49:20
#1

Участник
Здесь с 14.08.2017
Сообщений: 28

Получение данных

Добрый вечер! Рассматриваю на примере l7xx.tst получение данных отсчетов с ацп, которые сохраняются в .dat файл. При помощи обычного блокнота и notepad++ в читаемый формат привести не удалось, интересуют варианты "расшифровки". Заранее спасибо.

19.03.2018 13:27:40
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

ну там они в двоичном формате. так просто не получится. надо или в примере их в другом формате выводить или какую-нибудь программу написать для чтения и конвертации.

19.03.2018 20:31:14
#3

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

ну там они в двоичном формате. так просто не получится. надо или в примере их в другом формате выводить или какую-нибудь программу написать для чтения и конвертации.

А с какой целью это было сделано? Это функция по умолчанию выдает результаты в двоичном формате или уже сама программа пример преобразует?

20.03.2018 14:57:24
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

как модуль выдает так напрямую данные и записываются. для скорости.

20.03.2018 18:24:24
#5

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

как модуль выдает так напрямую данные и записываются. для скорости.

В таком случае мне необходимо знать структуру записи данных в двоичной форме для перевода в десятичную.

20.03.2018 18:30:06
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

short int  (16 бит знаковые). кадр за кадром.  d1 d2 d3 d4 d1 d2 d3 d4 ..... d1 d2 d3 d4 если 4 канала опрашиваются.

04.04.2018 22:39:37
#7

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Написал программу в соответствии с руководствами для проверки вывода данных с одиночного отсчета и последующей расшифровки кода АЦП:

// 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");
}

В результате, имеюosh2.png
Если удаляю из кода все, что связано с trace имею последние 2 ошибки, появляющиеся при компиляции, никак не отражающиеся в коде.osh1.png
Буду очень признателен за анализ возможных ошибок.

05.04.2018 13:40:23
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

там в готовом проекте l7xx.tst включаетс lguids.cpp...

05.04.2018 15:47:41
#9

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

там в готовом проекте l7xx.tst включаетс lguids.cpp...

Каким образом он связан и поможет в моем случае?

06.04.2018 15:21:29
#10

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

там этот символ определен. и вообще лучше просто взять готовый проект l7xx.tst и его мучить.

08.04.2018 21:10:56
#11

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

там этот символ определен. и вообще лучше просто взять готовый проект l7xx.tst и его мучить.

Понял, спасибо. Готовый проект это хорошо, но необходимо полностью разобраться. A что насчет метода trace?

09.04.2018 13:01:44
#12

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

это просто #define для printf("что-то там").

18.04.2018 22:06:42
#13

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Добрый вечер!
Удалось протестировать эту же программу на компьютере с платой и установленным visual studio, чтобы отследить эту ошибку. В обычных условиях с платой - программа просто закрывается, как не отвечающая. Чем может быть обусловлена подобная проблема?
osh1.png

18.04.2018 22:07:33
#14

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

В предыдущем сообщении прикрепил не тот скришот
Snimok1.png
от

19.04.2018 12:01:47
#15

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

как бы функции возвращают результат. и если до этого момента были ошибки то все может быть... чего trace печатает? и как себя ведет готовый проект?

19.04.2018 13:39:42
#16

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

как бы функции возвращают результат. и если до этого момента были ошибки то все может быть... чего trace печатает? и как себя ведет готовый проект?

По trace все нормально до этой строки, ошибок или исключений не возникало. Готовый проект отрабатывает полностью.

19.04.2018 15:47:27
#17

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение данных

sl  неправильно описан. SLOT_PAR sl; и вызов GetSlotParam(&sl); будет работать, а так описан указатель и память под него не выделена...

20.04.2018 21:12:30
#18

Участник
Здесь с 14.08.2017
Сообщений: 28

Re: Получение данных

Poul пишет:

sl  неправильно описан. SLOT_PAR sl; и вызов GetSlotParam(&sl); будет работать, а так описан указатель и память под него не выделена...

Большое спасибо. Аналогичным образом исправил с ReadPlataDescr - все заработало.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск