test
This commit is contained in:
parent
68ccaa5f1b
commit
31371b8633
@ -1032,6 +1032,7 @@ BOOLEAN CHostADSBFProcess::readFileID()
|
||||
if (uid < 0 || uid >= UNIT_NUM) return TRUE;
|
||||
|
||||
vLog(LOG_DEBUG, "%s here read file info\n", m_pidName.c_str());
|
||||
#if 0
|
||||
AdsVariable <WORD> wPathInfoInvalid {*m_turbine, ".gwPathInfoInvalid"};
|
||||
//vLog(LOG_DEBUG, "Read back with first value %d\n", (WORD)wPathInfoInvalid);
|
||||
AdsVariable <DWORD> wCurrentFolderNo {*m_turbine, ".gwCurrentFolderNo"};
|
||||
@ -1046,6 +1047,76 @@ BOOLEAN CHostADSBFProcess::readFileID()
|
||||
//vLog(LOG_DEBUG, "Read back with first value %d\n", (DWORD)wFirstFolderNoRecoverable);
|
||||
AdsVariable <DWORD> wFirstFileNoRecoverable {*m_turbine, ".gwFirstFileNoRecoverable"};
|
||||
//vLog(LOG_DEBUG, "Read back with first value %d\n", (DWORD)wFirstFileNoRecoverable);
|
||||
#else
|
||||
WORD wPathInfoInvalid;
|
||||
myAdsVariable myPathInfoInvalid {*m_turbine, ".gwPathInfoInvalid"};
|
||||
if (!myPathInfoInvalid.Read(2, &wPathInfoInvalid))
|
||||
{
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wCurrentFolderNo;
|
||||
myAdsVariable myCurrentFolderNo {*m_turbine, ".gwCurrentFolderNo"};
|
||||
if (!myCurrentFolderNo.Read(4, &wCurrentFolderNo))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwCurrentFolderNo error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wCurrentFileNo;
|
||||
myAdsVariable myCurrentFileNo {*m_turbine, ".gwCurrentFileNo"};
|
||||
if (!myCurrentFileNo.Read(4, &wCurrentFileNo))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwCurrentFileNo error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wFirstFileNoInFolder;
|
||||
myAdsVariable myFirstFileNoInFolder {*m_turbine, ".gwFirstFileNoInFolder"};
|
||||
if (!myFirstFileNoInFolder.Read(4, &wFirstFileNoInFolder))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwFirstFileNoInFolder error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wFileCountInFolder;
|
||||
myAdsVariable myFileCountInFolder {*m_turbine, ".gwFileCountInFolder"};
|
||||
if (!myFileCountInFolder.Read(4, &wFileCountInFolder))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwFileCountInFolder error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wFirstFolderNoRecoverable;
|
||||
myAdsVariable myFirstFolderNoRecoverable {*m_turbine, ".gwFirstFolderNoRecoverable"};
|
||||
if (!myFirstFolderNoRecoverable.Read(4, &wFirstFolderNoRecoverable))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwFirstFolderNoRecoverable error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWORD wFirstFileNoRecoverable;
|
||||
myAdsVariable myse {*m_turbine, ".gwFirstFileNoRecoverable"};
|
||||
if (!myFirstFolderNoRecoverable.Read(4, &wFirstFileNoRecoverable))
|
||||
{
|
||||
vLog(LOG_ERROR, "Read .gwFirstFileNoRecoverable error.\n");
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
m_iv = (WORD)wPathInfoInvalid;
|
||||
if (m_iv) {
|
||||
@ -1099,11 +1170,14 @@ BOOLEAN CHostADSBFProcess::readRealData()
|
||||
BYTE params[MAX_UNIT_POINT_PARAM_SIZE];
|
||||
BYTE* pParam = params;
|
||||
|
||||
AdsVariable<std::array<BYTE, MAX_BLOCKF_SIZE>> turbineData {*m_turbine, ADSIGRP_IOIMAGE_RWOB, m_adsOverviewDataMemAddr};
|
||||
pData = ((std::array<BYTE, MAX_BLOCKF_SIZE>)turbineData).data();
|
||||
if (!m_turbine->IsConnected())
|
||||
// AdsVariable<std::array<BYTE, MAX_BLOCKF_SIZE>> turbineData {*m_turbine, ADSIGRP_IOIMAGE_RWOB, m_adsOverviewDataMemAddr};
|
||||
// pData = ((std::array<BYTE, MAX_BLOCKF_SIZE>)turbineData).data();
|
||||
myAdsVariable turbineData {*m_turbine, ADSIGRP_IOIMAGE_RWOB, m_adsOverviewDataMemAddr};
|
||||
if (!turbineData.Read(1024, buffer))
|
||||
{
|
||||
vLog(LOG_ERROR, "%s Read data error\n", m_pidName.c_str());
|
||||
delete m_turbine;
|
||||
m_turbine = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,52 @@
|
||||
#include "AdsVariable.h"
|
||||
#include "RouterAccess.h"
|
||||
using namespace Beckhoff::Ads;
|
||||
//using namespace bhf::ads;
|
||||
|
||||
#include "AdsDevice.h"
|
||||
|
||||
namespace Beckhoff
|
||||
{
|
||||
namespace Ads
|
||||
{
|
||||
struct myAdsVariable {
|
||||
myAdsVariable(const AdsDevice& route, const std::string& symbolName)
|
||||
: m_Route(route),
|
||||
m_IndexGroup(ADSIGRP_SYM_VALBYHND),
|
||||
m_Handle(route.GetHandle(symbolName))
|
||||
{}
|
||||
|
||||
myAdsVariable(const AdsDevice& route, const uint32_t group, const uint32_t offset)
|
||||
: m_Route(route),
|
||||
m_IndexGroup(group),
|
||||
m_Handle(route.GetHandle(offset))
|
||||
{}
|
||||
|
||||
BOOLEAN Read(const size_t size, void* data) const
|
||||
{
|
||||
if (!m_Route.IsConnected()) return FALSE;
|
||||
uint32_t bytesRead = 0;
|
||||
auto error = m_Route.ReadReqEx2(m_IndexGroup,
|
||||
*m_Handle,
|
||||
size,
|
||||
data,
|
||||
&bytesRead);
|
||||
|
||||
if (error || (size != bytesRead)) {
|
||||
vLog(LOG_ERROR, "AdsVariable read failed: %d,%s\n", error, strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
private:
|
||||
const AdsDevice& m_Route;
|
||||
const uint32_t m_IndexGroup;
|
||||
const AdsHandle m_Handle;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
typedef std::unordered_map<short, short> register2typemap;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user