增加特征值存储到数据库,修改长波形接收不完整bug,频域图数据转换bug
This commit is contained in:
parent
5f24f2b7c3
commit
0a6daf777b
15
.cproject
15
.cproject
@ -91,19 +91,19 @@
|
|||||||
</extensions>
|
</extensions>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.770635657" name="Release" parent="cdt.managedbuild.config.gnu.cross.exe.release" postbuildStep="cp WirelessGateway Cidn-SH;arm-linux-gnueabihf-strip Cidn-SH">
|
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.config.gnu.cross.exe.release.770635657" name="Release" parent="cdt.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="" postbuildStep="cp WirelessGateway Cidn-SH;arm-linux-gnueabihf-strip Cidn-SH" preannouncebuildStep="" prebuildStep="">
|
||||||
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.770635657." name="/" resourcePath="">
|
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.770635657." name="/" resourcePath="">
|
||||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.1737804687" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
|
<toolChain errorParsers="" id="cdt.managedbuild.toolchain.gnu.cross.exe.release.1737804687" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
|
||||||
<option id="cdt.managedbuild.option.gnu.cross.prefix.1625525504" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-linux-gnueabihf-" valueType="string"/>
|
<option id="cdt.managedbuild.option.gnu.cross.prefix.1625525504" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-linux-gnueabihf-" valueType="string"/>
|
||||||
<option id="cdt.managedbuild.option.gnu.cross.path.198654844" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="/opt/GatewayToolsChain/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin" valueType="string"/>
|
<option id="cdt.managedbuild.option.gnu.cross.path.198654844" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" useByScannerDiscovery="false" value="/opt/GatewayToolsChain/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin" valueType="string"/>
|
||||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1898042134" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1898042134" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||||
<builder buildPath="${workspace_loc:/WirelessGateway}/Release" id="cdt.managedbuild.builder.gnu.cross.2122902688" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
<builder buildPath="${workspace_loc:/WirelessGateway}/Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="cdt.managedbuild.builder.gnu.cross.2122902688" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.171749014" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
<tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.cross.c.compiler.171749014" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||||
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.148132182" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.148132182" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
||||||
<option id="gnu.c.compiler.option.debugging.level.374757586" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
|
<option id="gnu.c.compiler.option.debugging.level.374757586" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
|
||||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.842673130" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.842673130" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1614235061" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1614235061" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||||
<option id="gnu.cpp.compiler.option.optimization.level.1503389911" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
|
<option id="gnu.cpp.compiler.option.optimization.level.1503389911" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
|
||||||
<option id="gnu.cpp.compiler.option.debugging.level.2146025035" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
<option id="gnu.cpp.compiler.option.debugging.level.2146025035" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||||
<option id="gnu.cpp.compiler.option.include.paths.1740362159" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
<option id="gnu.cpp.compiler.option.include.paths.1740362159" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||||
@ -113,10 +113,11 @@
|
|||||||
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/jsoncpp/include"/>
|
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/jsoncpp/include"/>
|
||||||
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/sqlite/include"/>
|
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/sqlite/include"/>
|
||||||
</option>
|
</option>
|
||||||
|
<option id="gnu.cpp.compiler.option.dialect.std.411963263" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
|
||||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.542083696" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.542083696" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1480789657" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1480789657" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.762964696" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.tool.gnu.cross.cpp.linker.762964696" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||||
<option id="gnu.cpp.link.option.paths.1792108116" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths">
|
<option id="gnu.cpp.link.option.paths.1792108116" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" useByScannerDiscovery="false" valueType="libPaths">
|
||||||
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/boost/lib"/>
|
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/GatewayThirdParty/boost/lib"/>
|
||||||
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/DataWatchThirdParty/ssl/lib"/>
|
<listOptionValue builtIn="false" value="/nfsroot/eclipse-workspace/DataWatchThirdParty/ssl/lib"/>
|
||||||
@ -145,7 +146,7 @@
|
|||||||
</inputType>
|
</inputType>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.28417350" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.28417350" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1691218119" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
<tool command="as" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="cdt.managedbuild.tool.gnu.cross.assembler.1691218119" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.219849714" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.219849714" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
</toolChain>
|
</toolChain>
|
||||||
|
@ -142,7 +142,7 @@ std::string ReadStrByOpt(std::string filename, std::string config, std::string o
|
|||||||
is.close();
|
is.close();
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
std::vector <std::string> ReadStrByOpt(std::string filename,std::string strUpdataFileName)
|
std::vector <std::string> ReadStrByOpt(std::string filename,std::string& strUpdataFileName)
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(s_config_mu);
|
boost::mutex::scoped_lock lock(s_config_mu);
|
||||||
Json::Value root,hwVersion;
|
Json::Value root,hwVersion;
|
||||||
|
@ -45,8 +45,17 @@
|
|||||||
#define BUILD_UINT16(x,y) (((x & 0x00FFu) << 8u) | (y & 0x00FFu))
|
#define BUILD_UINT16(x,y) (((x & 0x00FFu) << 8u) | (y & 0x00FFu))
|
||||||
// 生成UINT32 数据
|
// 生成UINT32 数据
|
||||||
#define BUILD_UINT32(u,v,x,y) (((u & 0x00FFu) << 24u) | (v & 0x00FFu) << 16u) | (((x & 0x00FFu) << 8u) | (y & 0x00FFu))
|
#define BUILD_UINT32(u,v,x,y) (((u & 0x00FFu) << 24u) | (v & 0x00FFu) << 16u) | (((x & 0x00FFu) << 8u) | (y & 0x00FFu))
|
||||||
#define GENERAL_BUF_SIZE 128*1024
|
// 获取UINT32的高低字节
|
||||||
|
#define UINT32_HIGH_1(x) ((x & 0xFF000000u) >> 24u)
|
||||||
|
#define UINT32_HIGH_2(x) ((x & 0x00FF0000u) >> 16u)
|
||||||
|
#define UINT32_LOW_1(x) ((x & 0x0000FF00u) >> 8u)
|
||||||
|
#define UINT32_LOW_2(x) ((x & 0x000000FFu))
|
||||||
|
|
||||||
|
// 获取UINT32的高低字节
|
||||||
|
#define UINT16_HIGH(x) ((x & 0xFF00u) >> 8u)
|
||||||
|
#define UINT16_LOW(x) ((x & 0x00FFu))
|
||||||
|
|
||||||
|
#define GENERAL_BUF_SIZE 128*1024*10
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
enum TIME_SIZE{
|
enum TIME_SIZE{
|
||||||
@ -591,7 +600,7 @@ extern bool CheckIP(const char *ip);
|
|||||||
|
|
||||||
bool IsValidMask(std::string mask);
|
bool IsValidMask(std::string mask);
|
||||||
//read update config file
|
//read update config file
|
||||||
extern std::vector <std::string> ReadStrByOpt(std::string filename,std::string strUpdataFileName);
|
extern std::vector <std::string> ReadStrByOpt(std::string filename,std::string& strUpdataFileName);
|
||||||
|
|
||||||
extern void swap(char *data);
|
extern void swap(char *data);
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ enum enumZigBeeTransmitStatus {
|
|||||||
ENTER_TRANSMITTING_STATUS
|
ENTER_TRANSMITTING_STATUS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class GlobalConfig
|
class GlobalConfig
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
|
@ -565,7 +565,7 @@ std::string JsonData::JsonCmd_Cgi_09()
|
|||||||
Json::Value jsSensor;
|
Json::Value jsSensor;
|
||||||
std::string strDataNodeNo = vetRes[i];
|
std::string strDataNodeNo = vetRes[i];
|
||||||
char whereCon[64] = {};
|
char whereCon[64] = {};
|
||||||
sprintf(whereCon, "dataNodeNo='%s'", strDataNodeNo.c_str());
|
sprintf(whereCon, "dataNodeNo='%s' ORDER BY timeStamp DESC LIMIT 0,3", strDataNodeNo.c_str());
|
||||||
// 自数据库获取传感器特征数据
|
// 自数据库获取传感器特征数据
|
||||||
array_t arrRes;
|
array_t arrRes;
|
||||||
arrRes = sql_ctl->GetDataMultiLine(T_DATA_INFO(TNAME), "*", whereCon);
|
arrRes = sql_ctl->GetDataMultiLine(T_DATA_INFO(TNAME), "*", whereCon);
|
||||||
@ -595,7 +595,7 @@ std::string JsonData::JsonCmd_Cgi_09()
|
|||||||
}
|
}
|
||||||
|
|
||||||
char selectCon[128] = { 0 };
|
char selectCon[128] = { 0 };
|
||||||
sprintf(selectCon, "dataNodeNo='%s'", strDataNodeNo.c_str());
|
sprintf(selectCon, "dataNodeNo='%s' ORDER BY timeStamp DESC LIMIT 0,1", strDataNodeNo.c_str());
|
||||||
vec_t vecRes = sql_ctl->GetDataSingleLine(T_DATASTATIC_INFO(TNAME), "*", selectCon);
|
vec_t vecRes = sql_ctl->GetDataSingleLine(T_DATASTATIC_INFO(TNAME), "*", selectCon);
|
||||||
Json::Value jsStaticData;
|
Json::Value jsStaticData;
|
||||||
if(vecRes.size()>0){
|
if(vecRes.size()>0){
|
||||||
@ -782,6 +782,7 @@ std::string JsonData::JsonCmd_Cgi_26()
|
|||||||
array_t arrRes;
|
array_t arrRes;
|
||||||
arrRes = sql_ctl->GetDataMultiLine(T_SENSOR_INFO(TNAME), "*", NULL);
|
arrRes = sql_ctl->GetDataMultiLine(T_SENSOR_INFO(TNAME), "*", NULL);
|
||||||
int iResult = arrRes.size();
|
int iResult = arrRes.size();
|
||||||
|
printf("iResult = %d\n",iResult);
|
||||||
if (iResult > 0) {
|
if (iResult > 0) {
|
||||||
for (int j = 0; j < iResult; j++) {
|
for (int j = 0; j < iResult; j++) {
|
||||||
Json::Value jsSensorData;
|
Json::Value jsSensorData;
|
||||||
@ -792,31 +793,39 @@ std::string JsonData::JsonCmd_Cgi_26()
|
|||||||
jsSensorData["zigbeeFlag"] = boost::lexical_cast<int>(arrRes[j][4]);
|
jsSensorData["zigbeeFlag"] = boost::lexical_cast<int>(arrRes[j][4]);
|
||||||
jsSensorData["temTopFlag"] = boost::lexical_cast<int>(arrRes[j][5]);
|
jsSensorData["temTopFlag"] = boost::lexical_cast<int>(arrRes[j][5]);
|
||||||
jsSensorData["temBotFlag"] = boost::lexical_cast<int>(arrRes[j][6]);
|
jsSensorData["temBotFlag"] = boost::lexical_cast<int>(arrRes[j][6]);
|
||||||
jsSensorData["equipsta"] = boost::lexical_cast<int>(arrRes[j][7]);
|
|
||||||
jsSensorData["hardVersion"] = arrRes[j][8];
|
jsSensorData["hardVersion"] = arrRes[j][8];
|
||||||
jsSensorData["softVersion"] = arrRes[j][9];
|
jsSensorData["softVersion"] = arrRes[j][9];
|
||||||
jsSensorData["bpNo"] = arrRes[j][10];
|
jsSensorData["bpNo"] = arrRes[j][10];
|
||||||
jsSensorData["serialNo"] = arrRes[j][11];
|
jsSensorData["serialNo"] = arrRes[j][11];
|
||||||
jsSensorData["firstPowerTime"] = arrRes[j][12];
|
jsSensorData["firstPowerTime"] = arrRes[j][12];
|
||||||
jsSensorData["configFlag"] = boost::lexical_cast<int>(arrRes[j][13]);
|
jsSensorData["WakeupTime"] = boost::lexical_cast<int>(arrRes[j][13]);
|
||||||
jsSensorData["startBrands"] = arrRes[j][14];
|
jsSensorData["StaticTime"] = boost::lexical_cast<int>(arrRes[j][14]);
|
||||||
jsSensorData["stopBrands"] = arrRes[j][15];
|
jsSensorData["WaveTime"] = boost::lexical_cast<int>(arrRes[j][15]);
|
||||||
jsSensorData["featureInterVal"] = boost::lexical_cast<int>(arrRes[j][16]);
|
jsSensorData["BateryV"] = arrRes[j][16];
|
||||||
jsSensorData["waveInterVal"] = boost::lexical_cast<int>(arrRes[j][17]);
|
jsSensorData["ProductNo"] = arrRes[j][17];
|
||||||
jsSensorData["samplingRate"] = boost::lexical_cast<int>(arrRes[j][18]);
|
jsSensorData["configFlag"] = boost::lexical_cast<int>(arrRes[j][18]);
|
||||||
jsSensorData["scope"] = arrRes[j][19];
|
jsSensorData["startBrands"] = arrRes[j][19];
|
||||||
jsSensorData["range"] = boost::lexical_cast<int>(arrRes[j][20]);;
|
jsSensorData["stopBrands"] = arrRes[j][20];
|
||||||
jsSensorData["envelopeBandPass"] = arrRes[j][21];
|
jsSensorData["featureInterVal"] = boost::lexical_cast<string>(arrRes[j][21]);
|
||||||
jsSensorData["faultFrequency"] = arrRes[j][12];
|
jsSensorData["waveInterVal"] = boost::lexical_cast<int>(arrRes[j][22]);
|
||||||
jsSensorData["zigbeePanId"] = arrRes[j][23];
|
jsSensorData["samplingRate"] = boost::lexical_cast<int>(arrRes[j][23]);
|
||||||
jsSensorData["zigbeeChannel"] = boost::lexical_cast<int>(arrRes[j][24]);
|
// jsSensorData["scope"] = boost::lexical_cast<int>(arrRes[j][24]);
|
||||||
jsSensorData["zigbeeAddr"] = arrRes[j][25];
|
jsSensorData["range"] = boost::lexical_cast<int>(arrRes[j][25]);
|
||||||
jsSensorData["zigbeeLongAddr"] = arrRes[j][26];
|
jsSensorData["envelopeBandPass"] = arrRes[j][26];
|
||||||
jsSensorData["zigbeeDesAddr"] = arrRes[j][27];
|
jsSensorData["faultFrequency"] = arrRes[j][27];
|
||||||
jsSensorData["status"] = boost::lexical_cast<int>(arrRes[j][28]);
|
jsSensorData["zigbeePanId"] = arrRes[j][28];
|
||||||
jsSensorData["timeStamp"] = arrRes[j][29];
|
jsSensorData["zigbeeChannel"] = boost::lexical_cast<string>(arrRes[j][29]);
|
||||||
jsSensorData["viff"] = boost::lexical_cast<int>(arrRes[j][30]);
|
jsSensorData["zigbeeAddr"] = arrRes[j][30];
|
||||||
jsSensorData["RSSI"] = boost::lexical_cast<int>(arrRes[j][31]);
|
jsSensorData["zigbeeLongAddr"] = arrRes[j][31];
|
||||||
|
jsSensorData["zigbeeDesAddr"] = arrRes[j][32];
|
||||||
|
jsSensorData["ZigbeePower"] = boost::lexical_cast<int>(arrRes[j][33]);
|
||||||
|
jsSensorData["ZigbeeRetry"] = boost::lexical_cast<int>(arrRes[j][34]);
|
||||||
|
jsSensorData["ZigbeeRetryGap"] = boost::lexical_cast<int>(arrRes[j][35]);
|
||||||
|
jsSensorData["ACCSampleTime"] = boost::lexical_cast<int>(arrRes[j][36]);
|
||||||
|
jsSensorData["status"] = boost::lexical_cast<int>(arrRes[j][37]);
|
||||||
|
jsSensorData["timeStamp"] = arrRes[j][38];
|
||||||
|
jsSensorData["viff"] = boost::lexical_cast<int>(arrRes[j][39]);
|
||||||
|
jsSensorData["RSSI"] = boost::lexical_cast<int>(arrRes[j][40]);
|
||||||
jsArray.append(jsSensorData);
|
jsArray.append(jsSensorData);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1046,6 +1055,7 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m)
|
|||||||
//进行傅立叶变换
|
//进行傅立叶变换
|
||||||
pCalculation->FFTSpec(vecWave, fftWave);
|
pCalculation->FFTSpec(vecWave, fftWave);
|
||||||
printf("2---------------------------------------------->%d\n",fftWave.size());
|
printf("2---------------------------------------------->%d\n",fftWave.size());
|
||||||
|
printf("2---------------------------------------------->%f\n",fftWave[10]);
|
||||||
/*std::string strWaveData2 = "";
|
/*std::string strWaveData2 = "";
|
||||||
char bufff[32] = {0};
|
char bufff[32] = {0};
|
||||||
for(int k=0;k<fftWave.size();k++)
|
for(int k=0;k<fftWave.size();k++)
|
||||||
@ -1065,7 +1075,7 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m)
|
|||||||
}*/
|
}*/
|
||||||
print_info("after fft--------------------------------------------------->fftWave.size()=%d\n", fftWave.size());
|
print_info("after fft--------------------------------------------------->fftWave.size()=%d\n", fftWave.size());
|
||||||
//print_info("after fft---------------------------------------------------> %s,fftWave.size()=%d\n", strWaveData2.c_str(),fftWave.size());
|
//print_info("after fft---------------------------------------------------> %s,fftWave.size()=%d\n", strWaveData2.c_str(),fftWave.size());
|
||||||
int flag = param.mPackageFlag;
|
/* int flag = param.mPackageFlag;
|
||||||
//print_info("*********************************param.mPackageFlag=%d\n",param.mPackageFlag);
|
//print_info("*********************************param.mPackageFlag=%d\n",param.mPackageFlag);
|
||||||
flag = (flag + 1) * 1024;
|
flag = (flag + 1) * 1024;
|
||||||
int number = fftWave.size();
|
int number = fftWave.size();
|
||||||
@ -1104,6 +1114,38 @@ std::string JsonData::JsonCmd_Cgi_30(Param_30 ¶m)
|
|||||||
{
|
{
|
||||||
max = 1;
|
max = 1;
|
||||||
}
|
}
|
||||||
|
jsBody["packageMax"] = max; */
|
||||||
|
int flag = param.mPackageFlag;
|
||||||
|
flag = (flag + 1) * 1024;
|
||||||
|
int number = fftWave.size();
|
||||||
|
int start = param.mPackageFlag * 1024;
|
||||||
|
printf("param.mPackageFlag = %d\n",param.mPackageFlag);
|
||||||
|
printf("param.start = %d\n",start);
|
||||||
|
printf("param.flag = %d\n",flag);
|
||||||
|
if (number < 1024) {
|
||||||
|
flag = number;
|
||||||
|
start = 0;
|
||||||
|
}
|
||||||
|
char buf[32];
|
||||||
|
for (int i = start; i < flag; i++) {
|
||||||
|
if ( i == start ) {
|
||||||
|
memset(buf, 0, 32);
|
||||||
|
sprintf(buf, "%.6f", fftWave[i]);
|
||||||
|
std::string waveTemp(buf);
|
||||||
|
strWaveData = waveTemp;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
memset(buf, 0, 32);
|
||||||
|
sprintf(buf, "%.6f", fftWave[i]);
|
||||||
|
std::string waveTemp(buf);
|
||||||
|
strWaveData = strWaveData + "," + waveTemp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int max = number / 1024;
|
||||||
|
if (max == 0 && number > 0) {
|
||||||
|
max = 1;
|
||||||
|
}
|
||||||
jsBody["packageMax"] = max;
|
jsBody["packageMax"] = max;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -352,6 +352,7 @@ try{
|
|||||||
case 26:{
|
case 26:{
|
||||||
JsonData jd;
|
JsonData jd;
|
||||||
std::string data = jd.JsonCmd_Cgi_26();
|
std::string data = jd.JsonCmd_Cgi_26();
|
||||||
|
printf("data = %s\n",data.c_str());
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -136,13 +136,15 @@ void UartStart()
|
|||||||
{
|
{
|
||||||
// onReceiveUart cb = (onReceiveUart)&ProtoConvert::HandleFromUart;
|
// onReceiveUart cb = (onReceiveUart)&ProtoConvert::HandleFromUart;
|
||||||
// pUart->setCallBack(cb);
|
// pUart->setCallBack(cb);
|
||||||
while (GlobalConfig::QuitFlag_G) {
|
|
||||||
pUart->InitUart();
|
pUart->InitUart();
|
||||||
|
|
||||||
|
while (GlobalConfig::QuitFlag_G) {
|
||||||
|
|
||||||
pUart->UpdateZigbeeInfoCtrl();
|
pUart->UpdateZigbeeInfoCtrl();
|
||||||
pUart->ReadFromUart();
|
pUart->ReadFromUart();
|
||||||
pUart->Run();
|
pUart->Run();
|
||||||
pUart->Stop();
|
// pUart->Stop();
|
||||||
boost::this_thread::sleep(boost::posix_time::seconds(1));
|
boost::this_thread::sleep(boost::posix_time::milliseconds(10));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
221
uart/SH_Uart.cpp
221
uart/SH_Uart.cpp
@ -10,8 +10,9 @@
|
|||||||
namespace{
|
namespace{
|
||||||
Uart *pUart = Uart::instance();
|
Uart *pUart = Uart::instance();
|
||||||
}
|
}
|
||||||
|
char g_UartRecvBuf[GENERAL_BUF_SIZE];
|
||||||
|
int offSize = 0;
|
||||||
|
int Size = 0;
|
||||||
// namespace{
|
// namespace{
|
||||||
// PlatformInit *platform = PlatformInit::instance();
|
// PlatformInit *platform = PlatformInit::instance();
|
||||||
// LocalServer *wlServer = LocalServer::instance();
|
// LocalServer *wlServer = LocalServer::instance();
|
||||||
@ -25,7 +26,6 @@ Uart::Uart():mUart(mIoSev),mStrand(mIoSev)
|
|||||||
{
|
{
|
||||||
mRdLength = 0;
|
mRdLength = 0;
|
||||||
memset(mUartRecvBuf,0,BUF_LENGTH);
|
memset(mUartRecvBuf,0,BUF_LENGTH);
|
||||||
update = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Uart::InitUart()
|
void Uart::InitUart()
|
||||||
@ -89,14 +89,15 @@ void Uart::WriteToUart(const char *strSend,int pLen)
|
|||||||
void Uart::ReadFromUart()
|
void Uart::ReadFromUart()
|
||||||
{
|
{
|
||||||
if (mUart.is_open()) {
|
if (mUart.is_open()) {
|
||||||
mUart.async_read_some(buffer(&mUartRecvBuf[mRdLength], BUF_LENGTH-mRdLength-4),
|
print_info("async_read_some,wait......................................\n");
|
||||||
|
mUart.async_read_some(buffer(&mUartRecvBuf[mRdLength], BUF_LENGTH-mRdLength-Size),
|
||||||
mStrand.wrap(
|
mStrand.wrap(
|
||||||
boost::bind(&Uart::ReadHandle,this,
|
boost::bind(&Uart::ReadHandle,this,
|
||||||
boost::asio::placeholders::error,
|
boost::asio::placeholders::error,
|
||||||
boost::asio::placeholders::bytes_transferred))
|
boost::asio::placeholders::bytes_transferred))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
print_info("async_read_some,wait......................................\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Uart::Run()
|
void Uart::Run()
|
||||||
@ -116,16 +117,16 @@ void Uart::ReadHandle(const boost::system::error_code &ec,size_t bytesRead)
|
|||||||
try{
|
try{
|
||||||
if (ec) {
|
if (ec) {
|
||||||
mRdLength = 0;
|
mRdLength = 0;
|
||||||
ReadFromUart();
|
// ReadFromUart();
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ //长度检测
|
{ //长度检测
|
||||||
/* printf("recv uart len in ZigBee short address %4x : %d\n recv uart data:",
|
printf("recv uart len in ZigBee short address %4x : %d\n recv uart data:",
|
||||||
(unsigned short)GlobalConfig::Zigbee_G.MyAddr, bytesRead);
|
(unsigned short)GlobalConfig::Zigbee_G.MyAddr, bytesRead);
|
||||||
for (unsigned int i = 0; i < bytesRead; i++)
|
for ( int i = 0; i < bytesRead; i++)
|
||||||
print_debug("%02X ",mUartRecvBuf[i]&0xFF);
|
print_debug("%02X ",mUartRecvBuf[i]&0xFF);
|
||||||
*/
|
|
||||||
int iPackageSize = bytesRead / 100;
|
int iPackageSize = bytesRead / 100;
|
||||||
if (0 == iPackageSize) {
|
if (0 == iPackageSize) {
|
||||||
iPackageSize = 1;
|
iPackageSize = 1;
|
||||||
@ -136,9 +137,28 @@ try{
|
|||||||
通信,数据量处理不好就会产生很大的影响。我的逻辑:利用while循环,条件是判断bytesRead是否大于0,如果条件满足,再取数据包的前3字节,
|
通信,数据量处理不好就会产生很大的影响。我的逻辑:利用while循环,条件是判断bytesRead是否大于0,如果条件满足,再取数据包的前3字节,
|
||||||
判断命令码是ABBCCD还是AA55AA,如果是ABBCCD就处理74字节数据,如果是AA55AA就处理100自己数据,此时存放数据的buf减去处理的大小数据,
|
判断命令码是ABBCCD还是AA55AA,如果是ABBCCD就处理74字节数据,如果是AA55AA就处理100自己数据,此时存放数据的buf减去处理的大小数据,
|
||||||
然后进入下一次while循环。*/
|
然后进入下一次while循环。*/
|
||||||
|
|
||||||
|
if((unsigned short)GlobalConfig::Zigbee_G.MyAddr == (unsigned short)0x9999){
|
||||||
|
|
||||||
|
for (int j = 0; j < iPackageSize; j++) {
|
||||||
|
char buf[6];
|
||||||
|
char mUartRecvPackage[100] = {0};
|
||||||
|
|
||||||
|
memcpy(mUartRecvPackage, mUartRecvBuf+7-Size, 100);
|
||||||
|
Count = Count - 100;
|
||||||
|
sprintf(&buf[0], "%02X", mUartRecvPackage[0]&0xFF);
|
||||||
|
sprintf(&buf[2], "%02X", mUartRecvPackage[1]&0xFF);
|
||||||
|
sprintf(&buf[4], "%02X", mUartRecvPackage[2]&0xFF);
|
||||||
|
std::string strHeadFlag(buf);
|
||||||
|
print_info("data package head command type:%s,Size = %d\n", strHeadFlag.c_str(),Size);
|
||||||
|
if ( 0 == strHeadFlag.compare("AA55AA") ) {
|
||||||
|
DealRecvData(mUartRecvPackage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Size = 7;
|
||||||
|
}else{
|
||||||
for (int j = 0; j < iPackageSize; j++) {
|
for (int j = 0; j < iPackageSize; j++) {
|
||||||
char buf[6];
|
char buf[6];
|
||||||
char buf1[2];
|
|
||||||
char mUartRecvPackage[100] = {0};
|
char mUartRecvPackage[100] = {0};
|
||||||
// 多包分包,解包,
|
// 多包分包,解包,
|
||||||
if (Count < 100) {
|
if (Count < 100) {
|
||||||
@ -147,6 +167,7 @@ try{
|
|||||||
memcpy(mUartRecvPackage, &mUartRecvBuf[j * 100], 100);
|
memcpy(mUartRecvPackage, &mUartRecvBuf[j * 100], 100);
|
||||||
Count = Count - 100;
|
Count = Count - 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(&buf[0], "%02X", mUartRecvPackage[0]&0xFF);
|
sprintf(&buf[0], "%02X", mUartRecvPackage[0]&0xFF);
|
||||||
sprintf(&buf[2], "%02X", mUartRecvPackage[1]&0xFF);
|
sprintf(&buf[2], "%02X", mUartRecvPackage[1]&0xFF);
|
||||||
sprintf(&buf[4], "%02X", mUartRecvPackage[2]&0xFF);
|
sprintf(&buf[4], "%02X", mUartRecvPackage[2]&0xFF);
|
||||||
@ -162,14 +183,13 @@ try{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( 0 == strHeadFlag.compare("DEDFEF") ) {
|
if ( 0 == strHeadFlag.compare("DEDFEF") ) {
|
||||||
update = true;
|
|
||||||
LOG_INFO("ReadHandle flag = %s\n",strHeadFlag.c_str());
|
LOG_INFO("ReadHandle flag = %s\n",strHeadFlag.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 0 == strHeadFlag.compare("AA55AA") ) {
|
if ( 0 == strHeadFlag.compare("AA55AA") ) {
|
||||||
DealRecvData(mUartRecvPackage);
|
DealRecvData(mUartRecvPackage);
|
||||||
}
|
}
|
||||||
}
|
}}
|
||||||
|
|
||||||
}
|
}
|
||||||
//读串口循环
|
//读串口循环
|
||||||
@ -261,16 +281,14 @@ void int2bytes(int i, unsigned char* bytes, int size) {
|
|||||||
bytes[2] = (unsigned char) ((0xff0000 & i) >> 16);
|
bytes[2] = (unsigned char) ((0xff0000 & i) >> 16);
|
||||||
bytes[3] = (unsigned char) ((0xff000000 & i) >> 24);
|
bytes[3] = (unsigned char) ((0xff000000 & i) >> 24);
|
||||||
}
|
}
|
||||||
void Uart::UpdateWirelessNode(unsigned char* id)
|
bool Uart::ReadUpdatePackge(unsigned char* pDestShortAddr)
|
||||||
{
|
{
|
||||||
LOG_INFO("UpdateWirelessNode id = %02x %02x\n",id[0],id[1]);
|
|
||||||
|
|
||||||
//compare hardversion in update list
|
//compare hardversion in update list
|
||||||
std::vector<std::string> strHWversion;
|
std::vector<std::string> strHWversion;
|
||||||
std::string strFileName = "";
|
std::string strFileName = "";
|
||||||
strHWversion = ReadStrByOpt("/opt/update/DataNode/config.json",strFileName);
|
strHWversion = ReadStrByOpt("/opt/update/DataNode/config.json",strFileName);
|
||||||
char gethardVersion_sql[32] = { 0 };
|
char gethardVersion_sql[32] = { 0 };
|
||||||
sprintf(gethardVersion_sql, "zigbeeShortAddr='%s'", id);
|
sprintf(gethardVersion_sql, "zigbeeShortAddr='%02x%02x'", pDestShortAddr[0],pDestShortAddr[1]);
|
||||||
std::string hardVersion = sql_ctl->GetData(T_SENSOR_INFO(TNAME), T_SENSOR_INFO(HARDVERSION), gethardVersion_sql);
|
std::string hardVersion = sql_ctl->GetData(T_SENSOR_INFO(TNAME), T_SENSOR_INFO(HARDVERSION), gethardVersion_sql);
|
||||||
int thisindex = -1;
|
int thisindex = -1;
|
||||||
for(int i = 0; i < strHWversion.size();i++){
|
for(int i = 0; i < strHWversion.size();i++){
|
||||||
@ -281,8 +299,57 @@ void Uart::UpdateWirelessNode(unsigned char* id)
|
|||||||
}
|
}
|
||||||
printf("thisindex = %d\n",thisindex);
|
printf("thisindex = %d\n",thisindex);
|
||||||
if(thisindex < 0)
|
if(thisindex < 0)
|
||||||
return;
|
return false;
|
||||||
|
FILE * pFile=NULL;
|
||||||
|
int thisSize = 0;
|
||||||
|
strFileName = "/opt/update/DataNode/" + strFileName;
|
||||||
|
printf("strFileName = %s\n",strFileName.c_str());
|
||||||
|
pFile = fopen (strFileName.c_str(),"rb");
|
||||||
|
if (pFile==NULL){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (fgetc(pFile) != EOF) {
|
||||||
|
++thisSize;
|
||||||
|
}
|
||||||
|
fclose (pFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned short localAddr = 0x9999;
|
||||||
|
WriteShortAddr_DistAddr2Zigbee(localAddr,pDestShortAddr);
|
||||||
|
unsigned char Data[12]={0x00};
|
||||||
|
unsigned char size[4]={0x00};
|
||||||
|
printf("thisSize = %d\n",thisSize);
|
||||||
|
//帧头[3byte] 节点地址[2byte] 数据类型[1byte] 序号[1byte] 升级包大小[4byte] CRC校验[1byte]
|
||||||
|
Data[0]=0xAA;
|
||||||
|
Data[1]=0x55;
|
||||||
|
Data[2]=0xAA;
|
||||||
|
Data[3]=pDestShortAddr[0];
|
||||||
|
Data[4]=pDestShortAddr[1];
|
||||||
|
Data[5]=0x07;
|
||||||
|
Data[6]=0x00;
|
||||||
|
int2bytes(thisSize,size,4);
|
||||||
|
Data[7]=size[3];
|
||||||
|
Data[8]=size[2];
|
||||||
|
Data[9]=size[1];
|
||||||
|
Data[10]=size[0];
|
||||||
|
unsigned char tmp = 0x00;
|
||||||
|
for(int i = 0 ; i < 11;i++){
|
||||||
|
tmp +=Data[i];
|
||||||
|
}
|
||||||
|
Data[11]=tmp;
|
||||||
|
WriteToUart((const char*)Data,12);
|
||||||
|
boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
|
||||||
|
ReadFromUart();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
void Uart::UpdateWirelessNode(unsigned short shortAdd)
|
||||||
|
{
|
||||||
|
LOG_INFO("UpdateWirelessNode id = %02x %02x\n",UINT16_HIGH(shortAdd),UINT16_LOW(shortAdd));
|
||||||
|
|
||||||
|
std::string strFileName = "";
|
||||||
|
ReadStrByOpt("/opt/update/DataNode/config.json",strFileName);
|
||||||
FILE * pFile=NULL;
|
FILE * pFile=NULL;
|
||||||
int thisSize = 0;
|
int thisSize = 0;
|
||||||
char *buffer=NULL;
|
char *buffer=NULL;
|
||||||
@ -298,40 +365,19 @@ void Uart::UpdateWirelessNode(unsigned char* id)
|
|||||||
buffer = (char*)malloc(thisSize);//
|
buffer = (char*)malloc(thisSize);//
|
||||||
fread (buffer, sizeof (char), thisSize, pFile);
|
fread (buffer, sizeof (char), thisSize, pFile);
|
||||||
fclose (pFile);
|
fclose (pFile);
|
||||||
unsigned char Data[12]={0x00};
|
|
||||||
unsigned char size[4]={0x00};
|
|
||||||
|
|
||||||
//帧头[3byte] 节点地址[2byte] 数据类型[1byte] 序号[1byte] 升级包大小[4byte] CRC校验[1byte]
|
|
||||||
Data[0]=0xAA;
|
|
||||||
Data[1]=0x55;
|
|
||||||
Data[2]=0xAA;
|
|
||||||
Data[3]=id[0] & 0xFF;
|
|
||||||
Data[4]=id[1] & 0xFF;
|
|
||||||
Data[5]=0x07;
|
|
||||||
Data[6]=0x00;
|
|
||||||
int2bytes(thisSize,size,4);
|
|
||||||
Data[7]=size[3];
|
|
||||||
Data[8]=size[2];
|
|
||||||
Data[9]=size[1];
|
|
||||||
Data[10]=size[0];
|
|
||||||
unsigned char tmp = 0x00;
|
|
||||||
for(int i = 0 ; i < 11;i++){
|
|
||||||
tmp +=Data[i];
|
|
||||||
}
|
|
||||||
Data[11]=tmp;
|
|
||||||
WriteToUart((const char*)Data,12);
|
|
||||||
boost::this_thread::sleep(boost::posix_time::milliseconds(100));
|
|
||||||
int Count = thisSize / 92;
|
int Count = thisSize / 92;
|
||||||
int lastSize = thisSize % 92;
|
int lastSize = thisSize % 92;
|
||||||
unsigned char UpdateData[100]={0x00};
|
unsigned char UpdateData[100]={0x00};
|
||||||
//帧头[3byte] 节点地址[2byte] 数据类型[1byte] 序号[1byte] 数据包[92byte] CRC校验[1byte]
|
//帧头[3byte] 节点地址[2byte] 数据类型[1byte] 序号[1byte] 数据包[92byte] CRC校验[1byte]
|
||||||
print_info("Start Update!!! file Size = %d\n",thisSize);
|
print_info("Start Update!!! file Size = %d\n",thisSize);
|
||||||
|
unsigned char tmp = 0x00;
|
||||||
for(int j = 0; j < Count;j++){
|
for(int j = 0; j < Count;j++){
|
||||||
UpdateData[0]=0xAA;
|
UpdateData[0]=0xAA;
|
||||||
UpdateData[1]=0x55;
|
UpdateData[1]=0x55;
|
||||||
UpdateData[2]=0xAA;
|
UpdateData[2]=0xAA;
|
||||||
UpdateData[3]=id[0];
|
UpdateData[3]=UINT16_HIGH(shortAdd);
|
||||||
UpdateData[4]=id[1];
|
UpdateData[4]=UINT16_LOW(shortAdd);
|
||||||
UpdateData[5]=0x08;
|
UpdateData[5]=0x08;
|
||||||
UpdateData[6]=0xff & j;
|
UpdateData[6]=0xff & j;
|
||||||
memcpy(&UpdateData[7],buffer+92*j,92);
|
memcpy(&UpdateData[7],buffer+92*j,92);
|
||||||
@ -341,7 +387,7 @@ void Uart::UpdateWirelessNode(unsigned char* id)
|
|||||||
}
|
}
|
||||||
UpdateData[99] = tmp;
|
UpdateData[99] = tmp;
|
||||||
WriteToUart((const char*)UpdateData,100);
|
WriteToUart((const char*)UpdateData,100);
|
||||||
boost::this_thread::sleep(boost::posix_time::milliseconds(100));
|
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
|
||||||
memset(UpdateData,0x00,sizeof(UpdateData));
|
memset(UpdateData,0x00,sizeof(UpdateData));
|
||||||
}
|
}
|
||||||
printf("Count =%d,lastSize = %d\n",Count,lastSize);
|
printf("Count =%d,lastSize = %d\n",Count,lastSize);
|
||||||
@ -349,8 +395,8 @@ void Uart::UpdateWirelessNode(unsigned char* id)
|
|||||||
UpdateData[0]=0xAA;
|
UpdateData[0]=0xAA;
|
||||||
UpdateData[1]=0x55;
|
UpdateData[1]=0x55;
|
||||||
UpdateData[2]=0xAA;
|
UpdateData[2]=0xAA;
|
||||||
UpdateData[3]=id[0];
|
UpdateData[3]=UINT16_HIGH(shortAdd);
|
||||||
UpdateData[4]=id[1];
|
UpdateData[4]=UINT16_LOW(shortAdd);
|
||||||
UpdateData[5]=0x08;
|
UpdateData[5]=0x08;
|
||||||
UpdateData[6]=0xff & Count;
|
UpdateData[6]=0xff & Count;
|
||||||
memcpy(&UpdateData[7],buffer+92*Count,lastSize);
|
memcpy(&UpdateData[7],buffer+92*Count,lastSize);
|
||||||
@ -366,13 +412,16 @@ void Uart::UpdateWirelessNode(unsigned char* id)
|
|||||||
}
|
}
|
||||||
free(buffer);
|
free(buffer);
|
||||||
ZigbeeInit();
|
ZigbeeInit();
|
||||||
update = false;
|
Size = 0;
|
||||||
LOG_INFO("UpdateWirelessNode success");
|
LOG_INFO("UpdateWirelessNode success");
|
||||||
}
|
}
|
||||||
void Uart::DealRecvData(const char *pData)
|
void Uart::DealRecvData(const char *pData)
|
||||||
{
|
{
|
||||||
char buf[8];
|
char buf[8];
|
||||||
|
char shortAdd[8]={0x00};
|
||||||
sprintf(buf, "%02d", pData[5]&0xFF);
|
sprintf(buf, "%02d", pData[5]&0xFF);
|
||||||
|
sprintf(shortAdd, "%02x%02x", pData[3]&0xFF,pData[4]&0xFF);
|
||||||
|
unsigned short ushortAdd = BUILD_UINT16(pData[3]&0xFF,pData[4]&0xFF);
|
||||||
int flag = boost::lexical_cast<int>(buf);
|
int flag = boost::lexical_cast<int>(buf);
|
||||||
print_info("the data package type(1,2,3,4,5,6) is %s,%x\n",buf,pData[5]&0xFF);
|
print_info("the data package type(1,2,3,4,5,6) is %s,%x\n",buf,pData[5]&0xFF);
|
||||||
|
|
||||||
@ -404,7 +453,7 @@ void Uart::DealRecvData(const char *pData)
|
|||||||
break;
|
break;
|
||||||
case 7:{//0x07:升级
|
case 7:{//0x07:升级
|
||||||
|
|
||||||
//DealDataNodeFeature(pData, 1);
|
UpdateWirelessNode(ushortAdd);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -687,15 +736,24 @@ void Uart::DealDataNodeFeature(const char *pData, int flag)
|
|||||||
LOG_INFO("DealDataNodeFeature %02x%02x\n",pRecvData->ShortAddr[0], pRecvData->ShortAddr[1]);
|
LOG_INFO("DealDataNodeFeature %02x%02x\n",pRecvData->ShortAddr[0], pRecvData->ShortAddr[1]);
|
||||||
|
|
||||||
std::string strShortAddr = std::string(buf);
|
std::string strShortAddr = std::string(buf);
|
||||||
print_info("zigbeeShortAddr='%s'", strShortAddr.c_str());
|
print_info("zigbeeShortAddr='%s'\n", strShortAddr.c_str());
|
||||||
if (1 == flag) {
|
if (1 == flag) {
|
||||||
print_info("recv wave minute\n");
|
print_info("recv wave minute\n");
|
||||||
unsigned short shortAddr = 0x9999;
|
unsigned short localAddr = 0x9999;
|
||||||
|
bool bUpdate = ReadUpdatePackge(pRecvData->ShortAddr);
|
||||||
WriteShortAddr_DistAddr2Zigbee(shortAddr,pRecvData->ShortAddr);
|
if(!bUpdate){
|
||||||
|
GlobalConfig::ZigbeeInfo_G.MyAddr = "9999";
|
||||||
|
WriteShortAddr2Zigbee(localAddr);
|
||||||
|
}
|
||||||
|
/* bool bUpdate = ReadUpdatePackge(pRecvData->ShortAddr,buf);
|
||||||
|
if(bUpdate){
|
||||||
|
WriteShortAddr_DistAddr2Zigbee(shortAddr,buf);
|
||||||
|
}else{
|
||||||
|
WriteShortAddr2Zigbee(shortAddr);
|
||||||
|
}*/
|
||||||
// LOG_INFO("[DealDataNodeFeature] ZigBee PanID: %s ; Channel: %d ; MyAddr : %4x ",GlobalConfig::ZigbeeInfo_G.PanID.c_str(),GlobalConfig::ZigbeeInfo_G.Channel,
|
// LOG_INFO("[DealDataNodeFeature] ZigBee PanID: %s ; Channel: %d ; MyAddr : %4x ",GlobalConfig::ZigbeeInfo_G.PanID.c_str(),GlobalConfig::ZigbeeInfo_G.Channel,
|
||||||
// (unsigned short)GlobalConfig::Zigbee_G.MyAddr);
|
// (unsigned short)GlobalConfig::Zigbee_G.MyAddr);
|
||||||
UpdateWirelessNode(pRecvData->ShortAddr);
|
|
||||||
// 进入传输原始数据状态,启动计数 60秒
|
// 进入传输原始数据状态,启动计数 60秒
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingFlag_G = ENTER_TRANSMITTING_STATUS;
|
GlobalConfig::EnterZigBeeWaveTransmittingFlag_G = ENTER_TRANSMITTING_STATUS;
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingCnt_G = 0;
|
GlobalConfig::EnterZigBeeWaveTransmittingCnt_G = 0;
|
||||||
@ -750,19 +808,19 @@ void Uart::DealDataNodeFeature(const char *pData, int flag)
|
|||||||
, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage);
|
||||||
char whereCon[64] = {0};
|
char whereCon[64] = {0};
|
||||||
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-S").c_str());
|
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-S").c_str());
|
||||||
if ( 0 == sql_ctl->GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon) ) {
|
// if ( 0 == sql_ctl->GetTableRows(T_DATASTATIC_INFO(TNAME), whereCon) ) {
|
||||||
print_info("insert static data to sql\n");
|
print_info("insert static data to sql\n");
|
||||||
char insertSql[1024] = { 0 };
|
char insertSql[1024] = { 0 };
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','%s'",
|
sprintf(insertSql, "'%s','%s','%f','%f','%d','%d','%s'",
|
||||||
strLongAddr.c_str(), (strLongAddr + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str());
|
strLongAddr.c_str(), (strLongAddr + "-S").c_str(), dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str());
|
||||||
sql_ctl->InsertData(T_DATASTATIC_INFO(TNAME), insertSql);
|
sql_ctl->InsertData(T_DATASTATIC_INFO(TNAME), insertSql);
|
||||||
} else {
|
// } else {
|
||||||
print_info("update static data to sql\n");
|
/* print_info("update static data to sql\n");
|
||||||
char updateSql[1024] = { 0 };
|
char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s'",\
|
sprintf(updateSql, "temTop='%f',temBot='%f',dip='%d',voltage='%d',timeStamp='%s'",\
|
||||||
dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str());
|
dataStatic.TemTop, dataStatic.TemBot, dataStatic.Dip, dataStatic.Voltage, nowTimetamp.c_str());
|
||||||
sql_ctl->UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon);
|
sql_ctl->UpdateTableData(T_DATASTATIC_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
DataRecvDym dataDymX;
|
DataRecvDym dataDymX;
|
||||||
memset(buf, 0, 8);
|
memset(buf, 0, 8);
|
||||||
@ -1075,20 +1133,21 @@ void Uart::DealDataNodeFeature(const char *pData, int flag)
|
|||||||
|
|
||||||
memset(whereCon, 0, 64);
|
memset(whereCon, 0, 64);
|
||||||
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-X").c_str());
|
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-X").c_str());
|
||||||
if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
// if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
||||||
char insertSql[1024] = { 0 };
|
// char insertSql[1024] = { 0 };
|
||||||
|
memset(insertSql,0x00,sizeof(insertSql));
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
||||||
strLongAddr.c_str(), (strLongAddr + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
||||||
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
||||||
} else {
|
// } else {
|
||||||
char updateSql[1024] = { 0 };
|
/* char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
||||||
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
||||||
dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
||||||
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
} */
|
||||||
print_info("x:%s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
print_info("x:%s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
||||||
strLongAddr.c_str(), (strLongAddr + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-X").c_str(), dataDymX.DiagnosisPk, dataDymX.IntegratPk, dataDymX.IntegratRMS, dataDymX.RmsValues, dataDymX.EnvelopEnergy,\
|
||||||
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
dataDymX.Amp1, dataDymX.Amp2, dataDymX.Amp3, dataDymX.Amp4, dataDymX.Amp5,dataDymX.Phase1, dataDymX.Phase2, dataDymX.Phase3, dataDymX.Phase4, nowTimetamp.c_str());
|
||||||
@ -1424,20 +1483,21 @@ void Uart::DealDataNodeFeature(const char *pData, int flag)
|
|||||||
|
|
||||||
memset(whereCon, 0, 64);
|
memset(whereCon, 0, 64);
|
||||||
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-Y").c_str());
|
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-Y").c_str());
|
||||||
if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
// if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
||||||
char insertSql[1024] = { 0 };
|
// char insertSql[1024] = { 0 };
|
||||||
|
memset(insertSql,0x00,sizeof(insertSql));
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
||||||
strLongAddr.c_str(), (strLongAddr + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
||||||
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
||||||
} else {
|
// } else {
|
||||||
char updateSql[1024] = { 0 };
|
/* char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
||||||
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
||||||
dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
||||||
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
}*/
|
||||||
print_info("y: %s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
print_info("y: %s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
||||||
strLongAddr.c_str(), (strLongAddr + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-Y").c_str(), dataDymY.DiagnosisPk, dataDymY.IntegratPk, dataDymY.IntegratRMS, dataDymY.RmsValues, dataDymY.EnvelopEnergy,\
|
||||||
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
dataDymY.Amp1, dataDymY.Amp2, dataDymY.Amp3, dataDymY.Amp4, dataDymY.Amp5,dataDymY.Phase1, dataDymY.Phase2, dataDymY.Phase3, dataDymY.Phase4, nowTimetamp.c_str());
|
||||||
@ -1773,20 +1833,21 @@ void Uart::DealDataNodeFeature(const char *pData, int flag)
|
|||||||
|
|
||||||
memset(whereCon, 0, 64);
|
memset(whereCon, 0, 64);
|
||||||
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-Z").c_str());
|
sprintf(whereCon, "channelID='%s'", (strLongAddr + "-Z").c_str());
|
||||||
if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
// if ( 0 == sql_ctl->GetTableRows(T_DATA_INFO(TNAME), whereCon) ) {
|
||||||
char insertSql[1024] = { 0 };
|
// char insertSql[1024] = { 0 };
|
||||||
|
memset(insertSql,0x00,sizeof(insertSql));
|
||||||
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
sprintf(insertSql, "'%s','%s','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%f','%s'",
|
||||||
strLongAddr.c_str(), (strLongAddr + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
||||||
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
sql_ctl->InsertData(T_DATA_INFO(TNAME), insertSql);
|
||||||
} else {
|
/* } else {
|
||||||
char updateSql[1024] = { 0 };
|
char updateSql[1024] = { 0 };
|
||||||
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
sprintf(updateSql, "diagnosisPk='%f',integratPk='%f',integratRMS='%f',rmsValues='%f',envelopEnergy='%f',\
|
||||||
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
Amp1='%f',Amp2='%f',Amp3='%f',Amp4='%f',Amp5='%f',Phase1='%f',Phase2='%f',Phase3='%f',Phase4='%f',timeStamp='%s'",\
|
||||||
dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
||||||
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
||||||
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
sql_ctl->UpdateTableData(T_DATA_INFO(TNAME), updateSql, whereCon);
|
||||||
}
|
} */
|
||||||
print_info("Z: %s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
print_info("Z: %s,%s,diagnosisPk=%f,integratPk=%f,integratRMS=%f,rmsValues=%f,envelopEnergy=%f,Amp1=%f,Amp2=%f,Amp3=%f,Amp4=%f,Amp5=%f,Phase1=%f,Phase2=%f,Phase3=%f,Phase4=%f,timeStamp=%s\n",\
|
||||||
strLongAddr.c_str(), (strLongAddr + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
strLongAddr.c_str(), (strLongAddr + "-Z").c_str(), dataDymZ.DiagnosisPk, dataDymZ.IntegratPk, dataDymZ.IntegratRMS, dataDymZ.RmsValues, dataDymZ.EnvelopEnergy,\
|
||||||
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
dataDymZ.Amp1, dataDymZ.Amp2, dataDymZ.Amp3, dataDymZ.Amp4, dataDymZ.Amp5,dataDymZ.Phase1, dataDymZ.Phase2, dataDymZ.Phase3, dataDymZ.Phase4, nowTimetamp.c_str());
|
||||||
@ -1877,11 +1938,12 @@ void Uart::DealWaveThread() //连续三秒没有原始数据,则处理缓存
|
|||||||
if (tmpTimeStamp > 3 ) { // TODO: 时间戳需要修改为绝对值,可能丢失时钟,或工作一会儿,才同步时钟,可能减出异常值 print_info("yes!The time difference is more than 3,nowTimeStamp : %ld m_TimeStamp : %ld\n", nowTimeStamp, m_TimeStamp);
|
if (tmpTimeStamp > 3 ) { // TODO: 时间戳需要修改为绝对值,可能丢失时钟,或工作一会儿,才同步时钟,可能减出异常值 print_info("yes!The time difference is more than 3,nowTimeStamp : %ld m_TimeStamp : %ld\n", nowTimeStamp, m_TimeStamp);
|
||||||
DealWave();
|
DealWave();
|
||||||
m_TimeStamp = 0;
|
m_TimeStamp = 0;
|
||||||
pUart->UpdateZigbeeInfoCtrl();
|
Size = 0;
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingFlag_G = NO_ENTER_TRANSMITTING_STATUS;
|
GlobalConfig::EnterZigBeeWaveTransmittingFlag_G = NO_ENTER_TRANSMITTING_STATUS;
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingCnt_G = 0;
|
GlobalConfig::EnterZigBeeWaveTransmittingCnt_G = 0;
|
||||||
// 准备重新恢复到 8888 PanID,正常接收特征数据
|
// 准备重新恢复到 8888 PanID,正常接收特征数据
|
||||||
ZigbeeInit();
|
ZigbeeInit();
|
||||||
|
pUart->UpdateZigbeeInfoCtrl();
|
||||||
} else {
|
} else {
|
||||||
print_info("NO! The time difference is less than 3,nowTimeStamp : %ld m_TimeStamp : %ld\n", nowTimeStamp, m_TimeStamp);
|
print_info("NO! The time difference is less than 3,nowTimeStamp : %ld m_TimeStamp : %ld\n", nowTimeStamp, m_TimeStamp);
|
||||||
}
|
}
|
||||||
@ -2064,7 +2126,7 @@ void Uart::DealWave()
|
|||||||
boost::this_thread::sleep(boost::posix_time::seconds(1));
|
boost::this_thread::sleep(boost::posix_time::seconds(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Size = 0;
|
||||||
// memset(buf, 0, 8);
|
// memset(buf, 0, 8);
|
||||||
// sprintf(buf, "%02x%02x", recvTemp.ShortAddr[0], recvTemp.ShortAddr[1]);
|
// sprintf(buf, "%02x%02x", recvTemp.ShortAddr[0], recvTemp.ShortAddr[1]);
|
||||||
// std::string strShortAddr = std::string(buf);
|
// std::string strShortAddr = std::string(buf);
|
||||||
@ -2072,14 +2134,14 @@ void Uart::DealWave()
|
|||||||
}
|
}
|
||||||
void Uart::modify_distaddr_info(unsigned short id, char * zigbee,unsigned char* distAddr)
|
void Uart::modify_distaddr_info(unsigned short id, char * zigbee,unsigned char* distAddr)
|
||||||
{
|
{
|
||||||
/*char command[6];
|
char command[6];
|
||||||
command[0] = 0xDE;
|
command[0] = 0xDE;
|
||||||
command[1] = 0xDF;
|
command[1] = 0xDF;
|
||||||
command[2] = 0xEF;
|
command[2] = 0xEF;
|
||||||
command[3] = 0xD2;
|
command[3] = 0xD2;
|
||||||
command[4] = destaddr[0];
|
command[4] = distAddr[0];
|
||||||
command[5] = destaddr[1];
|
command[5] = distAddr[1];
|
||||||
WriteToUart(command, 6);*/
|
WriteToUart(command, 6);
|
||||||
|
|
||||||
}
|
}
|
||||||
void Uart::modify_info(unsigned short id, char * zigbee)
|
void Uart::modify_info(unsigned short id, char * zigbee)
|
||||||
@ -2167,14 +2229,19 @@ void Uart::WriteShortAddr2Zigbee(unsigned short pad)
|
|||||||
zigbee_reset(tmp, 1);
|
zigbee_reset(tmp, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Uart::WriteShortAddr_DistAddr2Zigbee(unsigned short pad,unsigned char* id)
|
void Uart::WriteShortAddr_DistAddr2Zigbee(unsigned short pad,unsigned char* pDestShortAddr)
|
||||||
{
|
{
|
||||||
print_info("WriteShortAddr2Zigbee : %4x\n", (unsigned short)pad);
|
print_info("WriteShortAddr2Zigbee : %4x\n", (unsigned short)pad);
|
||||||
unsigned short pad1 = pad,tmp;
|
unsigned short pad1 = pad,tmp;
|
||||||
tmp = GlobalConfig::Zigbee_G.MyAddr;
|
tmp = GlobalConfig::Zigbee_G.MyAddr;
|
||||||
swap((char *)&pad1);
|
swap((char *)&pad1);
|
||||||
swap((char *)&tmp);
|
swap((char *)&tmp);
|
||||||
GlobalConfig::Zigbee_G.MyAddr = BUILD_UINT16(id[0],id[1]);
|
char tmpDest[8]={0x00};
|
||||||
|
sprintf(tmpDest,"%02d%02d",pDestShortAddr[0],pDestShortAddr[1]);
|
||||||
|
memcpy(&GlobalConfig::Zigbee_G.DstAddr,pDestShortAddr,2);
|
||||||
|
GlobalConfig::Zigbee_G.MyAddr = pad1;
|
||||||
|
// GlobalConfig::Zigbee_G.DstAddr = (short)atoi((char*)tmpDest);
|
||||||
|
printf("DstAddr = %d\n",GlobalConfig::Zigbee_G.DstAddr);
|
||||||
GlobalConfig::ZigbeeInfo_G.MyAddr = "9999";
|
GlobalConfig::ZigbeeInfo_G.MyAddr = "9999";
|
||||||
modify_info(tmp, (char *)& GlobalConfig::Zigbee_G);
|
modify_info(tmp, (char *)& GlobalConfig::Zigbee_G);
|
||||||
zigbee_reset(tmp, 1);
|
zigbee_reset(tmp, 1);
|
||||||
|
@ -28,7 +28,7 @@ private :
|
|||||||
boost::asio::io_service mIoSev;
|
boost::asio::io_service mIoSev;
|
||||||
boost::asio::serial_port mUart;
|
boost::asio::serial_port mUart;
|
||||||
int mRdLength;
|
int mRdLength;
|
||||||
enum{BUF_LENGTH = 1024};
|
enum{BUF_LENGTH = 1107};
|
||||||
char mUartRecvBuf[BUF_LENGTH];
|
char mUartRecvBuf[BUF_LENGTH];
|
||||||
boost::mutex mLock;
|
boost::mutex mLock;
|
||||||
boost::asio::io_service::strand mStrand;
|
boost::asio::io_service::strand mStrand;
|
||||||
@ -58,8 +58,9 @@ public :
|
|||||||
void WriteChanl2Zigbee(unsigned char pad);
|
void WriteChanl2Zigbee(unsigned char pad);
|
||||||
void WritePanId2Zigbee(unsigned short pad);
|
void WritePanId2Zigbee(unsigned short pad);
|
||||||
void WriteShortAddr2Zigbee(unsigned short pad);
|
void WriteShortAddr2Zigbee(unsigned short pad);
|
||||||
void WriteShortAddr_DistAddr2Zigbee(unsigned short pad,unsigned char* id);
|
void WriteShortAddr_DistAddr2Zigbee(unsigned short pad,unsigned char* pDestShortAddr);
|
||||||
void UpdateWirelessNode(unsigned char* id);
|
void UpdateWirelessNode(unsigned short shortAdd);
|
||||||
|
bool ReadUpdatePackge(unsigned char* shortAddr);
|
||||||
virtual void DataAnalysis_R(DevDataOfGwid &pData);
|
virtual void DataAnalysis_R(DevDataOfGwid &pData);
|
||||||
virtual void DataAnalysis_W(DevData &pData,bool pFlag);
|
virtual void DataAnalysis_W(DevData &pData,bool pFlag);
|
||||||
virtual void ThreadInit();
|
virtual void ThreadInit();
|
||||||
@ -69,7 +70,6 @@ private :
|
|||||||
onReceiveUart m_callback;
|
onReceiveUart m_callback;
|
||||||
std::vector<RecvData> m_VecWaveData;
|
std::vector<RecvData> m_VecWaveData;
|
||||||
unsigned long m_TimeStamp;
|
unsigned long m_TimeStamp;
|
||||||
bool update;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user