#ifndef PARAMETER_DEFINATION_HPP_
#define PARAMETER_DEFINATION_HPP_

#include <string>
#include "scheduler/wave_feature_set.hpp"

struct Param_01 {
    int mMode; // 0:登陆  1:更改密码
    std::string mUserName;
    std::string mPassWord;
    std::string mPassWordNew;
    Param_01() : mMode(0), mUserName(""), mPassWord(""), mPassWordNew(""){};
};

struct Param_02 {
    int mMode; // 0:配置时间  1:获取时间
    int mSetType;
    int mTimeStamp;
    Param_02() : mMode(0), mSetType(0), mTimeStamp(0){};
};

struct Param_20 {
    int mMode; // 0: 配置   1:获取
    std::string mCmdSerial;
    std::string mDataWatchName;
    std::string mDataWatchAssetId;
    std::string mDataWatchAddedBy;
    Param_20() : mMode(0), mCmdSerial(""), mDataWatchName(""), mDataWatchAssetId(""), mDataWatchAddedBy(""){};
};

struct Param_22 {
    int mMode;
    std::string mCmdSerial;
    std::string mTimeZone;
    Param_22() : mMode(0), mCmdSerial(""), mTimeZone(""){};
};

struct Param_23 {
    int mMode;
    std::string mCmdSerial;
    std::string mServerIp;
    std::string mPort;
    std::string mCommMode; // 通信模式，有线通信模式 = 1；4G LTE 无线通信模式 = 2
    std::string mUserName;
    std::string mPassword;
    std::string mAPN;
    Param_23() : mMode(0), mCmdSerial(""), mServerIp(""), mPort(""), mCommMode(""), mUserName("chaos"), mPassword("HSD272*#xkd"), mAPN(""){};
};

struct Param_24 {
    int mMode;
    std::string mCmdSerial;
    std::string mFileServerIp;
    std::string mFilePort;
    std::string mFileServerSwitch;
    Param_24() : mMode(0), mCmdSerial(""), mFileServerIp(""), mFilePort(""), mFileServerSwitch(""){};
};

struct Param_25 {
    int mMode;
    std::string mNet;
    std::string mCmdSerial;
    std::string mDnsName;
    std::string mNetworkPortStatus;
    std::string mGateway;
    std::string mSubnetMask;
    std::string mIp;
    std::string mHostName;
    Param_25() : mMode(0), mCmdSerial(""), mDnsName(""), mGateway(""), mSubnetMask(""), mIp(""), mHostName(""){};
};

struct Param_09 {
    int mPackageFlag;
    Param_09() : mPackageFlag(0){};
};

struct Param_10 {
    std::string strDataNode;
    std::string strStatic;
    std::string straxis;
    std::string timeStart;
    std::string timeEnd;
    std::string MeasurementID;
    int mPackageFlag;
    Param_10() : strDataNode(""), strStatic(""), mPackageFlag(0){};
};

struct Param_11 {
    std::string DataNodeNo;
    Param_11() : DataNodeNo(""){};
};

