调整CMakeFiles的预定义
This commit is contained in:
parent
7931f6abc8
commit
a65b3a8299
@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
||||
|
||||
option (USE_MQTT "use mqtt protocol" OFF)
|
||||
option (USE_CRYPTO "use own crypto" OFF)
|
||||
option (USE_UUID "use uuid lib" OFF)
|
||||
option (USE_WEBSOCKET "use websocket" ON)
|
||||
option (USE_SQLITE3 "use sqlite3" ON)
|
||||
option (USE_ADS "use ads" ON)
|
||||
@ -57,18 +59,11 @@ endif()
|
||||
|
||||
find_package(miniocpp REQUIRED)
|
||||
set (APP_LIBS ${APP_LIBS} miniocpp::miniocpp)
|
||||
# target_link_libraries(application PRIVATE miniocpp::miniocpp)
|
||||
|
||||
include_directories (
|
||||
inc
|
||||
inc/json
|
||||
inc/uuid
|
||||
inc/sqlite
|
||||
inc/nopoll
|
||||
inc/websockets
|
||||
inc/crypto
|
||||
cmg/
|
||||
inc/mqtt)
|
||||
cmg)
|
||||
|
||||
set (APP_SRCS
|
||||
cmg/main.cpp
|
||||
@ -99,14 +94,19 @@ set (APP_SRCS
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/json/jsoncpp.cpp)
|
||||
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
if (USE_CRYPTO)
|
||||
include_directories (inc/crypto)
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/base64/base64.c
|
||||
third_party/md5/md5.c
|
||||
third_party/aes/aes.c
|
||||
third_party/aes/error.c
|
||||
third_party/aes/platform_util.c)
|
||||
endif ()
|
||||
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
if (USE_UUID)
|
||||
include_directories (inc/uuid)
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/uuid/clear.c
|
||||
third_party/uuid/compare.c
|
||||
third_party/uuid/copy.c
|
||||
@ -118,6 +118,7 @@ set (APP_SRCS ${APP_SRCS}
|
||||
third_party/uuid/unparse.c
|
||||
third_party/uuid/uuid_time.c
|
||||
third_party/uuid/randutils.c)
|
||||
endif ()
|
||||
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/zlog/buf.c
|
||||
@ -142,32 +143,34 @@ set (APP_SRCS ${APP_SRCS}
|
||||
third_party/zlog/zlog.c)
|
||||
|
||||
if (USE_WEBSOCKET)
|
||||
option (USE_NOPOLL "use nopoll websocket lib" OFF)
|
||||
if (USE_NOPOLL)
|
||||
include_directories (inc/nopoll)
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/nopoll/nopoll.c
|
||||
third_party/nopoll/nopoll_conn.c
|
||||
third_party/nopoll/nopoll_conn_opts.c
|
||||
third_party/nopoll/nopoll_listener.c
|
||||
third_party/nopoll/nopoll_ctx.c
|
||||
third_party/nopoll/nopoll_decl.c
|
||||
third_party/nopoll/nopoll_io.c
|
||||
third_party/nopoll/nopoll_log.c
|
||||
third_party/nopoll/nopoll_msg.c)
|
||||
add_definitions(-DUSE_WEBSOCKET)
|
||||
add_definitions(-DNOPOLL_OS_UNIX=1)
|
||||
add_definitions(-DSHOW_DEBUG_LOG)
|
||||
add_definitions(-DNOPOLL_HAVE_VASPRINTF=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLSv10_ENABLED=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLSv11_ENABLED=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLSv12_ENABLED=1)
|
||||
add_definitions(-DNOPOLL_HAVE_TLS_FLEXIBLE_ENABLED=1)
|
||||
else ()
|
||||
include_directories (inc/websockets)
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/websockets/easywsclient.cpp
|
||||
)
|
||||
# find_package(websockets)
|
||||
# set (APP_LIBS ${APP_LIBS} websockets)
|
||||
|
||||
# set (APP_SRCS ${APP_SRCS}
|
||||
# third_party/nopoll/nopoll.c
|
||||
# third_party/nopoll/nopoll_conn.c
|
||||
# third_party/nopoll/nopoll_conn_opts.c
|
||||
# third_party/nopoll/nopoll_listener.c
|
||||
# third_party/nopoll/nopoll_ctx.c
|
||||
# third_party/nopoll/nopoll_decl.c
|
||||
# third_party/nopoll/nopoll_io.c
|
||||
# third_party/nopoll/nopoll_log.c
|
||||
# third_party/nopoll/nopoll_msg.c)
|
||||
endif ()
|
||||
set (APP_LIBS ${APP_LIBS} ssl crypto)
|
||||
# add_definitions(-DUSE_WEBSOCKET)
|
||||
# add_definitions(-DNOPOLL_OS_UNIX=1)
|
||||
# add_definitions(-DSHOW_DEBUG_LOG)
|
||||
# add_definitions(-DNOPOLL_HAVE_VASPRINTF=1)
|
||||
# add_definitions(-DNOPOLL_HAVE_TLSv10_ENABLED=1)
|
||||
# add_definitions(-DNOPOLL_HAVE_TLSv11_ENABLED=1)
|
||||
# add_definitions(-DNOPOLL_HAVE_TLSv12_ENABLED=1)
|
||||
# add_definitions(-DNOPOLL_HAVE_TLS_FLEXIBLE_ENABLED=1)
|
||||
|
||||
endif ()
|
||||
|
||||
if (USE_ADS)
|
||||
@ -199,6 +202,7 @@ if (USE_ADS)
|
||||
endif ()
|
||||
|
||||
if (USE_MQTT)
|
||||
include_directories (inc/mqtt)
|
||||
set(APP_SRCS ${APP_SRCS}
|
||||
third_party/mqtt/actions.c
|
||||
third_party/mqtt/callbacks.c
|
||||
@ -254,6 +258,7 @@ if (USE_MQTT)
|
||||
endif (USE_MQTT)
|
||||
|
||||
if (USE_SQLITE3)
|
||||
include_directories (inc/sqlite)
|
||||
set (APP_SRCS ${APP_SRCS}
|
||||
third_party/sqlite/KompexSQLiteBlob.cpp
|
||||
third_party/sqlite/KompexSQLiteDatabase.cpp
|
||||
|
@ -1320,60 +1320,25 @@ BOOLEAN CRYDevice::processRyADSParam(const Json::Value jsonRoot, int pid)
|
||||
snprintf(config_config.processes[pid].option.ryads.ftp.remotePath, sizeof(config_config.processes[pid].option.ryads.ftp.remotePath), "%s", "/data/rtdatalog");
|
||||
}
|
||||
|
||||
//远程地址
|
||||
if (jsonRoot["remoteAddr"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ryads.remoteIp, sizeof(config_config.processes[pid].option.ryads.remoteIp), "%s", jsonRoot["remoteAddr"].asCString());
|
||||
if (jsonRoot["targetAddr"].isInt()) {
|
||||
config_config.processes[pid].option.ryads.net.target_addr = jsonRoot["targetAddr"].asInt();
|
||||
} else if (jsonRoot["targetAddr"].isString()) {
|
||||
if (inet_pton(AF_INET, jsonRoot["targetAddr"].asCString(), &config_config.processes[pid].option.ryads.net.target_addr) == 1) {
|
||||
vLog(LOG_DEBUG, "IPv4 地址转换成功,网络字节序为: %u.\n", config_config.processes[pid].option.ryads.net.target_addr);
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ryads.remoteIp, sizeof(config_config.processes[pid].option.ryads.remoteIp), "%s", "192.168.129.26");
|
||||
vLog(LOG_ERROR, "inet_pton error(%d,%s).\n", errno, strerror(errno));
|
||||
}
|
||||
if (jsonRoot["remoteNetId"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ryads.remoteNetId, sizeof(config_config.processes[pid].option.ryads.remoteNetId), "%s", jsonRoot["remoteNetId"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ryads.remoteNetId, sizeof(config_config.processes[pid].option.ryads.remoteNetId), "%s.1.1", config_config.processes[pid].option.ryads.remoteIp);
|
||||
}
|
||||
//本地地址
|
||||
if (jsonRoot["localAddr"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ryads.localIp, sizeof(config_config.processes[pid].option.ryads.localIp), "%s", jsonRoot["localAddr"].asCString());
|
||||
if (jsonRoot["bindAddr"].isInt()) {
|
||||
config_config.processes[pid].option.ryads.net.bind_addr = jsonRoot["bindAddr"].asInt();
|
||||
} else if (jsonRoot["bindAddr"].isString()) {
|
||||
if (inet_pton(AF_INET, jsonRoot["bindAddr"].asCString(), &config_config.processes[pid].option.ryads.net.bind_addr) == 1) {
|
||||
vLog(LOG_DEBUG, "IPv4 地址转换成功,网络字节序为: %u.\n", config_config.processes[pid].option.ryads.net.bind_addr);
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ryads.localIp, sizeof(config_config.processes[pid].option.ryads.localIp), "%s", "127.0.0.1");
|
||||
vLog(LOG_ERROR, "inet_pton error(%d,%s).\n", errno, strerror(errno));
|
||||
}
|
||||
if (jsonRoot["localNetId"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ryads.localNetId, sizeof(config_config.processes[pid].option.ryads.localNetId), "%s", jsonRoot["localNetId"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ryads.localNetId, sizeof(config_config.processes[pid].option.ryads.localNetId), "%s.1.1", config_config.processes[pid].option.ryads.localIp);
|
||||
}
|
||||
|
||||
//Minio参数
|
||||
//URL
|
||||
if (jsonRoot["URL"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.url, sizeof(config_config.processes[pid].option.ftp2minio.minio.url), "%s", jsonRoot["URL"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.url, sizeof(config_config.processes[pid].option.ftp2minio.minio.url), "%s", "http://192.168.109.187:9000");
|
||||
}
|
||||
//用户名
|
||||
if (jsonRoot["minioUserName"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.user, sizeof(config_config.processes[pid].option.ftp2minio.minio.user), "%s", jsonRoot["minioUserName"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.user, sizeof(config_config.processes[pid].option.ftp2minio.minio.user), "%s", "das");
|
||||
}
|
||||
//密码
|
||||
if (jsonRoot["minioPassWord"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.password, sizeof(config_config.processes[pid].option.ftp2minio.minio.password), "%s", jsonRoot["minioPassWord"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.password, sizeof(config_config.processes[pid].option.ftp2minio.minio.password), "%s", "zaq12WSX");
|
||||
}
|
||||
//桶
|
||||
if (jsonRoot["bucket"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.bucket, sizeof(config_config.processes[pid].option.ftp2minio.minio.bucket), "%s", jsonRoot["bucket"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.bucket, sizeof(config_config.processes[pid].option.ftp2minio.minio.bucket), "%s", "test");
|
||||
}
|
||||
//桶中的绝对路径
|
||||
if (jsonRoot["object"].isString()) {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.object, sizeof(config_config.processes[pid].option.ftp2minio.minio.object), "%s", jsonRoot["object"].asCString());
|
||||
} else {
|
||||
snprintf(config_config.processes[pid].option.ftp2minio.minio.object, sizeof(config_config.processes[pid].option.ftp2minio.minio.object), "%s", "/A-001/Alarm/");
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -12,18 +12,24 @@
|
||||
#include <signal.h>
|
||||
|
||||
#ifndef USE_NOPOLL_WEBSOCKET
|
||||
#include <queue>
|
||||
#include <string>
|
||||
#include <stack>
|
||||
#include <easywsclient.hpp>
|
||||
using easywsclient::WebSocket;
|
||||
#else
|
||||
#include <nopoll.h>
|
||||
#include <nopoll_decl.h>
|
||||
#define MAX_MSG_COUNT 4096
|
||||
#endif
|
||||
|
||||
#include <json.h>
|
||||
#if 0
|
||||
#include <md5.h>
|
||||
#include <base64.h>
|
||||
#include <mbedtls/aes.h>
|
||||
#include <mbedtls/error.h>
|
||||
#endif
|
||||
|
||||
#include "soe.h"
|
||||
#include "yxbw.h"
|
||||
@ -33,8 +39,6 @@
|
||||
#include "public.h"
|
||||
|
||||
|
||||
#define MAX_MSG_COUNT 4096
|
||||
|
||||
typedef std::unordered_map<std::string, short> uid2pidmap;
|
||||
|
||||
#define CMD_CONTROL_OPERATION 0
|
||||
@ -71,11 +75,6 @@ typedef struct {
|
||||
} attrvectorGroup;
|
||||
typedef std::unordered_map<int, attrvectorGroup> pid2attrvectormap;
|
||||
|
||||
|
||||
#include <queue>
|
||||
#include <string>
|
||||
#include <stack>
|
||||
|
||||
class CRYDevice
|
||||
{
|
||||
public:
|
||||
|
@ -1,4 +1,6 @@
|
||||
#include "ryFileDef.h"
|
||||
#include "public.h"
|
||||
#include "math.h"
|
||||
|
||||
int calcFields(FIELDDES* fields)
|
||||
{
|
||||
@ -545,3 +547,93 @@ int calcFields(FIELDDES* fields)
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
size_t write_callback(void *ptr, size_t size, size_t nmemb, struct memory *mem)
|
||||
{
|
||||
size_t new_size = mem->size + size * nmemb;
|
||||
mem->response = (char *)realloc(mem->response, new_size + 1);
|
||||
if (mem->response == NULL) {
|
||||
vLog(LOG_ERROR, "Failed to allocate memory.\n");
|
||||
return 0; // Out of memory
|
||||
}
|
||||
memcpy(&(mem->response[mem->size]), ptr, size * nmemb);
|
||||
mem->size = new_size;
|
||||
mem->response[new_size] = '\0';
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
float GetUnitYCRealFromValue(int uid, int order, LONG value)
|
||||
{
|
||||
int udb;
|
||||
float coef;
|
||||
float base;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM) {
|
||||
coef = 1.0f;
|
||||
base = 0.0f;
|
||||
} else {
|
||||
coef = pYC->coef;
|
||||
base = pYC->base;
|
||||
}
|
||||
return (float)(value * coef + base);
|
||||
}
|
||||
|
||||
BOOLEAN GetUnitYCIsFloat(int uid, int order)
|
||||
{
|
||||
int udb;
|
||||
float coef = 1.0f;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM)
|
||||
{
|
||||
coef = 1.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
coef = pYC->coef;
|
||||
}
|
||||
|
||||
if (fabsf(coef) <= 1E-8) coef = 1.0f;
|
||||
if (fabsf(coef - 1.0f) <= 1E-8) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int GetUnitYXCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yxcount;
|
||||
}
|
||||
|
||||
int GetUnitYCCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yccount;
|
||||
}
|
||||
|
||||
BOOLEAN GetUnitYCType(int uid, int order)
|
||||
{
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
return pYC->highSpeed;
|
||||
}
|
||||
|
||||
|
@ -195,6 +195,7 @@ static struDataLengthMBAddr m_datalen_mbaddr[] = {
|
||||
{ 2, 394 }
|
||||
};
|
||||
|
||||
|
||||
static bool publish_sensor_data(const char* command, const Json::Value payload)
|
||||
{
|
||||
Json::StreamWriterBuilder builder;
|
||||
@ -225,81 +226,6 @@ static bool publish_sensor_data(const char* command, const Json::Value payload)
|
||||
return true;
|
||||
}
|
||||
|
||||
static float GetUnitYCRealFromValue(int uid, int order, LONG value)
|
||||
{
|
||||
int udb;
|
||||
float coef;
|
||||
float base;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM) {
|
||||
coef = 1.0f;
|
||||
base = 0.0f;
|
||||
} else {
|
||||
coef = pYC->coef;
|
||||
base = pYC->base;
|
||||
}
|
||||
return (float)(value * coef + base);
|
||||
}
|
||||
|
||||
static BOOLEAN GetUnitYCIsFloat(int uid, int order)
|
||||
{
|
||||
int udb;
|
||||
float coef = 1.0f;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM)
|
||||
{
|
||||
coef = 1.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
coef = pYC->coef;
|
||||
}
|
||||
|
||||
if (fabsf(coef) <= 1E-8) coef = 1.0f;
|
||||
if (fabsf(coef - 1.0f) <= 1E-8) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int GetUnitYXCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yxcount;
|
||||
}
|
||||
|
||||
static int GetUnitYCCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yccount;
|
||||
}
|
||||
|
||||
static BOOLEAN GetUnitYCType(int uid, int order)
|
||||
{
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
return pYC->highSpeed;
|
||||
}
|
||||
|
||||
static WORD GetUnitYCRegisterAddr(int uid, int point)
|
||||
{
|
||||
struUnit* pUnit;
|
||||
@ -415,26 +341,6 @@ static bool publishhistoryLowSpeedData(const noPollConn* conn, const int uid, co
|
||||
return false;
|
||||
}
|
||||
|
||||
struct memory {
|
||||
char *response;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
static size_t write_callback(void *ptr, size_t size, size_t nmemb, struct memory *mem) {
|
||||
size_t new_size = mem->size + size * nmemb;
|
||||
//fprintf(stderr, "mem is: %u", mem->response);
|
||||
mem->response = (char *)realloc(mem->response, new_size + 1);
|
||||
if (mem->response == NULL) {
|
||||
fprintf(stderr, "Failed to allocate memory.\n");
|
||||
return 0; // Out of memory
|
||||
}
|
||||
memcpy(&(mem->response[mem->size]), ptr, size * nmemb);
|
||||
mem->size = new_size;
|
||||
mem->response[new_size] = '\0';
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
|
||||
static int ftpget(const char* remote, const char* local, const char* user, const char* pwd, const long timeout = 3, struct memory* chunk = NULL)
|
||||
{
|
||||
//vLog(LOG_DEBUG, "start to get %s to local %s, with name: %s, and password: %s.\n", remote, local, user, pwd);
|
||||
@ -508,549 +414,10 @@ static void* ryftp_process(void* param)
|
||||
}
|
||||
|
||||
int len = 0;
|
||||
struRYDeviceData t_data;
|
||||
//struRYDeviceData t_data;
|
||||
FIELDDES fields[1024];
|
||||
len = calcFields(fields);
|
||||
vLog(LOG_DEBUG, "len is: %d\n", len);
|
||||
#if 0
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.localtime) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.localtime);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationY) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationY);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationZ) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationZ);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTurbineOperationMode) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTurbineOperationMode);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBPLevel) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBPLevel);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iYPLevel) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iYPLevel);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenToruqe) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenToruqe);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iRotorSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iRotorSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTheoreticalPower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTheoreticalPower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iReactivePower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iReactivePower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iActivePowerSetPointValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iActivePowerSetPointValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iReactivePowerSetPointValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iReactivePowerSetPointValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iSetValueGenSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iSetValueGenSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iSetValuePitchAngle) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iSetValuePitchAngle);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle1RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle1RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle2RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle2RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle3RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle3RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle1) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle1);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle2) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle2);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle3) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle3);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVaneDirection) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVaneDirection);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindDirection) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindDirection);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord01) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord01);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord02) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord02);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord03) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord03);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord04) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord04);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord05) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord05);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord06) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord06);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord07) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord07);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord08) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord08);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode01) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode01);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode02) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode02);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode03) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode03);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode04) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode04);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode05) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode05);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode06) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode06);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode07) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode07);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode08) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode08);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iFrequency) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iFrequency);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL1_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL1_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL2_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL2_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL3_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL3_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL1_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL1_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL2_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL2_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL3_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL3_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk1) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk1);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk2) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk2);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk3) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk3);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iCosPhi) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iCosPhi);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGearPressA) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGearPressA);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGearPressB) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGearPressB);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iHydrPress) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iHydrPress);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iNacellePositionLtd) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iNacellePositionLtd);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iCableTwistTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iCableTwistTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iNacellePositionTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iNacellePositionTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempOutdoor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempOutdoor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempHub_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempHub_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempNacelle_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempNacelle_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempTowerBase_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempTowerBase_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCabinetNacelle_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCabinetNacelle_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCabinetTowerBase_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCabinetTowerBase_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempTransformer690_400V_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempTransformer690_400V_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempMV_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempMV_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCntr_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCntr_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempRotorBearA_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempRotorBearA_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempRotorBearB_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempRotorBearB_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTemp1GearOil_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTemp1GearOil_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearBearDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearBearDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearBearNDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearBearNDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenBearDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenBearDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenBearNDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenBearNDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorU_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorU_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorV_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorV_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorW_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorW_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenCoolingAir_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenCoolingAir_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailabillityToday) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailabillityToday);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailabillityTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailabillityTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iKWhThisDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iKWhThisDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iKWhOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iKWhOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iOperationHoursDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iOperationHoursDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iOperationHoursOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iOperationHoursOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iLostKWhThisDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iLostKWhThisDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iLostKWhOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iLostKWhOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW001) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW001);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW002) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW002);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW003) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW003);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW004) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW004);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW005) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW005);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW006) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW006);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW007) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW007);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW008) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW008);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW009) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW009);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW010) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW010);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW011) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW011);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW012) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW012);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW013) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW013);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW014) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW014);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW015) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW015);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW016) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW016);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW017) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW017);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW018) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW018);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW019) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW019);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW020) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW020);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW021) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW021);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW022) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW022);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW023) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW023);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW024) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW024);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW025) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW025);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW026) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW026);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW027) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW027);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW028) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW028);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW029) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW029);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW030) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW030);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW031) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW031);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW032) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW032);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW033) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW033);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW034) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW034);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW035) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW035);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW036) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW036);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW037) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW037);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW038) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW038);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW039) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW039);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW040) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW040);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW041) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW041);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW042) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW042);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW043) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW043);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW044) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW044);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW045) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW045);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW046) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW046);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW047) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW047);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW048) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW048);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW049) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW049);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW050) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW050);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_10min);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailablePower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailablePower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.FirstTriggeredCode) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.FirstTriggeredCode);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.FaultInformation) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.FaultInformation);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.WecRunCondition) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.WecRunCondition);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC_10min);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iYawPress) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iYawPress);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iStandardAirDensity) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iStandardAirDensity);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAirDensity) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAirDensity);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationYFiltered) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationYFiltered);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationZFiltered) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationZFiltered);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearWaterCool_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearWaterCool_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.PowerLimitSource) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.PowerLimitSource);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempOutdoor_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempOutdoor_10min);
|
||||
len++;
|
||||
#endif
|
||||
|
||||
//判断是否链接单元
|
||||
int uid = mbt->GetUnitID(0); //默认只接一个设备
|
||||
|
||||
@ -1369,11 +736,21 @@ BOOLEAN CHostADSBFProcess::OnPreCreate(int id)
|
||||
vLog(LOG_DEBUG, "润阳ADS读取配置错误。");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
m_localIp = m_nOptions.localIp; //本机IP地址
|
||||
m_localNetId = m_nOptions.localNetId; //本机IP地址
|
||||
m_remoteIp = m_nOptions.remoteIp; //PLC设备ip地址
|
||||
m_remoteNetId = m_nOptions.remoteNetId;
|
||||
#endif
|
||||
char ipaddress[32];
|
||||
memset(ipaddress, '\0', sizeof(ipaddress));
|
||||
inet_ntop(AF_INET, &m_nOptions.net.bind_addr, ipaddress, 16);
|
||||
m_localIp = std::string(ipaddress);
|
||||
m_localNetId = m_localIp + std::string(".1.1");
|
||||
memset(ipaddress, '\0', sizeof(ipaddress));
|
||||
inet_ntop(AF_INET, &m_nOptions.net.target_addr, ipaddress, 16);
|
||||
m_remoteIp = std::string(ipaddress);
|
||||
m_remoteNetId = m_remoteIp + std::string(".1.1");
|
||||
|
||||
m_bHaveFTP = m_nOptions.bHaveFTP;
|
||||
calc();
|
||||
@ -1459,7 +836,7 @@ BOOLEAN CHostADSBFProcess::OnTimer(void)
|
||||
if ((m_currentDirNo == -1) && (m_currentFileNo == -1))
|
||||
{ //当前文件和目录都为-1,程序第一次启动。需要获取ftp目录及文件ID
|
||||
readFileID();
|
||||
return TRUE;
|
||||
//return TRUE;
|
||||
}
|
||||
}
|
||||
readRealData();
|
||||
|
@ -248,81 +248,6 @@ static bool publish_sensor_data(const noPollConn* conn, const char* command, con
|
||||
return true;
|
||||
}
|
||||
|
||||
static float GetUnitYCRealFromValue(int uid, int order, LONG value)
|
||||
{
|
||||
int udb;
|
||||
float coef;
|
||||
float base;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM) {
|
||||
coef = 1.0f;
|
||||
base = 0.0f;
|
||||
} else {
|
||||
coef = pYC->coef;
|
||||
base = pYC->base;
|
||||
}
|
||||
return (float)(value * coef + base);
|
||||
}
|
||||
|
||||
static BOOLEAN GetUnitYCIsFloat(int uid, int order)
|
||||
{
|
||||
int udb;
|
||||
float coef = 1.0f;
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
udb = pYC->order;
|
||||
if (udb < 0 || udb >= DATABASE_YC_NUM)
|
||||
{
|
||||
coef = 1.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
coef = pYC->coef;
|
||||
}
|
||||
|
||||
if (fabsf(coef) <= 1E-8) coef = 1.0f;
|
||||
if (fabsf(coef - 1.0f) <= 1E-8) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int GetUnitYXCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yxcount;
|
||||
}
|
||||
|
||||
static int GetUnitYCCount(int uid)
|
||||
{
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
return config.units[uid].yccount;
|
||||
}
|
||||
|
||||
static BOOLEAN GetUnitYCType(int uid, int order)
|
||||
{
|
||||
struUnit* pUnit;
|
||||
struUnitYC* pYC;
|
||||
|
||||
if (uid < 0 || uid >= UNIT_NUM) return 0;
|
||||
pUnit = &config.units[uid];
|
||||
if ((pUnit->state & 0x01) != TRUE) return 0;
|
||||
if (order < 0 || order >= pUnit->yccount) return 0;
|
||||
pYC = &pUnit->ycs[order];
|
||||
return pYC->highSpeed;
|
||||
}
|
||||
|
||||
static WORD GetUnitYCRegisterAddr(int uid, int point)
|
||||
{
|
||||
struUnit* pUnit;
|
||||
@ -447,74 +372,6 @@ static bool publishhistoryLowSpeedData(const noPollConn* conn, const int uid, co
|
||||
}
|
||||
|
||||
|
||||
#define USE_MEMORY
|
||||
|
||||
#ifdef USE_MEMORY
|
||||
|
||||
struct memory {
|
||||
char *response;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
static size_t write_callback(void *ptr, size_t size, size_t nmemb, struct memory *mem)
|
||||
{
|
||||
size_t new_size = mem->size + size * nmemb;
|
||||
mem->response = (char *)realloc(mem->response, new_size + 1);
|
||||
if (mem->response == NULL) {
|
||||
vLog(LOG_ERROR, "Failed to allocate memory.\n");
|
||||
return 0; // Out of memory
|
||||
}
|
||||
memcpy(&(mem->response[mem->size]), ptr, size * nmemb);
|
||||
mem->size = new_size;
|
||||
mem->response[new_size] = '\0';
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
#else
|
||||
struct CustomProgress
|
||||
{
|
||||
curl_off_t lastruntime;
|
||||
CURL *curl;
|
||||
};
|
||||
|
||||
static int progressCallback(void* p, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
|
||||
{
|
||||
struct CustomProgress *progress = (struct CustomProgress *)p;
|
||||
CURL *curl = progress->curl;
|
||||
curl_off_t curtime = 0;
|
||||
|
||||
curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME_T, &curtime);
|
||||
if ((curtime - progress->lastruntime) >= 3000000) {
|
||||
progress->lastruntime = curtime;
|
||||
vLog(LOG_DEBUG, "Total time: %f\n", curtime);
|
||||
}
|
||||
vLog(LOG_DEBUG, "UP: %ld bytes of %ld bytes, DOWN: %ld bytes of %ld bytes.\n", ulnow, ultotal, dlnow, dltotal);
|
||||
if (ultotal) vLog(LOG_DEBUG, "UP progress: %0.2f\n", float(ulnow /ultotal));
|
||||
if (dltotal) vLog(LOG_DEBUG, "DOWN progress: %0.2f\n", float(dlnow /dltotal));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static size_t getContentLengthFunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
int r;
|
||||
long len = 0;
|
||||
|
||||
r = sscanf((const char*)ptr, "Content-Length: %ld\n", &len);
|
||||
if (r) *((long *)stream) = len;
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
static size_t discardFunc(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
return size * nmemb;
|
||||
}
|
||||
|
||||
static size_t writefunc(void* ptr, size_t size, size_t nmemb, FILE* stream)
|
||||
{
|
||||
return fwrite(ptr, size, nmemb, stream);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int ftpget(const char* remote, const char* local, const char* user, const char* pwd, const long timeout = 3, struct memory* chunk = NULL)
|
||||
{
|
||||
//vLog(LOG_DEBUG, "start to get %s to local %s, with name: %s, and password: %s.\n", remote, local, user, pwd);
|
||||
@ -525,35 +382,7 @@ static int ftpget(const char* remote, const char* local, const char* user, const
|
||||
snprintf(user_key, sizeof(user_key), "%s:%s", user, pwd);
|
||||
|
||||
CURLcode ret = CURLE_GOT_NOTHING;
|
||||
#ifndef USE_MEMORY
|
||||
FILE *file;
|
||||
curl_off_t local_file_len = -1;
|
||||
long filesize = 0;
|
||||
struct stat file_info;
|
||||
int use_resume = 0;
|
||||
|
||||
if (stat(local, &file_info) == 0) {
|
||||
local_file_len = file_info.st_size;
|
||||
use_resume = 1;
|
||||
}
|
||||
#if 0
|
||||
file = fopen(local, "ab+");
|
||||
if (file == NULL) {
|
||||
vLog(LOG_ERROR, "open file error(%d,%s)\n", errno, strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
curl_easy_setopt(curl, CURLOPT_URL, remote);
|
||||
curl_easy_setopt(curl, CURLOPT_USERPWD, user_key);
|
||||
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, timeout);
|
||||
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, getContentLengthFunc);
|
||||
curl_easy_setopt(curl, CURLOPT_HEADERDATA, &filesize);
|
||||
curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, use_resume ? local_file_len : 0);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writefunc);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, file);
|
||||
ret = curl_easy_perform(curl);
|
||||
fclose(file);
|
||||
#else
|
||||
curl_easy_setopt(curl, CURLOPT_URL, remote);
|
||||
curl_easy_setopt(curl, CURLOPT_USERPWD, user_key);
|
||||
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, timeout);
|
||||
@ -561,7 +390,7 @@ static int ftpget(const char* remote, const char* local, const char* user, const
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)chunk);
|
||||
curl_easy_setopt(curl, CURLOPT_FTP_USE_EPSV, 0L); // Optional: depending on your FTP server
|
||||
ret = curl_easy_perform(curl);
|
||||
#endif
|
||||
|
||||
curl_easy_cleanup(curl);
|
||||
curl_global_cleanup();
|
||||
|
||||
@ -582,7 +411,7 @@ static void* ryftp_process(void* param)
|
||||
char user[128] = "administrator";
|
||||
char password[128] = "123456";
|
||||
char ipaddress[128] = "127.0.0.1";
|
||||
char remotePath[128] = "Hard Disk2/data/rtdatalog";
|
||||
char remotePath[128] = "/data/rtdatalog";
|
||||
char pathName[128] = "./";
|
||||
|
||||
//配置远方路径
|
||||
@ -616,550 +445,11 @@ static void* ryftp_process(void* param)
|
||||
}
|
||||
|
||||
int len = 0;
|
||||
struRYDeviceData t_data;
|
||||
//struRYDeviceData t_data;
|
||||
FIELDDES fields[1024];
|
||||
|
||||
len = calcFields(fields);
|
||||
vLog(LOG_DEBUG, "len is: %d\n", len);
|
||||
#if 0
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.localtime) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.localtime);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationY) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationY);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationZ) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationZ);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTurbineOperationMode) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTurbineOperationMode);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBPLevel) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBPLevel);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iYPLevel) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iYPLevel);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenToruqe) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenToruqe);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iRotorSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iRotorSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTheoreticalPower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTheoreticalPower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iReactivePower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iReactivePower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iActivePowerSetPointValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iActivePowerSetPointValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iReactivePowerSetPointValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iReactivePowerSetPointValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iSetValueGenSpeed) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iSetValueGenSpeed);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iSetValuePitchAngle) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iSetValuePitchAngle);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle1RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle1RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle2RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle2RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle3RefValue) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle3RefValue);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle1) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle1);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle2) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle2);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngle3) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngle3);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVaneDirection) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVaneDirection);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindDirection) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindDirection);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord01) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord01);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord02) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord02);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord03) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord03);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord04) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord04);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord05) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord05);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord06) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord06);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord07) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord07);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.StateWord08) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.StateWord08);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode01) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode01);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode02) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode02);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode03) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode03);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode04) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode04);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode05) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode05);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode06) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode06);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode07) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode07);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.ActiveStatusCode08) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.ActiveStatusCode08);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iFrequency) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iFrequency);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL1_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL1_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL2_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL2_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iUL3_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iUL3_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL1_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL1_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL2_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL2_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iIL3_690V) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iIL3_690V);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3MotorCurrent) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3MotorCurrent);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk1) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk1);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk2) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk2);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iPitchAngleBk3) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iPitchAngleBk3);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iCosPhi) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iCosPhi);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGearPressA) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGearPressA);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGearPressB) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGearPressB);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iHydrPress) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iHydrPress);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iNacellePositionLtd) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iNacellePositionLtd);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iCableTwistTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iCableTwistTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iNacellePositionTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iNacellePositionTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempOutdoor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempOutdoor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempHub_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempHub_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempNacelle_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempNacelle_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempTowerBase_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempTowerBase_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCabinetNacelle_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCabinetNacelle_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCabinetTowerBase_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCabinetTowerBase_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempTransformer690_400V_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempTransformer690_400V_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempMV_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempMV_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempMotor_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempMotor_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempBattBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempBattBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempCntr_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempCntr_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempInvBox_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempInvBox_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempPMMHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempPMMHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade1TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade1TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade2TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade2TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iBlade3TempPMCHeatsink_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iBlade3TempPMCHeatsink_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempRotorBearA_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempRotorBearA_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempRotorBearB_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempRotorBearB_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTemp1GearOil_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTemp1GearOil_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearBearDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearBearDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearBearNDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearBearNDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenBearDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenBearDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenBearNDE_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenBearNDE_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorU_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorU_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorV_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorV_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenStatorW_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenStatorW_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGenCoolingAir_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGenCoolingAir_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailabillityToday) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailabillityToday);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailabillityTotal) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailabillityTotal);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iKWhThisDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iKWhThisDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iKWhOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iKWhOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iOperationHoursDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iOperationHoursDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iOperationHoursOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iOperationHoursOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iLostKWhThisDay) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iLostKWhThisDay);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iLostKWhOverall) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iLostKWhOverall);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW001) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW001);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW002) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW002);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW003) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW003);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW004) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW004);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW005) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW005);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW006) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW006);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW007) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW007);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW008) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW008);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW009) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW009);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW010) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW010);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW011) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW011);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW012) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW012);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW013) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW013);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW014) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW014);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW015) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW015);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW016) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW016);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW017) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW017);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW018) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW018);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW019) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW019);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW020) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW020);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW021) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW021);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW022) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW022);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW023) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW023);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW024) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW024);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW025) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW025);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW026) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW026);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW027) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW027);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW028) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW028);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW029) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW029);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW030) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW030);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW031) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW031);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW032) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW032);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW033) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW033);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW034) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW034);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW035) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW035);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW036) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW036);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW037) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW037);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW038) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW038);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW039) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW039);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW040) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW040);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW041) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW041);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW042) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW042);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW043) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW043);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW044) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW044);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW045) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW045);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW046) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW046);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW047) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW047);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW048) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW048);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW049) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW049);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.SCW050) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.SCW050);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenSpeed_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenSpeed_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iGenPower_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iGenPower_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_10sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_10sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeed_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeed_10min);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAvailablePower) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAvailablePower);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.FirstTriggeredCode) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.FirstTriggeredCode);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.FaultInformation) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.FaultInformation);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.WecRunCondition) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.WecRunCondition);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC_30sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC_30sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iWindSpeedIEC_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iWindSpeedIEC_10min);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iYawPress) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iYawPress);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iStandardAirDensity) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iStandardAirDensity);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iAirDensity) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iAirDensity);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationYFiltered) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationYFiltered);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iVibrationZFiltered) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iVibrationZFiltered);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempGearWaterCool_1sec) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempGearWaterCool_1sec);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.PowerLimitSource) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.PowerLimitSource);
|
||||
len++;
|
||||
fields[len].start = reinterpret_cast<uintptr_t>(&t_data.iTempOutdoor_10min) - reinterpret_cast<uintptr_t>(&t_data);
|
||||
fields[len].length = sizeof(t_data.iTempOutdoor_10min);
|
||||
len++;
|
||||
#endif
|
||||
|
||||
//判断是否链接单元
|
||||
int uid = mbt->GetUnitID(0); //默认只接一个设备
|
||||
if (uid < 0 || uid >= UNIT_NUM) return ((void*)0);
|
||||
|
@ -622,11 +622,7 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char localIp[32];
|
||||
char localNetId[48];
|
||||
char remoteIp[32];
|
||||
char remoteNetId[48];
|
||||
|
||||
struNetWorkOption net;
|
||||
BOOLEAN bHaveFTP;
|
||||
struFTPOption ftp;
|
||||
} struRYADSOption;
|
||||
|
@ -24,6 +24,11 @@ typedef struct {
|
||||
int address;
|
||||
} struDataLengthMBAddr;
|
||||
|
||||
struct memory {
|
||||
char *response;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
int uid;
|
||||
//ftp参数信息
|
||||
@ -234,5 +239,12 @@ typedef struct {
|
||||
#pragma pack()
|
||||
|
||||
int calcFields(FIELDDES *fields);
|
||||
size_t write_callback(void *ptr, size_t size, size_t nmemb, struct memory *mem);
|
||||
float GetUnitYCRealFromValue(int uid, int order, LONG value);
|
||||
BOOLEAN GetUnitYCIsFloat(int uid, int order);
|
||||
int GetUnitYXCount(int uid);
|
||||
int GetUnitYCCount(int uid);
|
||||
BOOLEAN GetUnitYCType(int uid, int order);
|
||||
|
||||
|
||||
#endif //_RYFILE_DEFINE_H_
|
||||
|
Loading…
Reference in New Issue
Block a user