105 lines
2.4 KiB
C++
105 lines
2.4 KiB
C++
|
|
#include "stdafx.h"
|
|||
|
|
#include "SimpleUCI.h"
|
|||
|
|
#include <vector>
|
|||
|
|
|
|||
|
|
#include "uci.h"
|
|||
|
|
#include "dso_base.h"
|
|||
|
|
#include "unit.h"
|
|||
|
|
|
|||
|
|
#include "uci_cpp.h"
|
|||
|
|
|
|||
|
|
#pragma comment(lib, "uci.lib")
|
|||
|
|
|
|||
|
|
using namespace uci;
|
|||
|
|
|
|||
|
|
int HandleResult(const TCHAR* _msg, int _r) {
|
|||
|
|
if (UCISUCCESS(_r)) {
|
|||
|
|
_tprintf(_T("%s: OK, r = %d;\n"), _msg, _r);
|
|||
|
|
} else {
|
|||
|
|
_tprintf(_T("%s: Error, r = %d; msg = %s\n"), _msg, _r, uci_GetLastError());
|
|||
|
|
}
|
|||
|
|
return _r;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void ParseParamsMeasure(byte* _data, int _data_len) {
|
|||
|
|
if (_data_len != (sizeof(cb::MeaValue) * EMeaParam::MP_MAX_COUNT))
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
cb::MeaValue* pmv = reinterpret_cast<cb::MeaValue*>(_data);
|
|||
|
|
|
|||
|
|
for (size_t i = 0; i < EMeaParam::MP_MAX_COUNT; i++) {
|
|||
|
|
_tprintf(_T("\r\nIsExist=%d,IsValid=%d,Value=%f, Unit(Type=%d,Scale=%d)"),
|
|||
|
|
pmv->IsExist, pmv->IsValid, pmv->Value, pmv->Unit.Type, pmv->Unit.Scale);
|
|||
|
|
|
|||
|
|
if (pmv->IsExist && pmv->IsValid)
|
|||
|
|
{
|
|||
|
|
printf("- %s%s", unit::uci_UnitFindScaleName(pmv->Unit.Scale),
|
|||
|
|
unit::uci_UnitFindTypeName(pmv->Unit.Type));
|
|||
|
|
|
|||
|
|
printf("- <20><><EFBFBD><D7BC>λ<EFBFBD><CEBB> %f", unit::uci_UnitConvertTo(pmv->Value, pmv->Unit.Scale, unit::SCALE_STD, 1000.0));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
pmv++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
namespace dat {
|
|||
|
|
struct MeaUserParams {
|
|||
|
|
char ID; //-1 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char CH; //0 <20><>ʼ<EFBFBD><CABC>ͨ<EFBFBD><CDA8><EFBFBD>ţ<EFBFBD> ID == -1 <20><> CH<43><48>Ч<EFBFBD><D0A7>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum ECH {
|
|||
|
|
CH1,
|
|||
|
|
CH2,
|
|||
|
|
CH3,
|
|||
|
|
CH4,
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
void _main_c();
|
|||
|
|
void _main_cpp();
|
|||
|
|
|
|||
|
|
void _main() {
|
|||
|
|
//_main_c();
|
|||
|
|
_main_cpp();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void _main_c() {
|
|||
|
|
u_session session = INVALID_SESSION;
|
|||
|
|
//u_cstring addr = _T("[C:UPO][D:UPO][T:TCPIP][IP:192.168.1.113][Port:0x1388]");
|
|||
|
|
u_cstring addr = _T("[C:UPO][D:UPO][T:USB][PID:0x1234][VID:0x5345][EI:0x81][EO:0x3][CFG:3][I:0]");
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
u_status r = uci_Open(addr, &session, 1000);
|
|||
|
|
if (UCIERR(r)) {
|
|||
|
|
_tprintf(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD> <20><>ַ<EFBFBD><D6B7>%s, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> %s\n"), addr, uci_GetLastError());
|
|||
|
|
throw r;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} catch (u_status r) {
|
|||
|
|
|
|||
|
|
if (UCIERR(r))
|
|||
|
|
_tprintf(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD> %s\n"), uci_GetLastError());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (session != INVALID_SESSION) {
|
|||
|
|
uci_Close(session);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void _main_cpp() {
|
|||
|
|
uci::Session ses;
|
|||
|
|
|
|||
|
|
u_cstring addr = _T("[C:UPO][D:UPO][T:USB][PID:0x1234][VID:0x5345][EI:0x81][EO:0x3][CFG:3][I:0]");
|
|||
|
|
u_status r = ses.Open(addr);
|
|||
|
|
if (UCIERR(r)) {
|
|||
|
|
_tprintf(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD> <20><>ַ<EFBFBD><D6B7>%s, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> %s\n"), addr, uci_GetLastError());
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
std::vector<byte> buf(400, 0);
|
|||
|
|
r = ses.Read(_T("mea:all?;"), 1000, buf.data(), buf.size());
|
|||
|
|
HandleResult(_T("mea:all?"), r);
|
|||
|
|
if (UCISUCCESS(r))
|
|||
|
|
ParseParamsMeasure(buf.data(), buf.size());
|
|||
|
|
}
|