struct Param_26 {
    int mMode;
    std::string mCmdSerial;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_26() : mMode(0), mCmdSerial(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_27 {
    int mMode;
    std::string mCmdSerial;
    std::string mDataNodeNo;
    std::string mShortAddr;
    std::string mMeasurementID;
    std::string mType;
    Param_27() : mMode(0), mCmdSerial(""), mDataNodeNo(""),mShortAddr(""),mMeasurementID(""), mType(""){};
};

struct Param_28 {
    int mMode;
    std::string mDataNodeNo;
    std::string mDataNodeName;
    Param_28() : mMode(0), mDataNodeNo(""), mDataNodeName(""){};
};

struct Param_29 {
    int mMode;
    std::string mCmdSerial;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_29() : mMode(0), mCmdSerial(""), mChannelId(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_30 {
    int mMode;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_30() : mMode(0), mChannelId(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_40 {
    int mMode;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    int StartFrequency;
    int EndFrequency;
    Param_40() : mMode(0), mChannelId(""), mDataNodeNo(""), mPackageFlag(0), StartFrequency(0), EndFrequency(0){};
};

struct Param_41 {
    std::string mdataNodeName;
    std::string mdataNodeNo;
    std::string mMeasurementID;
    std::string mShortAddr;
    int mfeatureInterVal;
    int mwaveInterVal;
    int msamplingRate;
    int mrange;
    int mAccSampleTime;
    std::string mstartBrands;
    std::string mstopBrands;
    std::string menvelopeBandPass;
    int mviff;
    std::string mfaultFrequency;
    int ZigbeePower;
    int ZigbeeRetry;
    std::string nodeWaveSend;
    Param_41() : mdataNodeName(""), mdataNodeNo(""), mMeasurementID(""),mShortAddr("") ,mfeatureInterVal(5), mwaveInterVal(120), msamplingRate(0), mrange(0),
    		mAccSampleTime(0), mstartBrands(""), mstopBrands(""), menvelopeBandPass(""), mviff(0), mfaultFrequency(""),  nodeWaveSend{""} {};
};

struct Param_42 {
    std::string fileName;
    Param_42() : fileName(""){};
};

struct Param_31 {
    int mMode;
    std::string mChannelId;
    std::string mPanID;
    Param_31() : mMode(0), mChannelId(""), mPanID(""){};
};

struct Param_32 {
    int mMode;
    std::string mChannelId;
    int mPackageFlag;
    Param_32() : mMode(0), mChannelId(""), mPackageFlag(0){};
};

struct Param_33 {
    int mMode;
    std::string mCmdSerial;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_33() : mMode(0), mCmdSerial(""), mChannelId(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_34 {
    int mMode;
    std::string mCmdSerial;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_34() : mMode(0), mCmdSerial(""), mChannelId(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_35 {
    int mMode;
    std::string mTriggerInterValTime;
    std::string mTriggerInterValSwitch;
    Param_35() : mMode(0), mTriggerInterValTime(""), mTriggerInterValSwitch(){};
};

struct Param_36 {
    int mMode;
    std::string mTriggerTime;
    std::string mTriggerTimeSwitch;
    Param_36() : mMode(0), mTriggerTime(""), mTriggerTimeSwitch(){};
};

struct Param_37 {
    int mMode;
    std::string mTriggerDelayTime;
    std::string mTriggerDelaySwitch;
    Param_37() : mMode(0), mTriggerDelayTime(""), mTriggerDelaySwitch(){};
};

struct Param_39 {
    int mMode;
    int mPage;
    int mNumber;
};

struct Param_45 {
    int mMode; // 0: 配置   1:获取
    std::string mCmdSerial;
    std::string mCountryId;
    std::string mProvincesId;
    std::string mCityListId;
    Param_45() : mMode(0), mCmdSerial(""), mCountryId(""), mProvincesId(""), mCityListId(""){};
};

struct Param_46 {
    int mMode;
    std::string mFileName;
    Param_46() : mMode(0), mFileName(""){};
};

struct Param_47 {
    int mMode;
    std::string mFileName;
    Param_47() : mMode(0), mFileName(""){};
};

struct Param_51 {
    int mMode;
    std::string strGateWayMAC;
    std::string strGateWayLocation;
    Param_51() : mMode(-1), strGateWayLocation(""){};
};

struct Param_52 {
    int mMode;
    std::string mCmdSerial;
    std::string mSsid;
    std::string mPassWord;
};

struct Param_53 {
    int mMode;
    std::string mdataNodeNo;
    std::string mUpdateKey;
    std::string mUpdateValue;
    std::string mUpdateKey2;
    std::string mUpdateValue2;
    std::string mUpdateKey3;
    std::string mUpdateValue3;
    Param_53() : mUpdateKey2(""), mUpdateValue2(""), mUpdateKey3(""), mUpdateValue3(""){};
};

struct Param_54 {
    int mMode;
    std::string mCmdSerial;
    std::string mDataNodeNo;
    int mPackageFlag;
    Param_54() : mMode(0), mCmdSerial(""), mDataNodeNo(""), mPackageFlag(0){};
};

struct Param_55 {
    int mMode;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    int StartFrequency;
    int EndFrequency;
    Param_55() : mMode(0), mChannelId(""), mDataNodeNo(""), mPackageFlag(0), StartFrequency(0), EndFrequency(0){};
};

struct Param_56 {
    int mMode;
    std::string mChannelId;
    std::string mDataNodeNo;
    int mPackageFlag;
    int StartFrequency;
    int EndFrequency;
    Param_56() : mMode(0), mChannelId(""), mDataNodeNo(""), mPackageFlag(0), StartFrequency(0), EndFrequency(0){};
};

struct Param_57 {
    int mMode;
    int mZigbeePowerEnable;
    Param_57() : mZigbeePowerEnable(0){};
};

struct Param_58 {
    int mMode;
    int featureInterVal;
    int waveInterVal;
    int maxSensorNum;
    int sensorCount;
    int waveResendNum;
    int resend;
    Param_58() : mMode(0),featureInterVal(0),waveInterVal(0),maxSensorNum(0),sensorCount(0),waveResendNum(0),resend(0){};
};

struct Param_59 {
    int mMode;
    std::string DataNodeNo;
    std::string straxis;
    Param_59() : mMode(0),DataNodeNo(""),straxis(""){};
};
struct Param_60 {
    int mMode;
    std::string fileName;
    int product;
    std::string mShortAddr;
    std::vector<std::string> dataNodeNo;
    Param_60() :mMode(0), fileName(""),product(0),mShortAddr(""){};
};
struct Param_61 {
    int mMode;
    std::string MeasurementID;
    std::string straxis;
    std::string timeStart;
    std::string timeEnd;
    int mPackageFlag;
    Param_61() : mMode(0),MeasurementID(""),straxis(""),mPackageFlag(0){};
};
struct Param_62 {
    int mMode;
    std::string MeasurementID;
    std::string straxis;
    std::string timeStart;
    std::string timeEnd;
    int mPackageFlag;
    Param_62() : mMode(0),MeasurementID(""),straxis(""),timeStart(""),timeEnd(""),mPackageFlag(0){};
};
struct Param_63 {
    
    int mMode;
    bool partial;
    std::vector<FeatureEntryUploadCfg> cfg;
    Param_63() : mMode(0),partial(false){};
};
struct Param_64 {
    
    int mMode;
    bool partial;
    std::vector<FeatureEntryUploadCfg> cfg;
    Param_64() : mMode(0),partial(false){};
};
struct Param_65 {
    
    int mMode;
    int mPackageFlag;
    std::string timeStart;
    std::string timeEnd;
    Param_65() : mMode(0),mPackageFlag(0),timeStart(""),timeEnd(""){};
};
struct Param_66 {
    int mMode;
    int mSensorLooseEnable;
    Param_66() : mSensorLooseEnable(0){};
};

struct Param_67 {
    int mMode;
    int mPackageFlag;
    std::vector<std::string> measurementID;
    Param_67() : mMode(0),mPackageFlag(0){};
};

//0 关闭，1 开启
//0 加速度有效值，1 速度有效值
struct Param_68_info{
    std::string measurementID;
    int status; //0 关闭，1 开启
    int statisticType; //0 加速度有效值，1 速度有效值
    float threshold;
    Param_68_info():measurementID(""),status(0),statisticType(0),threshold(0.0){};
};

struct Param_68 {
    int mMode;
    int lowSignal;
    int signalThreshold;
    int lowBatteryLevel;
    int batteryLevelThreshold;
    int shutdownDetection;
    std::vector<Param_68_info> vecParam68;
    Param_68():lowSignal(0),signalThreshold(0),lowBatteryLevel(0),batteryLevelThreshold(0),shutdownDetection(0){};
};

struct Param_69_info{
    std::string measurementID;
    int status; //0 关闭，1 开启
    int trigerType; //0 单次触发，1 多次触发
    int statisticType; //0 加速度有效值，1 速度有效值
    float threshold;
    Param_69_info():measurementID(""),status(0),trigerType(0),statisticType(0),threshold(0.0){};    
};
struct Param_69{
    int mMode;
    bool trigerThresholdEnable;
    std::vector<Param_69_info> vecParam69;
    Param_69():mMode(0),trigerThresholdEnable(0){};
};

struct Param_70{
    int mPackageFlag;
    std::string timeStart;
    std::string timeEnd;
    Param_70():mPackageFlag(0),timeStart(""),timeEnd(""){};
};

struct Param_71{
    int mPackageFlag;
    std::string timeStart;
    std::string timeEnd;
    Param_71():mPackageFlag(0),timeStart(""),timeEnd(""){};
};

// 无线温度传感器(蓝牙)
struct Param_100{
    int mPackageFlag;
    Param_100() : mPackageFlag(0){};
};

struct Param_101{
    std::string mac;
    std::string timeStart;
    std::string timeEnd;
    int mPackageFlag;
    Param_101() : mac(""),timeStart(""),timeEnd(""),mPackageFlag(0){};
};

struct Param_103{
    std::string mac;
    std::string name;
    std::string operate; 
    Param_103() : mac(""),name(""),operate(""){};
};
#endif // PARAMETER_DEFINATION_HPP_
