Merge branch '测试2' of http://192.168.1.22:3000/zw/Linux_Front1056 into 测试2
This commit is contained in:
29
LFtid1056/boot/feservice
Normal file
29
LFtid1056/boot/feservice
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
export CLOUD_PATH=/home/pq/zwproject/LFtid1056
|
||||
|
||||
if [ -z "$CLOUD_PATH" ]; then
|
||||
echo "Error: CLOUD_PATH is not set. Please set it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
$CLOUD_PATH/boot/start_fe.sh
|
||||
;;
|
||||
|
||||
'stop')
|
||||
$CLOUD_PATH/boot/stop_fe.sh
|
||||
;;
|
||||
|
||||
'restart')
|
||||
$CLOUD_PATH/boot/stop_fe.sh
|
||||
$CLOUD_PATH/boot/start_fe.sh
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: feservice start|stop|restart"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
62
LFtid1056/boot/ps_fe.sh
Normal file
62
LFtid1056/boot/ps_fe.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========= 0. 获取脚本所在路径的上一层,设置为 FEP_ENV =========
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
FEP_ENV="$(dirname "$SCRIPT_DIR")"
|
||||
export FEP_ENV
|
||||
|
||||
# ========= 1. 初始化软连接 =========
|
||||
TEMP_LINK_CREATED=0
|
||||
if [ ! -L "/FeProject" ]; then
|
||||
if [ ! -e "/FeProject" ]; then
|
||||
sudo ln -s "$FEP_ENV" /FeProject
|
||||
TEMP_LINK_CREATED=1
|
||||
echo "Temporary symlink /FeProject created."
|
||||
else
|
||||
echo "/FeProject exists but is not a symlink. Please check manually."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$FEP_ENV" ]; then
|
||||
echo "Error: FEP_ENV is not set. Please set it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RUNTIME_CF_FILE="$FEP_ENV/etc/runtime.cf"
|
||||
|
||||
while read LINE ; do
|
||||
if [ -n "$LINE" ] ; then
|
||||
if [ ${LINE:0:1} != "#" ]; then
|
||||
BINPATH=`echo $LINE | awk -F '^' '{printf $1}'`
|
||||
BINPATH=`echo "$BINPATH" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $BINPATH
|
||||
BIN=`echo $LINE | awk -F '^' '{printf $2}'`
|
||||
BIN=`echo "$BIN" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $BIN
|
||||
SPECIAL=`echo $LINE | awk -F '^' '{printf $4}'`
|
||||
SPECIAL=`echo "$SPECIAL" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $SPECIAL
|
||||
|
||||
SLEEPSEC=`echo $LINE | awk -F '^' '{printf $5}'`
|
||||
SLEEPSEC=`echo "$SLEEPSEC" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $SLEEPSEC
|
||||
STARTFLAG=`echo $LINE | awk -F '^' '{printf $7}'`
|
||||
STARTFLAG=`echo "$STARTFLAG" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $STARTFLAG
|
||||
|
||||
# if [ "`echo $STARTFLAG`" != "IGNORE_START" ]; then
|
||||
CMD_STR=" ps -w | grep `echo "'"``echo $BIN``echo "'"` | grep -v 'grep'"
|
||||
BIN2=`echo $BIN`
|
||||
ps -ef | grep "$BIN2" | grep -v 'grep'
|
||||
# fi
|
||||
fi
|
||||
fi
|
||||
done < $RUNTIME_CF_FILE
|
||||
|
||||
# ========= 4. 清理软链接(仅在本次脚本中创建) =========
|
||||
if [ "$TEMP_LINK_CREATED" -eq 1 ]; then
|
||||
if [ -L "/FeProject" ]; then
|
||||
sudo rm -f /FeProject
|
||||
echo "Temporary symlink /FeProject removed."
|
||||
fi
|
||||
fi
|
||||
97
LFtid1056/boot/start_fe.sh
Normal file
97
LFtid1056/boot/start_fe.sh
Normal file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========= 0. <20><>ȡ<EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>Ϊ FEP_ENV =========
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
FEP_ENV="$(dirname "$SCRIPT_DIR")"
|
||||
export FEP_ENV
|
||||
|
||||
# ========= 1. <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =========
|
||||
TEMP_LINK_CREATED=0
|
||||
if [ ! -L "/FeProject" ]; then
|
||||
if [ ! -e "/FeProject" ]; then
|
||||
sudo ln -s "$FEP_ENV" /FeProject
|
||||
TEMP_LINK_CREATED=1
|
||||
echo "Temporary symlink /FeProject created."
|
||||
else
|
||||
echo "/FeProject exists but is not a symlink. Please check manually."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$FEP_ENV" ]; then
|
||||
echo "Error: FEP_ENV is not set. Please set it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ========= 2. <20><>־<EFBFBD><D6BE>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> =========
|
||||
check_log_file() {
|
||||
if [ -n "$1" ]; then
|
||||
FILE_SIZE=$(du "$1" | awk '{print $1}')
|
||||
if [ "$FILE_SIZE" -ge 5120 ]; then
|
||||
[ -f "$1.3" ] && rm -f "$1.3"
|
||||
[ -f "$1.2" ] && mv "$1.2" "$1.3"
|
||||
[ -f "$1.1" ] && mv "$1.1" "$1.2"
|
||||
mv "$1" "$1.1"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
LOGFILE="$FEP_ENV/dat/log/start_fe.log"
|
||||
check_log_file "$LOGFILE"
|
||||
|
||||
echo "" ; echo ""
|
||||
echo "******* $(date "+%F %R:%S") Start Processes *******"
|
||||
echo "" >>"$LOGFILE"
|
||||
echo "" >>"$LOGFILE"
|
||||
echo "******* $(date "+%F %R:%S") Start Processes *******" >>"$LOGFILE"
|
||||
|
||||
# ========= 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =========
|
||||
RUNTIME_CF_FILE="$FEP_ENV/etc/runtime.cf"
|
||||
|
||||
echo "Using config file name: $RUNTIME_CF_FILE"
|
||||
echo "Using config file name: $RUNTIME_CF_FILE" >>"$LOGFILE"
|
||||
|
||||
cd "$FEP_ENV/boot" || exit 1
|
||||
CURDIR=$(pwd)
|
||||
|
||||
while read -r LINE; do
|
||||
if [ -n "$LINE" ] && [[ ${LINE:0:1} != "#" ]]; then
|
||||
BINPATH=$(echo "$LINE" | awk -F '^' '{print $1}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$BINPATH"
|
||||
BIN=$(echo "$LINE" | awk -F '^' '{print $2}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$BIN"
|
||||
SPECIAL=$(echo "$LINE" | awk -F '^' '{print $4}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$SPECIAL"
|
||||
SLEEPSEC=$(echo "$LINE" | awk -F '^' '{print $5}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$SLEEPSEC"
|
||||
STARTFLAG=$(echo "$LINE" | awk -F '^' '{print $7}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$STARTFLAG"
|
||||
RESTARTFLAG=$(echo "$LINE" | awk -F '^' '{print $6}' | grep -o "[^ ]\+\( \+[^ ]\+\)*")
|
||||
echo "$RESTARTFLAG"
|
||||
|
||||
if [ "$RESTARTFLAG" = "IGNORE_RESTART" ]; then
|
||||
CMD_STR="sleep $SLEEPSEC"
|
||||
echo "$CMD_STR"
|
||||
echo "$CMD_STR" >>"$LOGFILE"
|
||||
eval "$CMD_STR"
|
||||
|
||||
CMD_STR="$BINPATH$BIN $SPECIAL"
|
||||
echo "$CMD_STR"
|
||||
echo "$CMD_STR" >>"$LOGFILE"
|
||||
eval "$CMD_STR" &>/dev/null
|
||||
fi
|
||||
fi
|
||||
done < "$RUNTIME_CF_FILE"
|
||||
|
||||
cd "$CURDIR"
|
||||
|
||||
DT=$(date "+%F %R:%S.%N")
|
||||
echo "******* ${DT:0:23} Start Processes Succcessfully *******"
|
||||
echo "******* ${DT:0:23} Start Processes Succcessfully *******" >>"$LOGFILE"
|
||||
|
||||
# ========= 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1>νű<CEBD><C5B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD> =========
|
||||
if [ "$TEMP_LINK_CREATED" -eq 1 ]; then
|
||||
if [ -L "/FeProject" ]; then
|
||||
sudo rm -f /FeProject
|
||||
echo "Temporary symlink /FeProject removed."
|
||||
fi
|
||||
fi
|
||||
129
LFtid1056/boot/stop_fe.sh
Normal file
129
LFtid1056/boot/stop_fe.sh
Normal file
@@ -0,0 +1,129 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ========= 0. 获取脚本所在路径的上一层,设置为 FEP_ENV =========
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
FEP_ENV="$(dirname "$SCRIPT_DIR")"
|
||||
export FEP_ENV
|
||||
|
||||
# ========= 1. 初始化软连接 =========
|
||||
TEMP_LINK_CREATED=0
|
||||
if [ ! -L "/FeProject" ]; then
|
||||
if [ ! -e "/FeProject" ]; then
|
||||
sudo ln -s "$FEP_ENV" /FeProject
|
||||
TEMP_LINK_CREATED=1
|
||||
echo "Temporary symlink /FeProject created."
|
||||
else
|
||||
echo "/FeProject exists but is not a symlink. Please check manually."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$FEP_ENV" ]; then
|
||||
echo "Error: FEP_ENV is not set. Please set it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
check_log_file()
|
||||
{
|
||||
if [ -n "$1" ] ; then
|
||||
FILE_SIZE=0
|
||||
FILE_SIZE=`du $1 | awk '{print $1}'`
|
||||
if [ $FILE_SIZE -ge 5120 ]
|
||||
then
|
||||
if [ -f "$1".3 ]; then
|
||||
rm -f "$1".3
|
||||
fi
|
||||
if [ -f "$1".2 ]; then
|
||||
mv "$1".2 "$1".3
|
||||
fi
|
||||
if [ -f "$1".1 ]; then
|
||||
mv "$1".1 "$1".2
|
||||
fi
|
||||
mv "$1" "$1".1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
LOGFILE="$FEP_ENV/dat/log/start_fe.log"
|
||||
check_log_file $LOGFILE
|
||||
|
||||
echo "" ; echo ""
|
||||
echo "****** `date "+%F %R:%S"` Stop Processes ******"
|
||||
echo "" >>"$LOGFILE"
|
||||
echo "" >>"$LOGFILE"
|
||||
echo "****** `date "+%F %R:%S"` Stop Processes ******" >>"$LOGFILE"
|
||||
|
||||
RUNTIME_CF_FILE="$FEP_ENV/etc/runtime.cf"
|
||||
|
||||
#cat $RUNTIME_CF_FILE |tac > /tmp/runtime.cf
|
||||
sed '1!G;h;$!d' $RUNTIME_CF_FILE > /tmp/runtime.cf
|
||||
|
||||
echo "Using config file name: $RUNTIME_CF_FILE"
|
||||
echo "Using config file name: $RUNTIME_CF_FILE">>"$LOGFILE"
|
||||
|
||||
while read LINE ; do
|
||||
if [ -n "$LINE" ] ; then
|
||||
if [ ${LINE:0:1} != "#" ]; then
|
||||
BINPATH=`echo $LINE | awk -F '^' '{printf $1}'`
|
||||
BINPATH=`echo "$BINPATH" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $BINPATH
|
||||
BIN=`echo $LINE | awk -F '^' '{printf $2}'`
|
||||
BIN=`echo "$BIN" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $BIN
|
||||
SPECIAL=`echo $LINE | awk -F '^' '{printf $4}'`
|
||||
SPECIAL=`echo "$SPECIAL" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $SPECIAL
|
||||
|
||||
SLEEPSEC=`echo $LINE | awk -F '^' '{printf $5}'`
|
||||
SLEEPSEC=`echo "$SLEEPSEC" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $SLEEPSEC
|
||||
STARTFLAG=`echo $LINE | awk -F '^' '{printf $7}'`
|
||||
STARTFLAG=`echo "$STARTFLAG" | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
|
||||
# echo $STARTFLAG
|
||||
|
||||
if [ "`echo $STARTFLAG`" != "IGNORE_START" ]; then
|
||||
# echo ""
|
||||
# echo "" >>"$LOGFILE"
|
||||
CMD_STR=" ps -w | grep `echo "'"``echo $BIN``echo "'"` | grep -v 'grep'"
|
||||
BIN2=`echo $BIN`
|
||||
BIN3=`echo $BIN |awk '{print$1}'`
|
||||
# CMD_STR="killall `echo $BIN | awk '{print$1}'` 2>&1 "
|
||||
PIDSTR=`ps -ef | grep "$BIN2" | grep -v 'grep'`
|
||||
if [ -n "$PIDSTR" ] ; then
|
||||
if [ "$BIN3" == "fe_main" ]; then
|
||||
CMD_STR=" sleep 3 "
|
||||
echo "$CMD_STR"
|
||||
echo "$CMD_STR" >>"$LOGFILE"
|
||||
$CMD_STR
|
||||
fi
|
||||
|
||||
CMD_STR="kill -15 `echo $PIDSTR | awk '{print$2}'` "
|
||||
echo " Kill process: \"$BIN\" with PID `echo $PIDSTR | awk '{print$2}'`"
|
||||
echo " Kill process: \"$BIN\" with PID `echo $PIDSTR | awk '{print$2}'`" >>"$LOGFILE"
|
||||
echo " Executing: $CMD_STR"
|
||||
echo " Executing: $CMD_STR" >>"$LOGFILE"
|
||||
CMD_RESULT=`$CMD_STR`
|
||||
if [ -n "$CMD_RESULT" ] ; then
|
||||
echo "$CMD_RESULT"
|
||||
echo "$CMD_RESULT" >>"$LOGFILE"
|
||||
fi
|
||||
|
||||
else
|
||||
echo " Process \"$BIN\" not running."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done < /tmp/runtime.cf
|
||||
|
||||
DT=`date "+%F %R:%S.%N"`
|
||||
echo "****** ${DT:0:23} Stop Processes Succcessfully ******"
|
||||
echo "" >>"$LOGFILE"
|
||||
echo "****** ${DT:0:23} Stop Processes Succcessfully ******" >>"$LOGFILE"
|
||||
|
||||
# ========= 4. 清理软链接(仅在本次脚本中创建) =========
|
||||
if [ "$TEMP_LINK_CREATED" -eq 1 ]; then
|
||||
if [ -L "/FeProject" ]; then
|
||||
sudo rm -f /FeProject
|
||||
echo "Temporary symlink /FeProject removed."
|
||||
fi
|
||||
fi
|
||||
@@ -2737,34 +2737,34 @@ bool compare_qvvr_and_file(const std::string& cfg_path, const std::vector<qvvr_d
|
||||
// DataArrayItem to_json
|
||||
void to_json(nlohmann::json& j, const DataArrayItem& d) {
|
||||
j = nlohmann::json{
|
||||
{"DataAttr", d.DataAttr},
|
||||
{"DataTimeSec", d.DataTimeSec},
|
||||
{"DataTimeUSec", d.DataTimeUSec},
|
||||
{"DataTag", d.DataTag},
|
||||
{"Data", d.Data}
|
||||
{"dataAttr", d.DataAttr},
|
||||
{"dataTimeSec", d.DataTimeSec},
|
||||
{"dataTimeUSec", d.DataTimeUSec},
|
||||
{"dataTag", d.DataTag},
|
||||
{"data", d.Data}
|
||||
};
|
||||
}
|
||||
|
||||
// MsgObj to_json
|
||||
void to_json(nlohmann::json& j, const MsgObj& m) {
|
||||
j = nlohmann::json{
|
||||
{"Cldid", m.Cldid},
|
||||
{"DataType", m.DataType},
|
||||
{"DataAttr", m.DataAttr},
|
||||
{"DsNameIdx", m.DsNameIdx},
|
||||
{"DataArray", m.DataArray}
|
||||
{"clDid", m.Cldid},
|
||||
{"dataType", m.DataType},
|
||||
{"dataAttr", m.DataAttr},
|
||||
{"dsNameIdx", m.DsNameIdx},
|
||||
{"dataArray", m.DataArray}
|
||||
};
|
||||
}
|
||||
|
||||
// FullObj to_json
|
||||
void to_json(nlohmann::json& j, const FullObj& f) {
|
||||
j = nlohmann::json{
|
||||
{"Id", f.mac},
|
||||
{"Mid", f.Mid},
|
||||
{"Did", f.Did},
|
||||
{"Pri", f.Pri},
|
||||
{"Type", f.Type},
|
||||
{"Msg", f.Msg}
|
||||
{"id", f.mac},
|
||||
{"mid", f.Mid},
|
||||
{"did", f.Did},
|
||||
{"pri", f.Pri},
|
||||
{"type", f.Type},
|
||||
{"msg", f.Msg}
|
||||
};
|
||||
}
|
||||
std::string generate_json(
|
||||
@@ -2820,6 +2820,9 @@ void upload_data_test(){
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////台账赋值给通信
|
||||
|
||||
std::vector<DeviceInfo> GenerateDeviceInfoFromLedger(const std::vector<terminal_dev>& terminal_devlist) {
|
||||
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
|
||||
std::vector<DeviceInfo> devices;
|
||||
|
||||
for (const auto& terminal : terminal_devlist) {
|
||||
@@ -3217,7 +3220,7 @@ void check_device_busy_timeout()
|
||||
if (dev.busytimecount > 30)
|
||||
{
|
||||
std::cout << "[Timeout] Device " << dev.terminal_id
|
||||
<< " busytype=READING_FILEMENU 超时("
|
||||
<< " busytype=READING_FILEDATA 超时("
|
||||
<< dev.busytimecount << "s)" << std::endl;
|
||||
|
||||
//发送超时响应
|
||||
@@ -3376,7 +3379,7 @@ bool save_set_value(const std::string &dev_id, unsigned char mp_index, const std
|
||||
return true;
|
||||
}
|
||||
|
||||
bool save_internal_value(const std::string &dev_id, const std::vector<float> &fabsf) {
|
||||
bool save_internal_value(const std::string &dev_id, const std::vector<ushort> &fabsf) {
|
||||
// 找到对应 terminal_dev
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
|
||||
@@ -3407,6 +3410,37 @@ bool save_internal_value(const std::string &dev_id, const std::vector<float> &fa
|
||||
return true;
|
||||
}
|
||||
|
||||
bool save_internal_info(const std::string &dev_id, const std::vector<NameFixValue> &fixValueList) {
|
||||
// 找到对应 terminal_dev
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
|
||||
auto it = std::find_if(terminal_devlist.begin(), terminal_devlist.end(),
|
||||
[&](const terminal_dev &dev) { return dev.terminal_id == dev_id; });
|
||||
if (it == terminal_devlist.end()) {
|
||||
std::cerr << "[send_set_reply] device not found: " << dev_id << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
terminal_dev &dev = *it;
|
||||
|
||||
// 判断 isbusy==2 且 busytype==READING_INTERFIXEDVALUE
|
||||
if (dev.isbusy != 2 || dev.busytype != static_cast<int>(DeviceState::READING_INTERFIXEDVALUE)) {
|
||||
std::cerr << "[send_set_reply] device not in READING_INTERFIXEDVALUE state." << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
// ★ 新增:清理原有的内部定值列表
|
||||
dev.dz_internal_info_list.clear();
|
||||
//将值严格按顺序存入list中
|
||||
for (const auto &info : fixValueList) {
|
||||
dev.dz_internal_info_list.push_back(info);
|
||||
}
|
||||
|
||||
dev.isbusy--;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////回复定值读取响应
|
||||
bool send_set_value_reply(const std::string &dev_id, unsigned char mp_index, const std::vector<DZ_TAB_STRUCT> &dz_info) {
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
@@ -3440,6 +3474,12 @@ bool send_set_value_reply(const std::string &dev_id, unsigned char mp_index, con
|
||||
return false;
|
||||
}
|
||||
|
||||
//将dz_info存入监测点
|
||||
pMon->dz_info_list.clear();
|
||||
for (const auto &dz : dz_info) {
|
||||
pMon->dz_info_list.push_back(dz);
|
||||
}
|
||||
|
||||
// 4) 取该监测点的 set_values,严格按顺序用于 DZ_Value
|
||||
std::vector<float> ordered_vals;
|
||||
ordered_vals.reserve(pMon->set_values.size());
|
||||
@@ -3530,3 +3570,198 @@ bool send_set_value_reply(const std::string &dev_id, unsigned char mp_index, con
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////回复内部定值响应读取
|
||||
|
||||
|
||||
bool send_internal_value_reply(const std::string &dev_id, const std::vector<DZ_kzz_bit> &control_words)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
|
||||
// 1) 找终端
|
||||
auto it = std::find_if(terminal_devlist.begin(), terminal_devlist.end(),
|
||||
[&](const terminal_dev &d) { return d.terminal_id == dev_id; });
|
||||
if (it == terminal_devlist.end()) {
|
||||
std::cerr << "[send_internal_value_reply] device not found: " << dev_id << std::endl;
|
||||
return false;
|
||||
}
|
||||
terminal_dev &dev = *it;
|
||||
|
||||
// 2) 校验状态:发送“内部定值读取结果”回复,应处于 READING_INTERFIXEDVALUE;isbusy == 1
|
||||
if (dev.isbusy != 1 || dev.busytype != static_cast<int>(DeviceState::READING_INTERFIXEDVALUE)) {
|
||||
std::cerr << "[send_internal_value_reply] device not in READING_INTERFIXEDVALUE state." << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
//将control_words存入dev
|
||||
dev.control_words.clear();
|
||||
for (const auto &cw : control_words) {
|
||||
dev.control_words.push_back(cw);
|
||||
}
|
||||
|
||||
// -------------------- [新增] 建立 internal_values 与 dz_internal_info_list 的一一对应 --------------------
|
||||
// 说明:按索引次序一一对应(第 i 个 NameFixValue 对应 internal_values 的第 i 个)
|
||||
// 若数量不同,按 min 对齐,忽略多出来的一边并告警。
|
||||
std::vector<float> internal_vals; // [新增]
|
||||
internal_vals.reserve(dev.internal_values.size()); // [新增]
|
||||
for (float v : dev.internal_values) internal_vals.push_back(v); // [新增]
|
||||
|
||||
const size_t n_dz = dev.dz_internal_info_list.size(); // [新增]
|
||||
const size_t n_val = internal_vals.size(); // [新增]
|
||||
const size_t n_use = std::min(n_dz, n_val); // [新增]
|
||||
if (n_dz != n_val) { // [新增]
|
||||
std::cerr << "[send_internal_value_reply] WARN: dz_internal_info_list size("
|
||||
<< n_dz << ") != internal_values size(" << n_val
|
||||
<< "), will use min(" << n_use << ")." << std::endl;
|
||||
}
|
||||
// ------------------------------------------------------------------------------------------------------
|
||||
|
||||
// 3) 组包顶层
|
||||
nlohmann::json j;
|
||||
j["guid"] = dev.guid;
|
||||
j["FrontIP"] = FRONT_IP;
|
||||
j["Node"] = g_front_seg_index;
|
||||
j["Dev_mac"] = normalize_mac(dev.addr_str);
|
||||
|
||||
nlohmann::json detail;
|
||||
detail["Type"] = 0x2106; // 设备数据
|
||||
nlohmann::json msg;
|
||||
msg["DataType"] = 0x0D; // 内部定值
|
||||
|
||||
// 4) === 将 C# 的拼接逻辑移植为 DataArray ===
|
||||
// C# 变量对应关系:
|
||||
// DevInfo.nDevIndex -> 这里用 1
|
||||
// DevInfo.strGuId -> 这里用 装置id
|
||||
// DevInfo.controlwordlist -> 这里用参数 control_words(DZ_kzz_bit 含 kzz_bit/bit_enable)
|
||||
//
|
||||
// NameFixValue 列表:使用 dev.dz_internal_info_list
|
||||
//
|
||||
// 关键逻辑:
|
||||
// - 遍历每个 NameFixValue,k 从 1 递增,nStep 每个定值递增 1
|
||||
// - 若 DataType == 1:将 Max/Min/Default 都 /100,并 property 输出一个空对象 [{}](保持与 C# 一致)
|
||||
// - 否则:为该定值构建 property 位数组,范围 [nStep*16, (nStep+1)*16),
|
||||
// 名称为空则提前结束本定值的 property;flag = (DefaultValue >> j) & 0x01
|
||||
//
|
||||
|
||||
nlohmann::json dataArray = nlohmann::json::array(); // [新增]
|
||||
|
||||
int nStep = 0; // [新增] 每个 NameFixValue 递增
|
||||
int kSort = 1; // [新增] 排序号,从 1 开始
|
||||
|
||||
// 保护:dz_internal_info_list 是引用成员,确保不会因并发被改动(当前已在 ledgermtx 下)
|
||||
//for (const auto& nf : dev.dz_internal_info_list) { // [新增]
|
||||
for (size_t idxNF = 0; idxNF < n_use; ++idxNF) { // [修改] 使用 idxNF 控制索引
|
||||
const auto& nf = dev.dz_internal_info_list[idxNF];
|
||||
// 取字段
|
||||
const uint16_t dataType = nf.DataType;
|
||||
const uint16_t minRaw = nf.MinValue;
|
||||
const uint16_t maxRaw = nf.MaxValue;
|
||||
const uint16_t defaultRaw = nf.DefaultValue;
|
||||
const std::string unit = trim_cstr(nf.sDimension, sizeof(nf.sDimension));
|
||||
const std::string name = trim_cstr(nf.sFixValueName, sizeof(nf.sFixValueName));
|
||||
|
||||
// 取对应内部值
|
||||
const float internal_v_raw = internal_vals[idxNF]; // [新增]
|
||||
const double internal_v_out = static_cast<double>(internal_v_raw); // [新增] 直接转 double 输出,不缩放
|
||||
|
||||
// 构造一条记录
|
||||
nlohmann::json one;
|
||||
one["cpu_no"] = 1; // [新增] C#: DevInfo.nDevIndex 填设备号,固定为1
|
||||
one["dev_type"] = dev_id; // [新增] C#: DevInfo.strGuId 填装置id
|
||||
one["type"] = 90; // [新增] 固定 "90"
|
||||
one["unit"] = unit; // [新增]
|
||||
one["describe"] = name; // [新增]
|
||||
one["sort"] = kSort; // [新增]
|
||||
one["Internal_Value"] = internal_v_out; // [新增] 精确对应 internal_values 的值(含必要缩放)
|
||||
|
||||
// 数值:DataType == 1 时缩放 /100
|
||||
if (dataType == 1) { // [新增] 缩放分支
|
||||
int ChangeMaxValue = static_cast<int>(maxRaw) / 100;
|
||||
int ChangeMinValue = static_cast<int>(minRaw) / 100;
|
||||
int ChangeDefaultValue = static_cast<int>(defaultRaw) / 100;
|
||||
|
||||
one["maxvalue"] = ChangeMaxValue;
|
||||
one["minvalue"] = ChangeMinValue;
|
||||
one["defaultvalue"] = ChangeDefaultValue;
|
||||
one["value"] = ChangeDefaultValue;
|
||||
|
||||
// C# 在该分支 property 写成 [{ }](一个空对象的数组)
|
||||
nlohmann::json prop = nlohmann::json::array();
|
||||
prop.push_back(nlohmann::json::object()); // [{}]
|
||||
one["property"] = std::move(prop);
|
||||
} else { // [新增] 未缩放分支 + property 位描述
|
||||
one["maxvalue"] = static_cast<int>(maxRaw);
|
||||
one["minvalue"] = static_cast<int>(minRaw);
|
||||
one["defaultvalue"] = static_cast<int>(defaultRaw);
|
||||
one["value"] = static_cast<int>(defaultRaw);
|
||||
|
||||
// 构建 property:16 位窗口,从 nStep*16 到 (nStep+1)*16 - 1
|
||||
nlohmann::json prop = nlohmann::json::array();
|
||||
bool hasAny = false;
|
||||
|
||||
const int begin = nStep * 16;
|
||||
const int end = (nStep + 1) * 16; // 不含 end
|
||||
|
||||
for (int idx = begin, jbit = 0; idx < end; ++idx, ++jbit) {
|
||||
if (idx < 0 || static_cast<size_t>(idx) >= control_words.size()) break;
|
||||
|
||||
// 名称空则提前退出(仿 C#:temp=="" break)
|
||||
const std::string cw_name = trim_cstr(control_words[idx].kzz_bit, sizeof(control_words[idx].kzz_bit));
|
||||
if (cw_name.empty()) {
|
||||
// 注意:C# 如果 j==0 则设置了 flag2=1,仅用于逗号处理,这里不需要
|
||||
break;
|
||||
}
|
||||
|
||||
int flag = (defaultRaw >> jbit) & 0x01; // 取该位默认值
|
||||
nlohmann::json bitItem;
|
||||
bitItem["type_num"] = jbit;
|
||||
bitItem["bit0"] = ""; // 保持与 C# 一致
|
||||
bitItem["bit1"] = "";
|
||||
bitItem["describe"] = cw_name;
|
||||
bitItem["flag"] = (flag ? "1" : "0"); // C# 用字符串
|
||||
prop.push_back(std::move(bitItem));
|
||||
hasAny = true;
|
||||
}
|
||||
|
||||
if (!hasAny) {
|
||||
// 与 C# 对齐:如果一个都没有,就给 [{}] 以避免 "property":[] 的结构差异
|
||||
prop.push_back(nlohmann::json::object());
|
||||
}
|
||||
one["property"] = std::move(prop);
|
||||
}
|
||||
|
||||
dataArray.push_back(std::move(one)); // [新增]
|
||||
++nStep; // [新增] 进入下一个 16 位窗口
|
||||
++kSort; // [新增]
|
||||
}
|
||||
|
||||
msg["DataArray"] = std::move(dataArray); // [新增]
|
||||
detail["Msg"] = std::move(msg);
|
||||
j["Detail"] = std::move(detail);
|
||||
|
||||
// 5) 入队发送(保持你的队列逻辑)
|
||||
queue_data_t connect_info;
|
||||
connect_info.strTopic = Topic_Reply_Topic;
|
||||
connect_info.strText = j.dump(); // 序列化为字符串
|
||||
|
||||
{
|
||||
std::lock_guard<std::mutex> lk(queue_data_list_mutex);
|
||||
queue_data_list.push_back(std::move(connect_info));
|
||||
}
|
||||
|
||||
// 调试打印
|
||||
std::cout << "[send_internal_value_reply] queued JSON:\n" << j.dump(4) << std::endl;
|
||||
|
||||
// 6) 发送后更新终端状态(保持你现有规则)
|
||||
if (dev.isbusy > 0) {
|
||||
dev.isbusy--;
|
||||
}
|
||||
if (dev.isbusy == 0) {
|
||||
dev.guid.clear();
|
||||
dev.busytype = 0;
|
||||
dev.internal_values.clear(); // 清理本次定值记录
|
||||
dev.dz_internal_info_list.clear(); // 清理本次定值描述记录(注意:如果这是引用成员,确保其实际容器存在)
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -743,9 +743,36 @@ int parse_device_cfg_web()
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////用例这里将局部的map拷贝到全局map,后续根据协议台账修改
|
||||
// 先清空全局 container,再逐个拷贝 map 中的 terminal_dev
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
|
||||
terminal_devlist.clear();
|
||||
|
||||
for (const auto& kv : terminal_dev_map) {
|
||||
terminal_devlist.push_back(kv.second); // kv.second 是对象,不用判断指针
|
||||
|
||||
terminal_dev dev = kv.second; // kv.second 是对象,不用判断指针
|
||||
|
||||
// ======= [新增] 对 terminal_dev 中 web 未返回/未设置字段做统一初始化,避免脏值 =======
|
||||
dev.guid.clear(); // [新增] 业务 guid 初始为空
|
||||
dev.busytype = 0; // [新增] 业务类型(状态机)默认 0
|
||||
dev.isbusy = 0; // [新增] 未进行业务
|
||||
dev.busytimecount = 0; // [新增] 业务计时清零
|
||||
dev.internal_values.clear(); // [新增] 内部定值清空,等后续业务真实填充
|
||||
dev.dz_internal_info_list.clear(); // [新增] 内部定值信息清空,等后续业务真实填充
|
||||
// ------------------------------------------------------------------------------------
|
||||
|
||||
// ======= [新增] 对每个监测点做必要的内部结构初始化 =======
|
||||
for (auto &mon : dev.line) {
|
||||
// 暂态事件容器显式清理(虽然默认构造已空,但这里确保无脏数据)
|
||||
mon.qvvrevent.qvvrdata.clear(); // [新增]
|
||||
mon.qvvrevent.qvvrfile.clear(); // [新增]
|
||||
|
||||
// 定值列表清理,等待后续配置/采集填充
|
||||
mon.set_values.clear(); // [新增]
|
||||
mon.dz_info_list.clear(); // [新增]
|
||||
}
|
||||
// ------------------------------------------------------------------------------------
|
||||
|
||||
terminal_devlist.push_back(dev);
|
||||
}
|
||||
|
||||
// 判断监测点接线类型
|
||||
|
||||
@@ -91,16 +91,18 @@ public:
|
||||
std::string terminal_connect; //监测点接线方式
|
||||
std::string timestamp; //更新时间
|
||||
std::string status; //监测点状态
|
||||
|
||||
double PT1; // 电压变比1
|
||||
double PT2; // 电压变比2
|
||||
double CT1; // 电流变比1
|
||||
double CT2; // 电流变比2
|
||||
|
||||
qvvr_event qvvrevent; //暂态事件
|
||||
//暂态事件
|
||||
qvvr_event qvvrevent;
|
||||
|
||||
//定值list
|
||||
std::list<float> set_values;
|
||||
std::vector<DZ_TAB_STRUCT> dz_info_list; //定值信息列表
|
||||
|
||||
};
|
||||
|
||||
//终端台账
|
||||
@@ -113,7 +115,9 @@ public:
|
||||
int busytimecount; //业务进行计时
|
||||
|
||||
//内部定值list
|
||||
std::list<float> internal_values;
|
||||
std::list<ushort> internal_values;
|
||||
std::vector<NameFixValue> dz_internal_info_list; //内部定值信息列表
|
||||
std::vector<DZ_kzz_bit> control_words;
|
||||
|
||||
std::string terminal_id;
|
||||
std::string terminal_name;
|
||||
@@ -513,7 +517,35 @@ void send_reply_to_cloud(int reply_code, const std::string& dev_id, int type);
|
||||
//查guid
|
||||
std::string find_guid_index_from_dev_id(const std::string& dev_id);
|
||||
|
||||
//
|
||||
//内部定值响应
|
||||
bool send_internal_value_reply(const std::string &dev_id, const std::vector<DZ_kzz_bit> &control_words);
|
||||
|
||||
//定值响应
|
||||
bool send_set_value_reply(const std::string &dev_id, unsigned char mp_index, const std::vector<DZ_TAB_STRUCT> &dz_info);
|
||||
|
||||
//保存内部定值描述
|
||||
bool save_internal_info(const std::string &dev_id, const std::vector<NameFixValue> &fixValueList);
|
||||
|
||||
//保存内部定值数值
|
||||
bool save_internal_value(const std::string &dev_id, const std::vector<ushort> &fabsf);
|
||||
|
||||
//保存定值数值
|
||||
bool save_set_value(const std::string &dev_id, unsigned char mp_index, const std::vector<float> &fabsf);
|
||||
|
||||
//发送文件
|
||||
void SendFileWeb(const std::string& strUrl, const std::string& localpath, const std::string& cloudpath, std::string& wavepath);
|
||||
|
||||
//小工具
|
||||
inline std::string trim_cstr(const char* s, size_t n) {
|
||||
if (!s) return {};
|
||||
size_t end = 0;
|
||||
while (end < n && s[end] != '\0') ++end;
|
||||
std::string out(s, s + end);
|
||||
while (!out.empty() && (out.back() == ' ' || out.back() == '\t' || out.back() == '\r' || out.back() == '\n'))
|
||||
out.pop_back();
|
||||
return out;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
extern int g_front_seg_index;
|
||||
extern std::string FRONT_IP;
|
||||
|
||||
@@ -429,7 +429,7 @@ std::string parseJsonMessageRC(const std::string& inputJson) {
|
||||
}
|
||||
}
|
||||
|
||||
bool parseJsonMessageRT(const std::string& body,std::string& devSeries,std::string& line,bool& realData,bool& soeData,int& limit){
|
||||
bool parseJsonMessageRT(const std::string& body,std::string& devSeries,ushort& line,bool& realData,bool& soeData,int& limit){
|
||||
json root;
|
||||
try {
|
||||
root = json::parse(body);
|
||||
@@ -472,7 +472,7 @@ bool parseJsonMessageRT(const std::string& body,std::string& devSeries,std::stri
|
||||
|
||||
try {
|
||||
devSeries = messageBody["devSeries"].get<std::string>();
|
||||
line = messageBody["line"].get<std::string>();
|
||||
line = messageBody["line"].get<ushort>();
|
||||
realData = messageBody["realData"].get<bool>();
|
||||
soeData = messageBody["soeData"].get<bool>();
|
||||
limit = messageBody["limit"].get<int>();
|
||||
@@ -859,7 +859,8 @@ rocketmq::ConsumeStatus myMessageCallbackrtdata(const rocketmq::MQMessageExt& ms
|
||||
}
|
||||
|
||||
// 消息解析
|
||||
std::string devid, line;
|
||||
std::string devid;
|
||||
ushort line;
|
||||
bool realData = false, soeData = false;
|
||||
int limit = 0;
|
||||
|
||||
@@ -870,33 +871,16 @@ rocketmq::ConsumeStatus myMessageCallbackrtdata(const rocketmq::MQMessageExt& ms
|
||||
}
|
||||
|
||||
// 加锁访问台账
|
||||
int dev_index;
|
||||
int mp_index;
|
||||
if( !devid.empty() && !line.empty()){
|
||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||
dev_index = find_dev_index_from_dev_id(devid);
|
||||
mp_index = find_mp_index_from_mp_id(line);
|
||||
if( !devid.empty() && line > 0){
|
||||
//不再使用文件触发方式,直接调用接口向终端发起请求
|
||||
ClientManager::instance().set_real_state_count(devid, 60, line);//一秒询问一次,询问60次,下一次同一个测点调用的话就会刷新
|
||||
}
|
||||
else{
|
||||
std::cerr << "rtdata is NULL." << std::endl;
|
||||
DIY_ERRORLOG("process","【ERROR】前置的%d号进程处理topic:%s_%s的补招触发消息失败,消息的json结构不正确", g_front_seg_index,FRONT_INST.c_str(), G_MQCONSUMER_TOPIC_RT.c_str());
|
||||
}
|
||||
|
||||
|
||||
if (dev_index == -1 || mp_index == -1) {
|
||||
std::cerr << "dev index or mp index is not found" << std::endl;
|
||||
return rocketmq::RECONSUME_LATER;
|
||||
}
|
||||
|
||||
// 写入 XML
|
||||
/*if (!createXmlFile(dev_index, mp_index, realData, soeData, limit, "new")) {
|
||||
DIY_ERRORLOG("process", "【ERROR】前置无法创建实时数据触发文件");
|
||||
std::cerr << "Failed to create the XML file." << std::endl;
|
||||
return rocketmq::RECONSUME_LATER;
|
||||
}*/
|
||||
//不再使用文件触发方式,直接调用接口向终端发起请求
|
||||
ClientManager::instance().set_real_state_count(devid, 60,mp_index);//一秒询问一次,询问60次
|
||||
|
||||
return rocketmq::CONSUME_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@@ -409,6 +409,9 @@ extern bool normalOutputEnabled;
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////测试shell用的函数
|
||||
|
||||
void Worker::printLedgerinshell(const terminal_dev& dev, int fd) {
|
||||
// —— 显示控制:最多打印的元素数量(防止过长)——
|
||||
constexpr size_t MAX_ITEMS = 5; // 可按需调整或删除限制
|
||||
|
||||
std::ostringstream os;
|
||||
os << "\r\x1B[K------------------------------------\n";
|
||||
os << "\r\x1B[K|-- terminal_id : " << dev.terminal_id << "\n";
|
||||
@@ -426,12 +429,63 @@ void Worker::printLedgerinshell(const terminal_dev& dev, int fd) {
|
||||
os << "\r\x1B[K|-- tmnl_factory : " << dev.tmnl_factory << "\n";
|
||||
os << "\r\x1B[K|-- tmnl_status : " << dev.tmnl_status << "\n";
|
||||
os << "\r\x1B[K|-- timestamp : " << dev.timestamp << "\n";
|
||||
|
||||
os << "\r\x1B[K|-- mac : " << dev.mac << "\n";
|
||||
|
||||
// ========================= 终端级 · 内部定值 =========================
|
||||
// internal_values(ushort 列表)与 dz_internal_info_list 一一对应,仅展示前 MAX_ITEMS 条
|
||||
os << "\r\x1B[K|-- Internal Values (" << dev.internal_values.size() << "):\n";
|
||||
{
|
||||
size_t idx = 0;
|
||||
for (auto itv = dev.internal_values.begin();
|
||||
itv != dev.internal_values.end() && idx < MAX_ITEMS;
|
||||
++itv, ++idx) {
|
||||
os << "\r\x1B[K |-- [" << idx << "] value: " << static_cast<unsigned>(*itv) << "\n";
|
||||
}
|
||||
if (dev.internal_values.size() > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (dev.internal_values.size() - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// dz_internal_info_list(NameFixValue 描述,和 internal_values 对应)
|
||||
os << "\r\x1B[K|-- Internal Value Descriptions (" << dev.dz_internal_info_list.size() << "):\n";
|
||||
{
|
||||
const size_t n = dev.dz_internal_info_list.size();
|
||||
for (size_t i = 0; i < n && i < MAX_ITEMS; ++i) {
|
||||
const auto& nf = dev.dz_internal_info_list[i];
|
||||
os << "\r\x1B[K |-- [" << i << "] "
|
||||
<< "Name=" << trim_cstr(nf.sFixValueName, sizeof(nf.sFixValueName))
|
||||
<< ", Type=" << nf.DataType
|
||||
<< ", Unit=" << trim_cstr(nf.sDimension, sizeof(nf.sDimension))
|
||||
<< ", Min=" << nf.MinValue
|
||||
<< ", Max=" << nf.MaxValue
|
||||
<< ", Default=" << nf.DefaultValue
|
||||
<< "\n";
|
||||
}
|
||||
if (n > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (n - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// control_words(控制字描述)
|
||||
os << "\r\x1B[K|-- Control Words (" << dev.control_words.size() << "):\n";
|
||||
{
|
||||
const size_t n = dev.control_words.size();
|
||||
for (size_t i = 0; i < n && i < MAX_ITEMS; ++i) {
|
||||
const DZ_kzz_bit& b = dev.control_words[i];
|
||||
os << "\r\x1B[K |-- [" << i << "] "
|
||||
<< "name=\"" << trim_cstr(b.kzz_bit, sizeof(b.kzz_bit)) << "\""
|
||||
<< ", enable=" << static_cast<int>(b.bit_enable) << "\n";
|
||||
}
|
||||
if (n > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (n - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// ========================= 监测点级 · line =========================
|
||||
for (size_t i = 0; i < dev.line.size(); ++i) {
|
||||
const auto& ld = dev.line[i];
|
||||
if (ld.monitor_id.empty()) continue;
|
||||
|
||||
os << "\r\x1B[K|-- line[" << i << "]:\n";
|
||||
os << "\r\x1B[K |-- monitor_id : " << ld.monitor_id << "\n";
|
||||
os << "\r\x1B[K |-- monitor_name : " << ld.monitor_name << "\n";
|
||||
@@ -441,17 +495,117 @@ void Worker::printLedgerinshell(const terminal_dev& dev, int fd) {
|
||||
os << "\r\x1B[K |-- terminal_connect : " << ld.terminal_connect << "\n";
|
||||
os << "\r\x1B[K |-- status : " << ld.status << "\n";
|
||||
os << "\r\x1B[K |-- timestamp : " << ld.timestamp << "\n";
|
||||
os << "\r\x1B[K |-- CT1=" << ld.CT1 << ", CT2=" << ld.CT2
|
||||
<< ", PT1=" << ld.PT1 << ", PT2=" << ld.PT2 << "\n";
|
||||
|
||||
os << "\r\x1B[K |-- CT1: " << ld.CT1 << "\n";
|
||||
os << "\r\x1B[K |-- CT2: " << ld.CT2 << "\n";
|
||||
os << "\r\x1B[K |-- PT1: " << ld.PT1 << "\n";
|
||||
os << "\r\x1B[K |-- PT2: " << ld.PT2 << "\n";
|
||||
// --- 监测点 · 定值(set_values) ---
|
||||
os << "\r\x1B[K |-- Set Values (" << ld.set_values.size() << "):\n";
|
||||
{
|
||||
size_t idx = 0;
|
||||
for (auto it = ld.set_values.begin();
|
||||
it != ld.set_values.end() && idx < MAX_ITEMS;
|
||||
++it, ++idx) {
|
||||
os << "\r\x1B[K |-- [" << idx << "] " << *it << "\n";
|
||||
}
|
||||
if (ld.set_values.size() > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (ld.set_values.size() - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// --- 监测点 · 定值描述文件(dz_info_list) ---
|
||||
os << "\r\x1B[K |-- DZ Table (" << ld.dz_info_list.size() << "):\n";
|
||||
{
|
||||
const size_t n = ld.dz_info_list.size();
|
||||
for (size_t j = 0; j < n && j < MAX_ITEMS; ++j) {
|
||||
const DZ_TAB_STRUCT& z = ld.dz_info_list[j];
|
||||
os << "\r\x1B[K |-- [" << j << "] "
|
||||
<< "LN=" << z.LN_Num
|
||||
<< ", DZ=" << z.DZ_Num
|
||||
<< ", Name=" << trim_cstr(z.DZ_Name, sizeof(z.DZ_Name))
|
||||
<< ", Type=" << z.DZ_Type
|
||||
<< ", Min=" << z.DZ_Min
|
||||
<< ", Max=" << z.DZ_Max
|
||||
<< ", Def=" << z.DZ_Default
|
||||
<< ", Unit=" << trim_cstr(z.DZ_UNIT, sizeof(z.DZ_UNIT))
|
||||
<< "\n";
|
||||
}
|
||||
if (n > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (n - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// --- 监测点 · 暂态事件(qvvrevent) ---
|
||||
os << "\r\x1B[K |-- QVVR Event:\n";
|
||||
|
||||
// 1) 暂态事件列表
|
||||
os << "\r\x1B[K |-- Events (" << ld.qvvrevent.qvvrdata.size() << "):\n";
|
||||
{
|
||||
const size_t n = ld.qvvrevent.qvvrdata.size();
|
||||
for (size_t k = 0; k < n && k < MAX_ITEMS; ++k) {
|
||||
const qvvr_data& e = ld.qvvrevent.qvvrdata[k];
|
||||
os << "\r\x1B[K |-- [" << k << "] "
|
||||
<< "used=" << e.used_status
|
||||
<< ", type=" << e.QVVR_type
|
||||
<< ", time=" << static_cast<unsigned long long>(e.QVVR_time)
|
||||
<< ", per=" << e.QVVR_PerTime
|
||||
<< ", amp=" << e.QVVR_Amg
|
||||
<< ", phase="<< e.phase
|
||||
<< "\n";
|
||||
}
|
||||
if (n > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (n - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// 2) 文件组列表
|
||||
os << "\r\x1B[K |-- File Groups (" << ld.qvvrevent.qvvrfile.size() << "):\n";
|
||||
{
|
||||
const size_t n = ld.qvvrevent.qvvrfile.size();
|
||||
for (size_t g = 0; g < n && g < MAX_ITEMS; ++g) {
|
||||
const qvvr_file& fg = ld.qvvrevent.qvvrfile[g];
|
||||
os << "\r\x1B[K |-- [" << g << "] "
|
||||
<< "used=" << fg.used_status
|
||||
<< ", tcount=" << fg.file_time_count
|
||||
<< ", downloaded=" << fg.is_download
|
||||
<< ", paired=" << fg.is_pair
|
||||
<< "\n";
|
||||
|
||||
// 文件名列表(file_name)
|
||||
os << "\r\x1B[K |-- file_name (" << fg.file_name.size() << "):\n";
|
||||
{
|
||||
size_t c = 0;
|
||||
for (const auto& fn : fg.file_name) {
|
||||
if (c++ >= MAX_ITEMS) break;
|
||||
os << "\r\x1B[K |-- " << fn << "\n";
|
||||
}
|
||||
if (fg.file_name.size() > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (fg.file_name.size() - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
|
||||
// 已下载列表(file_download)
|
||||
os << "\r\x1B[K |-- file_download (" << fg.file_download.size() << "):\n";
|
||||
{
|
||||
size_t c = 0;
|
||||
for (const auto& fn : fg.file_download) {
|
||||
if (c++ >= MAX_ITEMS) break;
|
||||
os << "\r\x1B[K |-- " << fn << "\n";
|
||||
}
|
||||
if (fg.file_download.size() > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (fg.file_download.size() - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (n > MAX_ITEMS) {
|
||||
os << "\r\x1B[K |.. (+" << (n - MAX_ITEMS) << " more)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
os << "\r\x1B[K------------------------------------\n";
|
||||
sendStr(fd, os.str());
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////打印所有的终端列表
|
||||
|
||||
void Worker::ledger(const std::string& terminal_id, int fd) {
|
||||
sendStr(fd, "\r\x1B[Kprint ledger in shell\n");
|
||||
|
||||
77
LFtid1056/config/front.cfg
Normal file
77
LFtid1056/config/front.cfg
Normal file
@@ -0,0 +1,77 @@
|
||||
[Queue]
|
||||
BrokerList=
|
||||
|
||||
RTDataTopic=Real_Time_Data_Topic
|
||||
HisTopic=njcnAppAutoDataTopic
|
||||
PSTTopic=njcnAppAutoDataTopic
|
||||
PLTTopic=njcnAppAutoDataTopic
|
||||
AlmTopic=AlmTopic
|
||||
SngTopic=SngTopic
|
||||
|
||||
QUEUE_TAG=stat
|
||||
QUEUE_KEY=stat
|
||||
|
||||
[Flag]
|
||||
FrontInst=
|
||||
FrontIP=192.168.1.138
|
||||
|
||||
[Ledger]
|
||||
TerminalStatus="[0]"
|
||||
MonitorStatus="[1,2]"
|
||||
IcdFlag=0
|
||||
IedCount=300
|
||||
|
||||
[Http]
|
||||
WebDevice=http://192.168.1.103:10220/icd/getLedgerInfo
|
||||
WebEvent=http://192.168.1.103:10222/event/addCldEvent
|
||||
WebFileupload=http://192.168.1.103:10207/file/upload
|
||||
WebFiledownload=
|
||||
|
||||
|
||||
[RocketMq]
|
||||
producer=Group_producer
|
||||
Ipport=192.168.1.24:9876
|
||||
AccessKey=rmqroot
|
||||
SecretKey=001@#njcnmq
|
||||
|
||||
Topic_Test=lnk_Topic
|
||||
Tag_Test=Test_Tag
|
||||
Key_Test=Test_Keys
|
||||
Testflag=1
|
||||
Testnum=0
|
||||
Testtype=0
|
||||
TestPort=11000
|
||||
TestList=8ad28e2e36dfbd19906f9e2a4894b375
|
||||
|
||||
consumer=Group_consumer
|
||||
ConsumerIpport=192.168.1.24:9876
|
||||
ConsumerTopicRT=ask_real_data_topic
|
||||
ConsumerTagRT=Test_Tag
|
||||
ConsumerKeyRT=Test_Keys
|
||||
ConsumerAccessKey=rmqroot
|
||||
ConsumerSecretKey=001@#njcnmq
|
||||
ConsumerChannel=
|
||||
ConsumerTopicUD=control_Topic
|
||||
ConsumerTagUD=Test_Tag
|
||||
ConsumerKeyUD=Test_Keys
|
||||
ConsumerTopicRC=recall_Topic
|
||||
ConsumerTagRC=Test_Tag
|
||||
ConsumerKeyRC=Test_Keys
|
||||
ConsumerTopicSET=process_Topic
|
||||
ConsumerTagSET=Test_Tag
|
||||
ConsumerKeySET=Test_Keys
|
||||
ConsumerTopicLOG=ask_log_Topic
|
||||
ConsumerTagLOG=Test_Tag
|
||||
ConsumerKeyLOG=Test_Keys
|
||||
LOGTopic=log_Topic
|
||||
LOGTag=Test_Tag
|
||||
LOGKey=Test_Keys
|
||||
CONNECTTopic=Device_Run_Flag_Topic
|
||||
CONNECTTag=Test_Tag
|
||||
CONNECTKey=Test_Keys
|
||||
Heart_Beat_Topic=Heart_Beat_Topic
|
||||
Heart_Beat_Tag=Test_Tag
|
||||
Heart_Beat_Key=Test_Key
|
||||
Topic_Reply_Topic=Topic_Reply_Topic
|
||||
Topic_Reply_Tag=Test_Tag
|
||||
Topic_Reply_Key=Test_Key
|
||||
1
LFtid1056/dat/095a84f23ec7e283a9ffe8e182708f04.xml
Normal file
1
LFtid1056/dat/095a84f23ec7e283a9ffe8e182708f04.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/0b53c730f88d4b69a73f239475fc3876.xml
Normal file
1
LFtid1056/dat/0b53c730f88d4b69a73f239475fc3876.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/0c6e1be36f19fb4d809836ed96f7796f.xml
Normal file
1
LFtid1056/dat/0c6e1be36f19fb4d809836ed96f7796f.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/0fc2e86ded1ed4cbbda8830acd331314.xml
Normal file
1
LFtid1056/dat/0fc2e86ded1ed4cbbda8830acd331314.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/112e261cb8e804600104ffebfd9cbefd.xml
Normal file
1
LFtid1056/dat/112e261cb8e804600104ffebfd9cbefd.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/134e25eb59a22cc8394ff3bc1dde554c.xml
Normal file
1
LFtid1056/dat/134e25eb59a22cc8394ff3bc1dde554c.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/148f24a2664fa054ede4f686fd984292.xml
Normal file
1
LFtid1056/dat/148f24a2664fa054ede4f686fd984292.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/14e2078291f3a2f800480a6ca699fbcd.xml
Normal file
1
LFtid1056/dat/14e2078291f3a2f800480a6ca699fbcd.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/1654a86f7cb25a322573bbf3571b1765.xml
Normal file
1
LFtid1056/dat/1654a86f7cb25a322573bbf3571b1765.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/180735bfe2c59f4d8e1d85bd2a1984ef.xml
Normal file
1
LFtid1056/dat/180735bfe2c59f4d8e1d85bd2a1984ef.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/1f2c42ee0e8d689005b3f58967054e5c.xml
Normal file
1
LFtid1056/dat/1f2c42ee0e8d689005b3f58967054e5c.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/1ff4038a4574dbc52ccf005bef20041b.xml
Normal file
1
LFtid1056/dat/1ff4038a4574dbc52ccf005bef20041b.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/2bd3d80c86e078d77f8482e48c3b3f99.xml
Normal file
1
LFtid1056/dat/2bd3d80c86e078d77f8482e48c3b3f99.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/35d62f0ad688a14583290a0ba0fc2b42.xml
Normal file
1
LFtid1056/dat/35d62f0ad688a14583290a0ba0fc2b42.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/38c2ec0e305b07c04674ddbb4c972a2a.xml
Normal file
1
LFtid1056/dat/38c2ec0e305b07c04674ddbb4c972a2a.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/393c172bcd297f8cd68a41f202f78b2f.xml
Normal file
1
LFtid1056/dat/393c172bcd297f8cd68a41f202f78b2f.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/3ef998435d692c62f58a8dc26dec99cc.xml
Normal file
1
LFtid1056/dat/3ef998435d692c62f58a8dc26dec99cc.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/49dd3d79e7cdd27597ba2526858c372e.xml
Normal file
1
LFtid1056/dat/49dd3d79e7cdd27597ba2526858c372e.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/4b1e55fba360f30a5e91bcf6fae63d82.xml
Normal file
1
LFtid1056/dat/4b1e55fba360f30a5e91bcf6fae63d82.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/4fd8f3fb39c8333e525aad2cfed8d4ba.xml
Normal file
1
LFtid1056/dat/4fd8f3fb39c8333e525aad2cfed8d4ba.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/52f48442032e85d8257b9e6e409ae727.xml
Normal file
1
LFtid1056/dat/52f48442032e85d8257b9e6e409ae727.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/5c26d1a34a996a64645334cf36fc65cd.xml
Normal file
1
LFtid1056/dat/5c26d1a34a996a64645334cf36fc65cd.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/5d623f8d16d2f66473c4ae04661fc995.xml
Normal file
1
LFtid1056/dat/5d623f8d16d2f66473c4ae04661fc995.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/5ff7ad05e7bcd2cc2f540b5e06849776.xml
Normal file
1
LFtid1056/dat/5ff7ad05e7bcd2cc2f540b5e06849776.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/62f1441d04b665b1b598974b411d45eb.xml
Normal file
1
LFtid1056/dat/62f1441d04b665b1b598974b411d45eb.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/63a5b90766f86a484c84f22c9ce29e44.xml
Normal file
1
LFtid1056/dat/63a5b90766f86a484c84f22c9ce29e44.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/63cb5f7437e1922be7f0b606b12679ce.xml
Normal file
1
LFtid1056/dat/63cb5f7437e1922be7f0b606b12679ce.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/643f3997e9c31173d8c93cc38c1d5129.xml
Normal file
1
LFtid1056/dat/643f3997e9c31173d8c93cc38c1d5129.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/64992cafdb7bf7e94b0ae3556c6dd2b3.xml
Normal file
1
LFtid1056/dat/64992cafdb7bf7e94b0ae3556c6dd2b3.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/669466052823ae6ce09cd6bc575176be.xml
Normal file
1
LFtid1056/dat/669466052823ae6ce09cd6bc575176be.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/66aac8de119b48126ae0fa3fd28b8499.xml
Normal file
1
LFtid1056/dat/66aac8de119b48126ae0fa3fd28b8499.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/68d618ae6a52e34483c90bb7642ef353.xml
Normal file
1
LFtid1056/dat/68d618ae6a52e34483c90bb7642ef353.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/69d6bebce232d3949d9f1d75c66d90c4.xml
Normal file
1
LFtid1056/dat/69d6bebce232d3949d9f1d75c66d90c4.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/6a9b0cae90ca3ea6b750f1117e93816b.xml
Normal file
1
LFtid1056/dat/6a9b0cae90ca3ea6b750f1117e93816b.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/6cd6498c079396e9d42d6764bdad21ab.xml
Normal file
1
LFtid1056/dat/6cd6498c079396e9d42d6764bdad21ab.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/74a0fe58192a690f2037dab8bcff5e25.xml
Normal file
1
LFtid1056/dat/74a0fe58192a690f2037dab8bcff5e25.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/7677814fc1e2bc194ca2d82a62f3dd1d.xml
Normal file
1
LFtid1056/dat/7677814fc1e2bc194ca2d82a62f3dd1d.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/7a0fb4cc2013497797dc46d50526d1b1.xml
Normal file
1
LFtid1056/dat/7a0fb4cc2013497797dc46d50526d1b1.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/7be60bf2c9265b2f91ff11a21c62edbb.xml
Normal file
1
LFtid1056/dat/7be60bf2c9265b2f91ff11a21c62edbb.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/824cf5433d2d8c82eaf816a28f9a232d.xml
Normal file
1
LFtid1056/dat/824cf5433d2d8c82eaf816a28f9a232d.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/82c0ffe9b6a6e54ff6768aa4b151759d.xml
Normal file
1
LFtid1056/dat/82c0ffe9b6a6e54ff6768aa4b151759d.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/895f951309513397852cafbe846c9298.xml
Normal file
1
LFtid1056/dat/895f951309513397852cafbe846c9298.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/8c84b8c0ae99b17afa0c79c0e2e848e3.xml
Normal file
1
LFtid1056/dat/8c84b8c0ae99b17afa0c79c0e2e848e3.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/8dd12600976ac6c95e18c5980400eee3.xml
Normal file
1
LFtid1056/dat/8dd12600976ac6c95e18c5980400eee3.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/8e051a07f6fc2ff03487bc87cb3e4d91.xml
Normal file
1
LFtid1056/dat/8e051a07f6fc2ff03487bc87cb3e4d91.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/942b70650cb8d099401c01446d3c08de.xml
Normal file
1
LFtid1056/dat/942b70650cb8d099401c01446d3c08de.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/950c2c11da36897552766fd7a02af6d5.xml
Normal file
1
LFtid1056/dat/950c2c11da36897552766fd7a02af6d5.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/9667fe63920c038605911d88b0f9e9a2.xml
Normal file
1
LFtid1056/dat/9667fe63920c038605911d88b0f9e9a2.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/a25d58d7780a51de20223c7ffffa3219.xml
Normal file
1
LFtid1056/dat/a25d58d7780a51de20223c7ffffa3219.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/ab5204b5e2222712f70233741ff7bfb0.xml
Normal file
1
LFtid1056/dat/ab5204b5e2222712f70233741ff7bfb0.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/b3f054b07c0cd6eae366c3f7c0178dc8.xml
Normal file
1
LFtid1056/dat/b3f054b07c0cd6eae366c3f7c0178dc8.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/b59349bf7d426611102acd7ef65f8861.xml
Normal file
1
LFtid1056/dat/b59349bf7d426611102acd7ef65f8861.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/ba674fe68e95b86478683610ad7790df.xml
Normal file
1
LFtid1056/dat/ba674fe68e95b86478683610ad7790df.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/c1c0d4bbf50a11e76c378ce5ac116f5f.xml
Normal file
1
LFtid1056/dat/c1c0d4bbf50a11e76c378ce5ac116f5f.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/c6ec71e6dcd9e9c2aae7eb5eddd59099.xml
Normal file
1
LFtid1056/dat/c6ec71e6dcd9e9c2aae7eb5eddd59099.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/c8a4b43c08da8a44b3d08ee730dc5d56.xml
Normal file
1
LFtid1056/dat/c8a4b43c08da8a44b3d08ee730dc5d56.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/c9a030d97e42865d4fc24b4424e87ad0.xml
Normal file
1
LFtid1056/dat/c9a030d97e42865d4fc24b4424e87ad0.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/ca16b843d971cb760168c797e24e81f9.xml
Normal file
1
LFtid1056/dat/ca16b843d971cb760168c797e24e81f9.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/ca42aa3651b65244924374397fbffa80.xml
Normal file
1
LFtid1056/dat/ca42aa3651b65244924374397fbffa80.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/caf9a220fe671f9e82d282c88edad459.xml
Normal file
1
LFtid1056/dat/caf9a220fe671f9e82d282c88edad459.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/cb5275b81d36cf6fc7069fafa121d734.xml
Normal file
1
LFtid1056/dat/cb5275b81d36cf6fc7069fafa121d734.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/d2526e08196f7dfdc4ca81c67264c0c1.xml
Normal file
1
LFtid1056/dat/d2526e08196f7dfdc4ca81c67264c0c1.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/dab107086ada2504be4f40a158858838.xml
Normal file
1
LFtid1056/dat/dab107086ada2504be4f40a158858838.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/dab72e86a7b30990285976169c0dfb3f.xml
Normal file
1
LFtid1056/dat/dab72e86a7b30990285976169c0dfb3f.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/dc0a7739bdeb18d6c82b493bcd49d5d3.xml
Normal file
1
LFtid1056/dat/dc0a7739bdeb18d6c82b493bcd49d5d3.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/dc9bef9ba55574c5e7d1d3c78afa2c45.xml
Normal file
1
LFtid1056/dat/dc9bef9ba55574c5e7d1d3c78afa2c45.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/deba4e29af5efbf756557661ec254ec3.xml
Normal file
1
LFtid1056/dat/deba4e29af5efbf756557661ec254ec3.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/e6585f5e6837be74ba04350f133340d9.xml
Normal file
1
LFtid1056/dat/e6585f5e6837be74ba04350f133340d9.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/eeaa3bdc02c4e50b48eb92716d5c14db.xml
Normal file
1
LFtid1056/dat/eeaa3bdc02c4e50b48eb92716d5c14db.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/f0386b207f416a1bf7948d478087a0fb.xml
Normal file
1
LFtid1056/dat/f0386b207f416a1bf7948d478087a0fb.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/fa1050bdce7efd63508e881536157058.xml
Normal file
1
LFtid1056/dat/fa1050bdce7efd63508e881536157058.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/fc205e2c998c64fc5afb8ec62b54129a.xml
Normal file
1
LFtid1056/dat/fc205e2c998c64fc5afb8ec62b54129a.xml
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A00555","message":"下载文件,文件服务器下载文件流为空","data":null}
|
||||
1
LFtid1056/dat/ledger/20250807185343_ledger.txt
Normal file
1
LFtid1056/dat/ledger/20250807185343_ledger.txt
Normal file
@@ -0,0 +1 @@
|
||||
{"code":"A0000","message":"根据前置ip获取对应的终端台账信息,成功","data":[{"id":"175427bfa6ed1de818464e43dd09e04f","ip":"192.168.1.242","devType":"PQS882_B4_MMS(4U4I)","org_name":null,"port":"102","stationName":null,"name":"南昌终端_242","subName":"南昌变电站","updateTime":"2025-08-07 14:58:03","manufacturer":"南京灿能","status":"0","series":"","devKey":"","processNo":2,"maxProcessNum":3,"monitorData":[{"id":"4067998c0327a624b83610879c7de4c6","name":"监测点3","lineNo":"3","voltageLevel":"10kV","ptType":"0","status":"0"},{"id":"74203b186428c1684aa450ad05257b06","name":"监测点1","lineNo":"1","voltageLevel":"10kV","ptType":"0","status":"0"},{"id":"777737a13b16cf860d65d9f71e54f858","name":"监测点4","lineNo":"4","voltageLevel":"10kV","ptType":"0","status":"0"},{"id":"e07c34b721ac9ccd62e03d796a2f7fa8","name":"监测点2","lineNo":"2","voltageLevel":"10kV","ptType":"0","status":"0"}]},{"id":"438a3bc6cb9c04c91d572973b5760d25","ip":"192.168.1.234","devType":"PQS_882B4","org_name":null,"port":"102","stationName":null,"name":"宜春终端_234","subName":"宜春变电站","updateTime":"2025-08-07 14:58:02","manufacturer":"浪拜迪","status":"0","series":"","devKey":"","processNo":1,"maxProcessNum":3,"monitorData":[{"id":"5f99b9ba4e563439ec8490a0c598da8d","name":"监测点1","lineNo":"1","voltageLevel":"110kV","ptType":"0","status":"0"}]},{"id":"8cb7a1abcd70b26716358267ea517a22","ip":"192.168.1.238","devType":"NPQS_682","org_name":null,"port":"102","stationName":null,"name":"赣州终端_238","subName":"赣州变电站","updateTime":"2025-08-07 14:58:03","manufacturer":"浪拜迪","status":"0","series":"","devKey":"","processNo":1,"maxProcessNum":3,"monitorData":[{"id":"1b9cece8b66b100a52c4a31f469e8e0a","name":"监测点1","lineNo":"1","voltageLevel":"220kV","ptType":"0","status":"0"},{"id":"6072c5deecdae5d1b4dd5c475517444b","name":"监测点2","lineNo":"2","voltageLevel":"220kV","ptType":"0","status":"0"}]},{"id":"ad60520f9294864f41ca48b5acee62d6","ip":"192.168.1.229","devType":"PQS882_B4_MMS(4U4I)","org_name":null,"port":"102","stationName":null,"name":"南昌终端_229","subName":"南昌变电站","updateTime":"2025-08-07 11:43:07","manufacturer":"南京灿能","status":"0","series":"","devKey":"","processNo":1,"maxProcessNum":3,"monitorData":[{"id":"683e77d95099a315fb777b16113e34ae","name":"监测点3","lineNo":"3","voltageLevel":"10kV","ptType":"0","status":"0"},{"id":"824ab9440f0c9c279c2fc2080e19d07a","name":"监测点2","lineNo":"2","voltageLevel":"10kV","ptType":"0","status":"0"},{"id":"d446071b8bd8dd493687bae4746c02e5","name":"监测点1","lineNo":"1","voltageLevel":"10kV","ptType":"1","status":"0"},{"id":"fde41900cbaef358c9a9e23960ee2593","name":"监测点4","lineNo":"4","voltageLevel":"10kV","ptType":"0","status":"0"}]},{"id":"e8d14ec6395262c4984f1f8152a9135b","ip":"192.168.1.230","devType":"NPQS_681","org_name":null,"port":"102","stationName":null,"name":"上饶终端","subName":"上饶变电站","updateTime":"2025-08-07 11:43:07","manufacturer":"北京四方","status":"0","series":"5nfaNZS5ukTZ3L4rQiMinA==","devKey":"g/4565/nRBWbqxo7gZ8JZdg4ozz2DutoY/MaCC1PMIw=","processNo":1,"maxProcessNum":3,"monitorData":[{"id":"401a696fe9918bb4cce7d9393d0d5df7","name":"上饶监测点1","lineNo":"1","voltageLevel":"750kV","ptType":"0","status":"0"}]},{"id":"f3a02c4a89e75fe0cc377088fd1cb2f1","ip":"192.168.1.240","devType":"NPQS_882B4","org_name":null,"port":"102","stationName":null,"name":"九江终端_240","subName":"九江变电站","updateTime":"2025-08-07 14:58:03","manufacturer":"浪拜迪","status":"0","series":"","devKey":"","processNo":1,"maxProcessNum":3,"monitorData":[{"id":"cfc481a71953f85a23fd448c3cffc884","name":"监测点1","lineNo":"1","voltageLevel":"35kV","ptType":"0","status":"0"}]}]}
|
||||
@@ -616,6 +616,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_REALSTAT));
|
||||
// <20><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><F3A3ACB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -702,6 +703,10 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
else {
|
||||
std::cerr << "Failed to save file: " << file_path
|
||||
<< ", Error: " << strerror(errno) << std::endl;
|
||||
|
||||
// <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>֪ͨ<CDA8>ƶ<EFBFBD>
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::BAD_REQUEST),
|
||||
id, static_cast<int>(DeviceState::READING_EVENTFILE));
|
||||
}
|
||||
|
||||
//<2F><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>أ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>еȺ<D0B5><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>״̬<D7B4><CCAC>ֱ<EFBFBD>ӾͻῪʼ<E1BFAA><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -710,6 +715,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_EVENTFILE));
|
||||
// <20><><EFBFBD>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><F3A3ACB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -754,6 +760,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
else {
|
||||
std::cout << "reason code: " << static_cast<int>(udata[8]) << "-" << static_cast<int>(udata[9]) << "-" << static_cast<int>(udata[10]) << "-" << static_cast<int>(udata[11]) << std::endl;
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_FILEMENU));
|
||||
// <20><><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><F3A3ACB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -835,7 +842,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
|
||||
//ʹ<>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>lnk20250826
|
||||
std::string filename;
|
||||
//SendFileWeb(WEB_FILEUPLOAD, file_path, file_path, filename);
|
||||
SendFileWeb(WEB_FILEUPLOAD, file_path, file_path, filename);
|
||||
std::cout << "File upload: " << filename << std::endl;
|
||||
|
||||
}
|
||||
@@ -845,12 +852,13 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
|
||||
//<2F><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>أ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>еȺ<D0B5><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>״̬<D7B4><CCAC>ֱ<EFBFBD>ӾͻῪʼ<E1BFAA><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
ClientManager::instance().change_device_state(id, DeviceState::READING_FILEDATA);
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_FILEDATA));
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><F3A3ACB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -913,7 +921,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
|
||||
//<2F>洢<EFBFBD><E6B4A2>ֵlnk20250827
|
||||
//save_internal_value(id, monitor_index, fList);
|
||||
save_set_value(id, monitor_index, fList);
|
||||
|
||||
//<2F><><EFBFBD>Զ<EFBFBD>ֵ<EFBFBD>Ĺ<DEB8><C4B9><EFBFBD>
|
||||
//ClientManager::instance().set_fixedvalue_action_to_device(id, monitor_index, fList);
|
||||
@@ -923,6 +931,8 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR),id,static_cast<int>(DeviceState::READING_FIXEDVALUE));
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><F3A3ACB5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -1000,13 +1010,15 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>)
|
||||
uint8_t monitor_index = parser.RecvData[0];
|
||||
std::cout << "Monitor Index: " << static_cast<int>(monitor_index) << std::endl;
|
||||
//send_set_value_reply(id, monitor_index, dz_list);
|
||||
send_set_value_reply(id, monitor_index, dz_list);
|
||||
|
||||
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR),id,static_cast<int>(DeviceState::READING_FIXEDVALUEDES));
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -1026,12 +1038,20 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
else if (udata[8] == static_cast<unsigned char>(MsgResponseType::Response_NewNACK)) {
|
||||
std::cout << "set error" << mac << std::endl;
|
||||
// װ<>÷<EFBFBD><C3B7><EFBFBD>Ӧ<EFBFBD>𣬶<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
|
||||
//<2F><>Ӧlnk20250828
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::BAD_REQUEST),id,static_cast<int>(DeviceState::SET_FIXEDVALUE));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>װ<EFBFBD>ö<EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
// <20><><EFBFBD><EFBFBD>װ<EFBFBD>ö<EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><>Ӧlnk20250828
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR),id,static_cast<int>(DeviceState::SET_FIXEDVALUE));
|
||||
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
break;
|
||||
@@ -1071,7 +1091,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
|
||||
//<2F>洢<EFBFBD><E6B4A2>ֵlnk20250827
|
||||
//save_internal_value(id, fList);
|
||||
save_internal_value(id, fList);
|
||||
|
||||
//<2F>ڲ<EFBFBD><DAB2><EFBFBD>ֵ<EFBFBD>IJ<DEB8><C4B2><EFBFBD>
|
||||
//ClientManager::instance().set_interfixedvalue_action_to_device(id, fList);
|
||||
@@ -1081,6 +1101,9 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_INTERFIXEDVALUE));
|
||||
|
||||
// <20><>ȡװ<C8A1><D7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -1149,11 +1172,17 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
}
|
||||
}
|
||||
|
||||
//lnk20250905
|
||||
save_internal_info(id, fixValueList);
|
||||
|
||||
//<2F>ڲ<EFBFBD><DAB2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_INTERFIXEDVALUEDES));
|
||||
|
||||
// <20><>ȡװ<C8A1><D7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -1209,11 +1238,14 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
<< ", enable: " << static_cast<int>(dz_info.bit_enable) << std::endl;
|
||||
}
|
||||
|
||||
send_internal_value_reply(id, control_words);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::READING_CONTROLWORD));
|
||||
// <20><>ȡװ<C8A1>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
@@ -1224,6 +1256,8 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
if (udata[8] == static_cast<unsigned char>(MsgResponseType::Response_NewACK)) {
|
||||
std::cout << "set success" << mac << std::endl;
|
||||
//<2F>ڲ<EFBFBD><DAB2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::OK), id, static_cast<int>(DeviceState::SET_INTERFIXEDVALUE));
|
||||
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else if (udata[8] == static_cast<unsigned char>(MsgResponseType::Response_NewNACK)) {
|
||||
@@ -1232,11 +1266,14 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
||||
std::cout << "reason code: " << static_cast<int>(udata[8]) << "-" << static_cast<int>(udata[9]) << "-" << static_cast<int>(udata[10]) << "-" << static_cast<int>(udata[11]) << std::endl;
|
||||
|
||||
// װ<>÷<EFBFBD><C3B7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::BAD_REQUEST), id, static_cast<int>(DeviceState::SET_INTERFIXEDVALUE));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
else {
|
||||
// װ<>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||
send_reply_to_cloud(static_cast<int>(ResponseCode::INTERNAL_ERROR), id, static_cast<int>(DeviceState::SET_INTERFIXEDVALUE));
|
||||
// <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ֵʧ<D6B5>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EEB9A4><EFBFBD><EFBFBD>
|
||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||
}
|
||||
|
||||
585
LFtid1056/etc/Default_Config.xml
Normal file
585
LFtid1056/etc/Default_Config.xml
Normal file
@@ -0,0 +1,585 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--注:#7#代表通配符,用于通配数据类型 采用8421码,8-CP95、4-最小值、2-最大值、1-平均值-->
|
||||
<!-- %2,50%代表通配符,用于通配谐波数据,采用范围编码,第一个数字表示谐波起始号,第二个数字谐波结束号-->
|
||||
<!-- SEQ=后面的值采用8421码 8-T、4-C、2-B、1-A-->
|
||||
<!--注:send类型:0-不发送kafka、1-发送kafka-->
|
||||
<!--注:type类型:0-DataType、1-监测点、2-剔除标记、3-发生时刻,毫秒、4-数据链表、5-相位、6-值索引、9-实时SOE事件-->
|
||||
<!--注:nane:参数项、desc:参数描述、type:参数等级、DO:数据对象名、DA:数据属性名、Coefficient:数据系数、Offset:起始序号偏移量、PltFlag:长时闪变标志-->
|
||||
<!--注:角型接线时,相角为0,不再进行DO、DA路径值扩展-->
|
||||
<JSConfigTemplate version="2021-12-15" author="ww" SelectStat="JiangSu" SelectReal="Kafka Producer" desc="昆明长水机场增加谐波类数据配置">
|
||||
<!--注:暂态事件解析规则配置 Flag:0-不分相 1-分相 如果Flag=0 A,B,C配置成一样,如果Flag=1,A,B,C根据实际配置-->
|
||||
<WavePhasic Flag="1" A="QVVR1" B="QVVR2" C="QVVR3" />
|
||||
<!--注:暂态事件持续事件单位:0-毫秒 1-秒-->
|
||||
<UnitOfTime Unit="1" />
|
||||
<!--注:上送值的时间:UTC-UTC时间 beijing-北京时间-->
|
||||
<ValueOfTime Unit="UTC" />
|
||||
<!--注:录波文件的时间:UTC-UTC时间 beijing-北京时间-->
|
||||
<ComtradeFile WaveTimeFlag="beijing" />
|
||||
<IED name="PQMonitor" desc="电能质量监测装置" />
|
||||
<LDevice Prefix="PQM" desc="监测点" />
|
||||
<ReportMap>
|
||||
<!--用于映射需要触发那些报告-->
|
||||
<!--ReportControl:ID,RCBName,intgPd,dchg,qchg,dupd,period,gi,issuffixed,seqNum,timeStamp,reasonCode,dataSet,dataRef,bufOvfl,entryID,configRef,segmentation,FlickerFlag-->
|
||||
<!--600/60秒,即10分钟/1分钟-->
|
||||
<!--0,0,0,1,0为周期触发报告-->
|
||||
<!--1,0,0,0,0为变位触发报告-->
|
||||
<ReportStat>
|
||||
<Report ReportControl="LLN0$BR$brcbFlickerData,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,3,1" />
|
||||
<Report ReportControl="LLN0$BR$brcbStatisticData,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,1,0" />
|
||||
</ReportStat>
|
||||
<ReportReal>
|
||||
<Report ReportControl="LLN0$RP$urcbRealData,3,0,0,0,1,0,yes,1,1,1,1,1,0,1,1,1,3,2" />
|
||||
</ReportReal>
|
||||
<ReportEvent>
|
||||
<Report ReportControl="LLN0$BR$brcbQVVR,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,8,1,0"/>
|
||||
<Report ReportControl="LLN0$BR$brcbRDRE,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,8,1,0"/>
|
||||
<Report ReportControl="LLN0$BR$brcbGGIO,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,8,1,0"/>
|
||||
<Report ReportControl="LLN0$BR$brcbLPHD,60,1,0,0,0,0,yes,1,1,1,1,1,0,1,1,1,8,1,0"/>
|
||||
</ReportEvent>
|
||||
</ReportMap>
|
||||
<Topic name="HISDATA" desc="历史稳态数据">
|
||||
<DataType name="DATA_TYPE" value="02" desc="历史短时闪变数据" type="0">
|
||||
<Monitor name="MONITOR" desc="监测点" type="1">
|
||||
<Item name="FLAG" value="0" desc="剔除标记" type="2" />
|
||||
<Item name="TIME" desc="发生时刻" type="3" />
|
||||
<Item name="F_S" desc="短时闪变和波动" type="4" >
|
||||
<Sequence name="SEQ" value="7" desc="相别" type="5" >
|
||||
<Value name="PST" desc="短时闪变" type="6" DO="MFLK0$MX$PhPst" DA="phs*$cVal$mag$f" />
|
||||
<Value name="FLUC" desc="电压波动幅度" type="6" DO="MFLK0$MX$PhFluc" DA="phs*$cVal$mag$f" />
|
||||
<Value name="FLUCF" desc="电压波动频度" type="6" DO="MFLK0$MX$PhFlucf" DA="phs*$cVal$mag$f" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="03" desc="历史长时闪变数据" type="0">
|
||||
<Monitor name="MONITOR" desc="监测点" type="1">
|
||||
<Item name="FLAG" value="0" desc="剔除标记" type="2" />
|
||||
<Item name="TIME" desc="发生时刻" type="3" />
|
||||
<Item name="F_L" desc="闪变" type="4" >
|
||||
<Sequence name="SEQ" value="7" desc="相别" type="5" >
|
||||
<Value name="PLT" desc="长时闪变" type="6" DO="MFLK0$MX$PhPlt" DA="phs*$cVal$mag$f" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="04" desc="历史暂态数据" type="0" >
|
||||
<Monitor name="MONITOR" desc="监测点" type="1" >
|
||||
<Item name="VOLTAGE" desc="暂态指标" type="4" >
|
||||
<Sequence name="SEQ" value="7" desc="相别" type="5">
|
||||
<Value name="MAG" desc="残余电压" type="6" DO="QVVR0$MX$VVa" DA="mag$f" />
|
||||
<Value name="DUR" desc="持续时间" type="6" DO="QVVR0$MX$VVaTm" DA="mag$f" />
|
||||
<Value name="SEQ" desc="相别" type="6" DO="" DA="" />
|
||||
<Value name="STARTTIME" desc="开始时间" type="6" DO="" DA="" />
|
||||
<Value name="ENDTIME" desc="结束时间" type="6" DO="" DA="" />
|
||||
<Value name="DISKIND" desc="暂降类型" type="6" DO="" DA="" />
|
||||
<Value name="WAVEFILE" desc="波形文件名称" type="6" DO="" DA="" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="01" desc="历史稳态数据" type="0">
|
||||
<Monitor name="MONITOR" desc="监测点" type="1">
|
||||
<Item name="FLAG" value="0" desc="剔除标记" type="2" />
|
||||
<Item name="TIME" desc="发生时刻" type="3" />
|
||||
<Item name="V" desc="电压" type="4" >
|
||||
<!--电压V部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<!--注:Coefficient 值系数,转成kafka的时候乘以系数;BaseFlag 基础数据标志 0或没有-非基础数据 1-基础数据;LimitUp 数据合理上限,如果包含*%UN字符表示需要乘以电压等级电压,如果包含*%U字符表示需要乘以电压等级/1.732电压例如:220kV则相电压上限为1.5*220;LimitDown 数据合理下限 如果包含*%U字符表示需要乘以电压等级电压-->
|
||||
<Value name="G_DELTA_V" desc="电压偏差95值" type="6" DO="MMXU4$MX$PhVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="DELTA_V" desc="电压偏差平均值" type="6" DO="MMXU2$MX$PhVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="MAX_DELTA_V" desc="电压偏差最大值" type="6" DO="MMXU1$MX$PhVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="MIN_DELTA_V" desc="电压偏差最小值" type="6" DO="MMXU3$MX$PhVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="G_VRMS" desc="电压有效值95值" type="6" DO="MMXU4$MX$PhV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="VRMS" desc="电压有效值平均值" type="6" DO="MMXU2$MX$PhV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MAX_VRMS" desc="电压有效值最大值" type="6" DO="MMXU1$MX$PhV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MIN_VRMS" desc="电压有效值最小值" type="6" DO="MMXU3$MX$PhV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="G_VRMS_LVR" desc="线电压有效值95值" type="6" DO="MMXU4$MX$PPV" DA="l_phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="VRMS_LVR" desc="线电压有效值平均值" type="6" DO="MMXU2$MX$PPV" DA="l_phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MAX_VRMS_LVR" desc="线电压有效值最大值" type="6" DO="MMXU1$MX$PPV" DA="l_phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MIN_VRMS_LVR" desc="线电压有效值最小值" type="6" DO="MMXU3$MX$PPV" DA="l_phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="G_VTHD" desc="电压总谐波畸变率95值" type="6" DO="MHAI4$MX$ThdPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="VTHD" desc="电压总谐波畸变率平均值" type="6" DO="MHAI2$MX$ThdPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_VTHD" desc="电压总谐波畸变率最大值" type="6" DO="MHAI1$MX$ThdPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_VTHD" desc="电压总谐波畸变率最小值" type="6" DO="MHAI3$MX$ThdPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_VFUND_ANGLE" desc="基波电压相角95值" type="6" DO="MHAI4$MX$HFundPhV" DA="phs*$cVal$ang$f" />
|
||||
<Value name="VFUND_ANGLE" desc="基波电压相角平均值" type="6" DO="MHAI2$MX$HFundPhV" DA="phs*$cVal$ang$f" />
|
||||
<Value name="MAX_VFUND_ANGLE" desc="基波电压相角最大值" type="6" DO="MHAI1$MX$HFundPhV" DA="phs*$cVal$ang$f" />
|
||||
<Value name="MIN_VFUND_ANGLE" desc="基波电压相角最小值" type="6" DO="MHAI3$MX$HFundPhV" DA="phs*$cVal$ang$f" />
|
||||
<Value name="G_V1" desc="基波电压有效值95值" type="6" DO="MHAI4$MX$HFundPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="V1" desc="基波电压有效值平均值" type="6" DO="MHAI2$MX$HFundPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_V1" desc="基波电压有效值最大值" type="6" DO="MHAI1$MX$HFundPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_V1" desc="基波电压有效值最小值" type="6" DO="MHAI3$MX$HFundPhV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_SV_%0,49%" desc="间谐波电压含有率(f25-2475)95值" type="6" DO="MHAI9$MX$HRPhV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="SV_%0,49%" desc="间谐波电压含有率(f25-2475)平均值" type="6" DO="MHAI7$MX$HRPhV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MAX_SV_%0,49%" desc="间谐波电压含有率(f25-2475)最大值" type="6" DO="MHAI6$MX$HRPhV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MIN_SV_%0,49%" desc="间谐波电压含有率(f25-2475)最小值" type="6" DO="MHAI8$MX$HRPhV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="G_V%2,50%" desc="谐波电压含有率(2-50)95值" type="6" DO="MHAI4$MX$HRPhV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="V%2,50%" desc="谐波电压含有率(2-50)平均值" type="6" DO="MHAI2$MX$HRPhV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="MAX_V%2,50%" desc="谐波电压含有率(2-50)最大值" type="6" DO="MHAI1$MX$HRPhV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="MIN_V%2,50%" desc="谐波电压含有率(2-50)最小值" type="6" DO="MHAI3$MX$HRPhV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="G_VA%2,50%" desc="谐波电压相角(2-50)95值" type="6" DO="MHAI4$MX$HRPhV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="VA%2,50%" desc="谐波电压相角(2-50)平均值" type="6" DO="MHAI2$MX$HRPhV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="MAX_VA%2,50%" desc="谐波电压相角(2-50)最大值" type="6" DO="MHAI1$MX$HRPhV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="MIN_VA%2,50%" desc="谐波电压相角(2-50)最小值" type="6" DO="MHAI3$MX$HRPhV" DA="phs*Har[%-2]$ang$f" />
|
||||
</Sequence>
|
||||
<!--电压V部分(A-C相)角型接线-->
|
||||
<Sequence name="SEQ" value="112" desc="相别(A-C相)" type="5">
|
||||
<!--注:Coefficient 值系数,转成kafka的时候乘以系数;BaseFlag 基础数据标志 0或没有-非基础数据 1-基础数据;LimitUp 数据合理上限,如果包含*%UN字符表示需要乘以电压等级电压,如果包含*%U字符表示需要乘以电压等级/1.732电压例如:220kV则相电压上限为1.5*220;LimitDown 数据合理下限 如果包含*%U字符表示需要乘以电压等级电压-->
|
||||
<Value name="G_DELTA_V" desc="电压偏差95值" type="6" DO="MMXU4$MX$PPVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="DELTA_V" desc="电压偏差平均值" type="6" DO="MMXU2$MX$PPVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="MAX_DELTA_V" desc="电压偏差最大值" type="6" DO="MMXU1$MX$PPVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="MIN_DELTA_V" desc="电压偏差最小值" type="6" DO="MMXU3$MX$PPVDev" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="20" LimitDown="-20" Coefficient="1"/>
|
||||
<Value name="G_VRMS_LVR" desc="电压有效值95值" type="6" DO="MMXU4$MX$PPV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="VRMS_LVR" desc="电压有效值平均值" type="6" DO="MMXU2$MX$PPV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MAX_VRMS_LVR" desc="电压有效值最大值" type="6" DO="MMXU1$MX$PPV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="MIN_VRMS_LVR" desc="电压有效值最小值" type="6" DO="MMXU3$MX$PPV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<Value name="G_VTHD" desc="电压总谐波畸变率95值" type="6" DO="MHAI4$MX$ThdPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="VTHD" desc="电压总谐波畸变率平均值" type="6" DO="MHAI2$MX$ThdPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_VTHD" desc="电压总谐波畸变率最大值" type="6" DO="MHAI1$MX$ThdPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_VTHD" desc="电压总谐波畸变率最小值" type="6" DO="MHAI3$MX$ThdPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_VFUND_ANGLE" desc="基波电压相角95值" type="6" DO="MHAI4$MX$HFundPPVAng" DA="phs*$cVal$ang$f" />
|
||||
<Value name="VFUND_ANGLE" desc="基波电压相角平均值" type="6" DO="MHAI2$MX$HFundPPVAng" DA="phs*$cVal$ang$f" />
|
||||
<Value name="MAX_VFUND_ANGLE" desc="基波电压相角最大值" type="6" DO="MHAI1$MX$HFundPPVAng" DA="phs*$cVal$ang$f" />
|
||||
<Value name="MIN_VFUND_ANGLE" desc="基波电压相角最小值" type="6" DO="MHAI3$MX$HFundPPVAng" DA="phs*$cVal$ang$f" />
|
||||
<Value name="G_V1" desc="基波电压有效值95值" type="6" DO="MHAI4$MX$HFundPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="V1" desc="基波电压有效值平均值" type="6" DO="MHAI2$MX$HFundPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_V1" desc="基波电压有效值最大值" type="6" DO="MHAI1$MX$HFundPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_V1" desc="基波电压有效值最小值" type="6" DO="MHAI3$MX$HFundPPV" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_SV_%0,49%" desc="间谐波电压含有率(f25-2475)95值" type="6" DO="MHAI9$MX$HRPPV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="SV_%0,49%" desc="间谐波电压含有率(f25-2475)平均值" type="6" DO="MHAI7$MX$HRPPV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MAX_SV_%0,49%" desc="间谐波电压含有率(f25-2475)最大值" type="6" DO="MHAI6$MX$HRPPV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MIN_SV_%0,49%" desc="间谐波电压含有率(f25-2475)最小值" type="6" DO="MHAI8$MX$HRPPV" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="G_V%2,50%" desc="谐波电压含有率(2-50)95值" type="6" DO="MHAI4$MX$HRPPV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="V%2,50%" desc="谐波电压含有率(2-50)平均值" type="6" DO="MHAI2$MX$HRPPV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="MAX_V%2,50%" desc="谐波电压含有率(2-50)最大值" type="6" DO="MHAI1$MX$HRPPV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="MIN_V%2,50%" desc="谐波电压含有率(2-50)最小值" type="6" DO="MHAI3$MX$HRPPV" DA="phs*Har[%-2]$mag$f" />
|
||||
<Value name="G_VA%2,50%" desc="谐波电压相角(2-50)95值" type="6" DO="MHAI4$MX$HRPPV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="VA%2,50%" desc="谐波电压相角(2-50)平均值" type="6" DO="MHAI2$MX$HRPPV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="MAX_VA%2,50%" desc="谐波电压相角(2-50)最大值" type="6" DO="MHAI1$MX$HRPPV" DA="phs*Har[%-2]$ang$f" />
|
||||
<Value name="MIN_VA%2,50%" desc="谐波电压相角(2-50)最小值" type="6" DO="MHAI3$MX$HRPPV" DA="phs*Har[%-2]$ang$f" />
|
||||
</Sequence>
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<!--电压V部分(T相)-->
|
||||
<Value name="G_VNSEQ" desc="负序电压95值" type="6" DO="MSQI4$MX$SeqV" DA="c2$cVal$mag$f" />
|
||||
<Value name="VNSEQ" desc="负序电压平均值" type="6" DO="MSQI2$MX$SeqV" DA="c2$cVal$mag$f" />
|
||||
<Value name="MAX_VNSEQ" desc="负序电压最大值" type="6" DO="MSQI1$MX$SeqV" DA="c2$cVal$mag$f" />
|
||||
<Value name="MIN_VNSEQ" desc="负序电压最小值" type="6" DO="MSQI3$MX$SeqV" DA="c2$cVal$mag$f" />
|
||||
<Value name="G_V_UNBAN" desc="负序电压不平衡95值" type="6" DO="MSQI4$MX$ImbNgV" DA="mag$f" />
|
||||
<Value name="V_UNBAN" desc="负序电压不平衡平均值" type="6" DO="MSQI2$MX$ImbNgV" DA="mag$f" />
|
||||
<Value name="MAX_V_UNBAN" desc="负序电压不平衡最大值" type="6" DO="MSQI1$MX$ImbNgV" DA="mag$f" />
|
||||
<Value name="MIN_V_UNBAN" desc="负序电压不平衡最小值" type="6" DO="MSQI3$MX$ImbNgV" DA="mag$f" />
|
||||
<Value name="G_VZSEQ" desc="零序电压95值" type="6" DO="MSQI4$MX$SeqV" DA="c3$cVal$mag$f" />
|
||||
<Value name="VZSEQ" desc="零序电压平均值" type="6" DO="MSQI2$MX$SeqV" DA="c3$cVal$mag$f" />
|
||||
<Value name="MAX_VZSEQ" desc="零序电压最大值" type="6" DO="MSQI1$MX$SeqV" DA="c3$cVal$mag$f" />
|
||||
<Value name="MIN_VZSEQ" desc="零序电压最小值" type="6" DO="MSQI3$MX$SeqV" DA="c3$cVal$mag$f" />
|
||||
<Value name="G_VZSEQ_UNBAN" desc="零序电压不平衡95值" type="6" DO="MSQI4$MX$ImbZroV" DA="mag$f" />
|
||||
<Value name="VZSEQ_UNBAN" desc="零序电压不平衡平均值" type="6" DO="MSQI2$MX$ImbZroV" DA="mag$f" />
|
||||
<Value name="MAX_VZSEQ_UNBAN" desc="零序电压不平衡最大值" type="6" DO="MSQI1$MX$ImbZroV" DA="mag$f" />
|
||||
<Value name="MIN_VZSEQ_UNBAN" desc="零序电压不平衡最小值" type="6" DO="MSQI3$MX$ImbZroV" DA="mag$f" />
|
||||
<Value name="G_FREQ" desc="频率95值" type="6" DO="MMXU4$MX$Hz" DA="mag$f" />
|
||||
<Value name="FREQ" desc="频率平均值" type="6" DO="MMXU2$MX$Hz" DA="mag$f" />
|
||||
<Value name="MAX_FREQ" desc="频率最大值" type="6" DO="MMXU1$MX$Hz" DA="mag$f" />
|
||||
<Value name="MIN_FREQ" desc="频率最小值" type="6" DO="MMXU3$MX$Hz" DA="mag$f" />
|
||||
<Value name="G_DELTA_FREQ" desc="频率偏差95值" type="6" DO="MMXU4$MX$HzDev" DA="mag$f" />
|
||||
<Value name="DELTA_FREQ" desc="频率偏差平均值" type="6" DO="MMXU2$MX$HzDev" DA="mag$f" />
|
||||
<Value name="MAX_DELTA_FREQ" desc="频率偏差最大值" type="6" DO="MMXU1$MX$HzDev" DA="mag$f" />
|
||||
<Value name="MIN_DELTA_FREQ" desc="频率偏差最小值" type="6" DO="MMXU3$MX$HzDev" DA="mag$f" />
|
||||
<Value name="G_VPSEQ" desc="正序电压95值" type="6" DO="MSQI4$MX$SeqV" DA="c1$cVal$mag$f" />
|
||||
<Value name="VPSEQ" desc="正序电压平均值" type="6" DO="MSQI2$MX$SeqV" DA="c1$cVal$mag$f" />
|
||||
<Value name="MAX_VPSEQ" desc="正序电压最大值" type="6" DO="MSQI1$MX$SeqV" DA="c1$cVal$mag$f" />
|
||||
<Value name="MIN_VPSEQ" desc="正序电压最小值" type="6" DO="MSQI3$MX$SeqV" DA="c1$cVal$mag$f" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
<Item name="I" desc="电流" type="4" >
|
||||
<!--电流I部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<Value name="G_IRMS" desc="电流有效值95值" type="6" DO="MMXU4$MX$A" DA="phs*$cVal$mag$f" />
|
||||
<Value name="IRMS" desc="电流有效值平均值" type="6" DO="MMXU2$MX$A" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_IRMS" desc="电流有效值最大值" type="6" DO="MMXU1$MX$A" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_IRMS" desc="电流有效值最小值" type="6" DO="MMXU3$MX$A" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_I1" desc="基波电流有效值95值" type="6" DO="MHAI4$MX$HA" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="I1" desc="基波电流有效值平均值" type="6" DO="MHAI2$MX$HA" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="MAX_I1" desc="基波电流有效值最大值" type="6" DO="MHAI1$MX$HA" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="MIN_I1" desc="基波电流有效值最小值" type="6" DO="MHAI3$MX$HA" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="G_IFUND_ANGLE" desc="基波电流相角95值" type="6" DO="MHAI4$MX$HA" DA="phs*Har[0]$ang$f" />
|
||||
<Value name="IFUND_ANGLE" desc="基波电流相角平均值" type="6" DO="MHAI2$MX$HA" DA="phs*Har[0]$ang$f" />
|
||||
<Value name="MAX_IFUND_ANGLE" desc="基波电流相角最大值" type="6" DO="MHAI1$MX$HA" DA="phs*Har[0]$ang$f" />
|
||||
<Value name="MIN_IFUND_ANGLE" desc="基波电流相角最小值" type="6" DO="MHAI3$MX$HA" DA="phs*Har[0]$ang$f" />
|
||||
<Value name="G_SI_%0,49%" desc="间谐波电流幅值(f25-2475)95值" type="6" DO="MHAI9$MX$HA" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="SI_%0,49%" desc="间谐波电流幅值(f25-2475)平均值" type="6" DO="MHAI7$MX$HA" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MAX_SI_%0,49%" desc="间谐波电流幅值(f25-2475)最大值" type="6" DO="MHAI6$MX$HA" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="MAX_SI_%0,49%" desc="间谐波电流幅值(f25-2475)最小值" type="6" DO="MHAI8$MX$HA" DA="phs*Har[%-0]$mag$f" />
|
||||
<Value name="G_I%1,50%" desc="谐波电流幅值(2-50)95值" type="6" DO="MHAI4$MX$HA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="I%1,50%" desc="谐波电流幅值(2-50)平均值" type="6" DO="MHAI2$MX$HA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MAX_I%1,50%" desc="谐波电流幅值(2-50)最大值" type="6" DO="MHAI1$MX$HA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MIN_I%1,50%" desc="谐波电流幅值(2-50)最小值" type="6" DO="MHAI3$MX$HA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="G_IA%1,50%" desc="谐波电流相角(2-50)95值" type="6" DO="MHAI4$MX$HA" DA="phs*Har[%-1]$ang$f" />
|
||||
<Value name="IA%1,50%" desc="谐波电流相角(2-50)平均值" type="6" DO="MHAI2$MX$HA" DA="phs*Har[%-1]$ang$f" />
|
||||
<Value name="MAX_IA%1,50%" desc="谐波电流相角(2-50)最大值" type="6" DO="MHAI1$MX$HA" DA="phs*Har[%-1]$ang$f" />
|
||||
<Value name="MIN_IA%1,50%" desc="谐波电流相角(2-50)最小值" type="6" DO="MHAI3$MX$HA" DA="phs*Har[%-1]$ang$f" />
|
||||
<Value name="ITHD" desc="电流总谐波畸变率平均" type="6" DO="MHAI2$MX$ThdA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="MAX_ITHD" desc="电流总谐波畸变率最大" type="6" DO="MHAI1$MX$ThdA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="MIN_ITHD" desc="电流总谐波畸变率最小" type="6" DO="MHAI3$MX$ThdA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="G_ITHD" desc="电流总谐波畸变率95" type="6" DO="MHAI4$MX$ThdA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
</Sequence>
|
||||
<!--电流I部分(T相)-->
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<Value name="G_INSEQ" desc="负序电流95值" type="6" DO="MSQI4$MX$SeqA" DA="c2$cVal$mag$f" />
|
||||
<Value name="INSEQ" desc="负序电流平均值" type="6" DO="MSQI2$MX$SeqA" DA="c2$cVal$mag$f" />
|
||||
<Value name="MAX_INSEQ" desc="负序电流最大值" type="6" DO="MSQI1$MX$SeqA" DA="c2$cVal$mag$f" />
|
||||
<Value name="MIN_INSEQ" desc="负序电流最小值" type="6" DO="MSQI3$MX$SeqA" DA="c2$cVal$mag$f" />
|
||||
<Value name="G_I_UNBAN" desc="负序电流不平衡95值" type="6" DO="MSQI4$MX$ImbNgA" DA="mag$f" />
|
||||
<Value name="I_UNBAN" desc="负序电流不平衡平均值" type="6" DO="MSQI2$MX$ImbNgA" DA="mag$f" />
|
||||
<Value name="MAX_I_UNBAN" desc="负序电流不平衡最大值" type="6" DO="MSQI1$MX$ImbNgA" DA="mag$f" />
|
||||
<Value name="MIN_I_UNBAN" desc="负序电流不平衡最小值" type="6" DO="MSQI3$MX$ImbNgA" DA="mag$f" />
|
||||
<Value name="G_IZSEQ" desc="零序电流95值" type="6" DO="MSQI4$MX$SeqA" DA="c3$cVal$mag$f" />
|
||||
<Value name="IZSEQ" desc="零序电流平均值" type="6" DO="MSQI2$MX$SeqA" DA="c3$cVal$mag$f" />
|
||||
<Value name="MAX_IZSEQ" desc="零序电流最大值" type="6" DO="MSQI1$MX$SeqA" DA="c3$cVal$mag$f" />
|
||||
<Value name="MIN_IZSEQ" desc="零序电流最小值" type="6" DO="MSQI3$MX$SeqA" DA="c3$cVal$mag$f" />
|
||||
<Value name="G_VZSEQ_UNBAN" desc="零序电流不平衡95值" type="6" DO="MSQI4$MX$ImbZroA" DA="mag$f" />
|
||||
<Value name="VZSEQ_UNBAN" desc="零序电流不平衡平均值" type="6" DO="MSQI2$MX$ImbZroA" DA="mag$f" />
|
||||
<Value name="MAX_IZSEQ_UNBAN" desc="零序电流不平衡最大值" type="6" DO="MSQI1$MX$ImbZroA" DA="mag$f" />
|
||||
<Value name="MIN_IZSEQ_UNBAN" desc="零序电流不平衡最小值" type="6" DO="MSQI3$MX$ImbZroA" DA="mag$f" />
|
||||
<Value name="G_IPSEQ" desc="正序电流95值" type="6" DO="MSQI4$MX$SeqA" DA="c1$cVal$mag$f" />
|
||||
<Value name="IPSEQ" desc="正序电流平均值" type="6" DO="MSQI2$MX$SeqA" DA="c1$cVal$mag$f" />
|
||||
<Value name="MAX_IPSEQ" desc="正序电流最大值" type="6" DO="MSQI1$MX$SeqA" DA="c1$cVal$mag$f" />
|
||||
<Value name="MIN_IPSEQ" desc="正序电流最小值" type="6" DO="MSQI3$MX$SeqA" DA="c1$cVal$mag$f" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
<Item name="PQ" desc="功率" type="4" >
|
||||
<!--功率PQ部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<Value name="G_PF" desc="功率因数95值" type="6" DO="MMXU4$MX$PF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="PF" desc="功率因数平均值" type="6" DO="MMXU2$MX$PF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_PF" desc="功率因数最大值" type="6" DO="MMXU1$MX$PF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_PF" desc="功率因数最小值" type="6" DO="MMXU3$MX$PF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_DF" desc="位移功率因数95值" type="6" DO="MMXU4$MX$DF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="DF" desc="位移功率因数平均值" type="6" DO="MMXU2$MX$DF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_DF" desc="位移功率因数最大值" type="6" DO="MMXU1$MX$DF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_DF" desc="位移功率因数最小值" type="6" DO="MMXU3$MX$DF" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_P_FUND" desc="基波有功功率95值" type="6" DO="MHAI4$MX$HW" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="P_FUND" desc="基波有功功率平均值" type="6" DO="MHAI2$MX$HW" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="MAX_P_FUND" desc="基波有功功率最大值" type="6" DO="MHAI1$MX$HW" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="MIN_P_FUND" desc="基波有功功率最小值" type="6" DO="MHAI3$MX$HW" DA="phs*Har[0]$mag$f" />
|
||||
<Value name="G_S" desc="视在功率95值" type="6" DO="MMXU4$MX$VA" DA="phs*$cVal$mag$f" />
|
||||
<Value name="S" desc="视在功率平均值" type="6" DO="MMXU2$MX$VA" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_S" desc="视在功率最大值" type="6" DO="MMXU1$MX$VA" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_S" desc="视在功率最小值" type="6" DO="MMXU3$MX$VA" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_Q" desc="无功功率95值" type="6" DO="MMXU4$MX$VAr" DA="phs*$cVal$mag$f" />
|
||||
<Value name="Q" desc="无功功率平均值" type="6" DO="MMXU2$MX$VAr" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_Q" desc="无功功率最大值" type="6" DO="MMXU1$MX$VAr" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_Q" desc="无功功率最小值" type="6" DO="MMXU3$MX$VAr" DA="phs*$cVal$mag$f" />
|
||||
<Value name="G_P%1,50%" desc="谐波有功功率(2-50)95值" type="6" DO="MHAI4$MX$HW" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="P%1,50%" desc="谐波有功功率(2-50)平均值" type="6" DO="MHAI2$MX$HW" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MAX_P%1,50%" desc="谐波有功功率(2-50)最大值" type="6" DO="MHAI1$MX$HW" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MIN_P%1,50%" desc="谐波有功功率(2-50)最小值" type="6" DO="MHAI3$MX$HW" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="G_Q%1,50%" desc="谐波无功功率(2-50)95值" type="6" DO="MHAI4$MX$HVAr" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="Q%1,50%" desc="谐波无功功率(2-50)平均值" type="6" DO="MHAI2$MX$HVAr" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MAX_Q%1,50%" desc="谐波无功功率(2-50)最大值" type="6" DO="MHAI1$MX$HVAr" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MIN_Q%1,50%" desc="谐波无功功率(2-50)最小值" type="6" DO="MHAI3$MX$HVAr" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="G_S%1,50%" desc="谐波视在功率(2-50)95值" type="6" DO="MHAI4$MX$HVA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="S%1,50%" desc="谐波视在功率(2-50)平均值" type="6" DO="MHAI2$MX$HVA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MAX_S%1,50%" desc="谐波视在功率(2-50)最大值" type="6" DO="MHAI1$MX$HVA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="MIN_S%1,50%" desc="谐波视在功率(2-50)最小值" type="6" DO="MHAI3$MX$HVA" DA="phs*Har[%-1]$mag$f" />
|
||||
<Value name="G_P" desc="有功功率95值" type="6" DO="MMXU4$MX$W" DA="phs*$cVal$mag$f" />
|
||||
<Value name="P" desc="有功功率平均值" type="6" DO="MMXU2$MX$W" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MAX_P" desc="有功功率最大值" type="6" DO="MMXU1$MX$W" DA="phs*$cVal$mag$f" />
|
||||
<Value name="MIN_P" desc="有功功率最小值" type="6" DO="MMXU3$MX$W" DA="phs*$cVal$mag$f" />
|
||||
</Sequence>
|
||||
<!--功率PQ部分(T相)-->
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<Value name="G_PF" desc="功率因数95值" type="6" DO="MMXU4$MX$TotPF" DA="mag$f" />
|
||||
<Value name="PF" desc="功率因数平均值" type="6" DO="MMXU2$MX$TotPF" DA="mag$f" />
|
||||
<Value name="MAX_PF" desc="功率因数最大值" type="6" DO="MMXU1$MX$TotPF" DA="mag$f" />
|
||||
<Value name="MIN_PF" desc="功率因数最小值" type="6" DO="MMXU3$MX$TotPF" DA="mag$f" />
|
||||
<Value name="G_DF" desc="位移功率因数95值" type="6" DO="MMXU4$MX$TotDF" DA="mag$f" />
|
||||
<Value name="DF" desc="位移功率因数平均值" type="6" DO="MMXU2$MX$TotDF" DA="mag$f" />
|
||||
<Value name="MAX_DF" desc="位移功率因数最大值" type="6" DO="MMXU1$MX$TotDF" DA="mag$f" />
|
||||
<Value name="MIN_DF" desc="位移功率因数最小值" type="6" DO="MMXU3$MX$TotDF" DA="mag$f" />
|
||||
<Value name="G_S" desc="视在功率95值" type="6" DO="MMXU4$MX$TotVA" DA="mag$f" />
|
||||
<Value name="S" desc="视在功率平均值" type="6" DO="MMXU2$MX$TotVA" DA="mag$f" />
|
||||
<Value name="MAX_S" desc="视在功率最大值" type="6" DO="MMXU1$MX$TotVA" DA="mag$f" />
|
||||
<Value name="MIN_S" desc="视在功率最小值" type="6" DO="MMXU3$MX$TotVA" DA="mag$f" />
|
||||
<Value name="G_Q" desc="无功功率95值" type="6" DO="MMXU4$MX$TotVAr" DA="mag$f" />
|
||||
<Value name="Q" desc="无功功率平均值" type="6" DO="MMXU2$MX$TotVAr" DA="mag$f" />
|
||||
<Value name="MAX_Q" desc="无功功率最大值" type="6" DO="MMXU1$MX$TotVAr" DA="mag$f" />
|
||||
<Value name="MIN_Q" desc="无功功率最小值" type="6" DO="MMXU3$MX$TotVAr" DA="mag$f" />
|
||||
<Value name="G_P" desc="有功功率95值" type="6" DO="MMXU4$MX$TotW" DA="mag$f" />
|
||||
<Value name="P" desc="有功功率平均值" type="6" DO="MMXU2$MX$TotW" DA="mag$f" />
|
||||
<Value name="MAX_P" desc="有功功率最大值" type="6" DO="MMXU1$MX$TotW" DA="mag$f" />
|
||||
<Value name="MIN_P" desc="有功功率最小值" type="6" DO="MMXU3$MX$TotW" DA="mag$f" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
</Topic>
|
||||
<Topic name="RTDATA" desc="实时数据">
|
||||
<DataType name="DATA_TYPE" value="01" desc="实时稳态数据" send="1" type="0">
|
||||
<Monitor name="-" desc="监测点" type="1">
|
||||
<Item name="FLAG" value="0" desc="剔除标记" type="3" />
|
||||
<Item name="TIME" desc="发生时刻" type="3" />
|
||||
<Item name="V" desc="电压" type="4" >
|
||||
<!--电压V部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<Value name="VRMS" desc="电压有效值" type="6" DO="MMXU0$MX$PhV" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="DELTA_V" desc="电压偏差" type="6" DO="MMXU0$MX$PhVDev" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="VTHD" desc="电压总谐波畸变率" type="6" DO="MHAI0$MX$ThdPhV" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<!--icd101/102模型-->
|
||||
<Value name="VFUND_ANGLE" desc="基波电压相角" type="6" DO="MHAI0$MX$HFundPhV" DA="phs*$cVal$ang$f" Coefficient="1" />
|
||||
<Value name="VRMS_LVR" desc="线电压有效值" type="6" DO="MMXU0$MX$PPV" DA="l_phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" />
|
||||
<!--icd100模型-->
|
||||
<!--<Value name="V_ANGLE" desc="基波电压相角" type="6" DO="MMXU0$MX$PhV||MMXU0$MX$PPV" DA="phs*$cVal$ang$f||phs##$cVal$ang$f" Coefficient="1" /-->
|
||||
<!--icd101/102模型-->
|
||||
<Value name="V1" desc="基波电压有效值" type="6" DO="MHAI0$MX$HFundPhV" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<!--icd100模型-->
|
||||
<!--Value name="V1" desc="基波电压有效值" type="6" DO="MHAI2$MX$HFundPhV||MHAI2$MX$HFundPPV" DA="phs*$cVal$mag$f||phs##$cVal$mag$f" Coefficient="1" /-->
|
||||
<Value name="V%2,50%" desc="2-50次谐波电压含有率" type="6" DO="MHAI0$MX$HRPhV" DA="phs*Har[%-2]$mag$f" Coefficient="1" Offset="0" />
|
||||
<Value name="SV_%0,49%" desc="1-50次间谐波电压含有率" type="6" DO="MHAI5$MX$HRPhV" DA="phs*Har[%-0]$mag$f" Coefficient="1" Offset="0" />
|
||||
<Value name="VA%2,50%" desc="谐波电压相角(2-50)" type="6" DO="MHAI5$MX$HRPhV" DA="phs*Har[%-2]$ang$f" />
|
||||
</Sequence>
|
||||
<!--电压V部分(A-C相)角型接线-->
|
||||
<Sequence name="SEQ" value="112" desc="相别(A-C相)" type="5">
|
||||
<!--注:Coefficient 值系数,转成kafka的时候乘以系数;BaseFlag 基础数据标志 0或没有-非基础数据 1-基础数据;LimitUp 数据合理上限,如果包含*%UN字符表示需要乘以电压等级电压,如果包含*%U字符表示需要乘以电压等级/1.732电压例如:220kV则相电压上限为1.5*220;LimitDown 数据合理下限 如果包含*%U字符表示需要乘以电压等级电压-->
|
||||
<Value name="DELTA_V" desc="电压偏差" type="6" DO="MMXU0$MX$PPVDev" DA="phs*$cVal$mag$f" Coefficient="1"/>
|
||||
<Value name="VRMS_LVR" desc="电压有效值" type="6" DO="MMXU0$MX$PPV" DA="phs*$cVal$mag$f" BaseFlag="1" LimitUp="0*%U" LimitDown="150*%U" Coefficient="1" />
|
||||
<Value name="VTHD" desc="电压总谐波畸变率" type="6" DO="MHAI0$MX$ThdPPV" DA="phs*$cVal$mag$f" Coefficient="1"/>
|
||||
<Value name="VFUND_ANGLE" desc="基波电压相角" type="6" DO="MHAI0$MX$HFundPPV" DA="phs*$cVal$ang$f" Coefficient="1" />
|
||||
<Value name="V1" desc="基波电压有效值" type="6" DO="MHAI0$MX$HFundPPV" DA="phs*$cVal$mag$f" Coefficient="1"/>
|
||||
<Value name="SV_%0,49%" desc="间谐波电压含有率(f25-2475)" type="6" DO="MHAI0$MX$HRPPV" DA="phs*Har[%-0]$mag$f" Coefficient="1" Offset="0" />
|
||||
<Value name="V%2,50%" desc="谐波电压含有率(2-50)" type="6" DO="MHAI5$MX$HRPPV" DA="phs*Har[%-2]$mag$f" Coefficient="1" Offset="0" />
|
||||
<Value name="VA%2,50%" desc="谐波电压相角(2-50)" type="6" DO="MHAI5$MX$HRPPV" DA="phs*Har[%-2]$ang$f" />
|
||||
</Sequence>
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<!--电压V部分(T相)-->
|
||||
<Value name="VNSEQ" desc="负序电压" type="6" DO="MSQI0$MX$SeqV" DA="c2$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="V_UNBAN" desc="负序电压不平衡" type="6" DO="MSQI0$MX$ImbNgV" DA="mag$f" Coefficient="1" />
|
||||
<Value name="VZSEQ" desc="零序电压" type="6" DO="MSQI0$MX$SeqV" DA="c3$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="VZSEQ_UNBAN" desc="零序电压不平衡" type="6" DO="MSQI0$MX$ImbZroV" DA="mag$f" Coefficient="1" />
|
||||
<Value name="FREQ" desc="频率" type="6" DO="MMXU0$MX$Hz" DA="mag$f" Coefficient="1" />
|
||||
<Value name="DELTA_FREQ" desc="频率偏差" type="6" DO="MMXU0$MX$HzDev" DA="mag$f" Coefficient="1" />
|
||||
<Value name="VPSEQ" desc="正序电压" type="6" DO="MSQI0$MX$SeqV" DA="c1$cVal$mag$f" Coefficient="1" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
<Item name="I" desc="电流" type="4" >
|
||||
<!--电流I部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<Value name="IRMS" desc="电流有效值" type="6" DO="MMXU0$MX$A" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="I1" desc="基波电流有效值" type="6" DO="MHAI0$MX$HA" DA="phs*Har[0]$mag$f" Coefficient="1" />
|
||||
<Value name="ITHD" desc="电流总谐波畸变率" type="6" DO="MHAI0$MX$ThdA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<!--icd101/102模型-->
|
||||
<Value name="I_ANGLE" desc="基波电流相角" type="6" DO="MHAI0$MX$HA" DA="phs*Har[0]$ang$f" Coefficient="1" />
|
||||
<!--icd100模型-->
|
||||
<!--Value name="I_ANGLE" desc="基波电流相角" type="6" DO="MMXU0$MX$A" DA="phs*$cVal$ang$f" Coefficient="1" /-->
|
||||
<Value name="I%2,50%" desc="2-50次谐波电流幅值" type="6" DO="MHAI0$MX$HA" DA="phs*Har[%-1]$mag$f" Coefficient="1" Offset="0" />
|
||||
<Value name="SI_%0,49%" desc="1-50次间谐波电流含有率" type="6" DO="MHAI5$MX$HA" DA="phs*Har[%-0]$mag$f" Coefficient="1" Offset="0" />
|
||||
<!--Value name="I%1,49%" desc="1-50次谐波电流含有率" type="6" DO="MHAI0$MX$HA" DA="phs*Har[%-2]$mag$f" Coefficient="1" Offset="1" /-->
|
||||
</Sequence>
|
||||
<!--电流I部分(T相)-->
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<Value name="INSEQ" desc="负序电流" type="6" DO="MSQI0$MX$SeqA" DA="c2$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="I_UNBAN" desc="负序电流不平衡" type="6" DO="MSQI0$MX$ImbNgA" DA="mag$f" Coefficient="1" />
|
||||
<Value name="IZSEQ" desc="零序电流" type="6" DO="MSQI0$MX$SeqA" DA="c3$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="IZSEQ_UNBAN" desc="零序电流不平衡" type="6" DO="MSQI0$MX$ImbZroA" DA="mag$f" Coefficient="1" />
|
||||
<Value name="IPSEQ" desc="正序电流" type="6" DO="MSQI0$MX$SeqA" DA="c1$cVal$mag$f" Coefficient="1" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
<Item name="PQ" desc="功率" type="4" >
|
||||
<!--功率PQ部分(A-C相)-->
|
||||
<Sequence name="SEQ" value="7" desc="相别(A-C相)" type="5">
|
||||
<Value name="PF" desc="功率因数" type="6" DO="MMXU0$MX$PF" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="DF" desc="基波功率因数" type="6" DO="MMXU0$MX$DF" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="P_FUND" desc="基波有功功率" type="6" DO="MHAI0$MX$HW" DA="phs*Har[0]$mag$f" Coefficient="1" />
|
||||
<Value name="S" desc="视在功率" type="6" DO="MMXU0$MX$VA" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="Q" desc="无功功率" type="6" DO="MMXU0$MX$VAr" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
<Value name="P" desc="有功功率" type="6" DO="MMXU0$MX$W" DA="phs*$cVal$mag$f" Coefficient="1" />
|
||||
</Sequence>
|
||||
<!--功率PQ部分(T相)-->
|
||||
<Sequence name="SEQ" value="8" desc="相别(T相)" type="5">
|
||||
<Value name="PF" desc="功率因数" type="6" DO="MMXU0$MX$TotPF" DA="mag$f" Coefficient="1" />
|
||||
<Value name="DF" desc="基波功率因数" type="6" DO="MMXU0$MX$TotDF" DA="mag$f" Coefficient="1" />
|
||||
<Value name="S" desc="视在功率" type="6" DO="MMXU0$MX$TotVA" DA="mag$f" Coefficient="1" />
|
||||
<Value name="Q" desc="无功功率" type="6" DO="MMXU0$MX$TotVAr" DA="mag$f" Coefficient="1" />
|
||||
<Value name="P" desc="有功功率" type="6" DO="MMXU0$MX$TotW" DA="mag$f" Coefficient="1" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="02" desc="实时闪变数据" send="0" type="0">
|
||||
<Monitor name="MONITOR" desc="监测点" type="1">
|
||||
<Item name="TIME" desc="发生时刻" type="3" />
|
||||
<Item name="F" desc="闪变" type="4" >
|
||||
<Sequence name="SEQ" value="7" desc="相别" type="5" >
|
||||
<Value name="SF" desc="短时闪变" type="6" DO="MFLK0$MX$PhPst||MFLK0$MX$PPPst" DA="phs*$cVal$mag$f||phs##$cVal$mag$f" Coefficient="1" PltFlag="False" />
|
||||
<Value name="LF" desc="长时闪变" type="6" DO="MFLK0$MX$PhPlt||MFLK0$MX$PPPlt" DA="phs*$cVal$mag$f||phs##$cVal$mag$f" Coefficient="1" PltFlag="True" />
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="03" desc="实时暂态事件" send="0" type="0" >
|
||||
<Monitor name="MONITOR" desc="监测点" type="1" >
|
||||
<Item name="VOLTAGE" desc="暂态指标" type="4" >
|
||||
<Sequence name="SEQ" value="-" desc="相别" type="5">
|
||||
<Value name="MAG" desc="残余电压" type="6" DO="QVVR0$MX$VVa" DA="mag$f" Coefficient="1" />
|
||||
<Value name="DUR" desc="持续时间" type="6" DO="QVVR0$MX$VVaTm" DA="mag$f" Coefficient="1" />
|
||||
<!--Value name="STARTTIME" desc="开始时间" type="6" DO="" DA="" Coefficient="1" />
|
||||
<Value name="ENDTIME" desc="结束时间" type="6" DO="" DA="" Coefficient="1" />
|
||||
<Value name="DISKIND" desc="暂降类型" type="6" DO="" DA="" Coefficient="1" />
|
||||
<Value name="WAVEFILE" desc="波形文件名称" type="6" DO="" DA="" Coefficient="1" /-->
|
||||
</Sequence>
|
||||
</Item>
|
||||
</Monitor>
|
||||
</DataType>
|
||||
</Topic>
|
||||
<Topic name="RTDATASOE" desc="实时SOE事件">
|
||||
<DataType name="DATA_TYPE" value="01" desc="稳态SOE事件" type="0" >
|
||||
<SOE desc="频率偏差越上限" type="9" DO="GGIO0$ST$Alm1" DA="stVal" TriggerFlag="Alm1" />
|
||||
<SOE desc="频率偏差越下限" type="9" DO="GGIO0$ST$Alm2" DA="stVal" TriggerFlag="Alm2" />
|
||||
<SOE desc="电压偏差越上限" type="9" DO="GGIO0$ST$Alm3" DA="stVal" TriggerFlag="Alm3" />
|
||||
<SOE desc="电压偏差越下限" type="9" DO="GGIO0$ST$Alm4" DA="stVal" TriggerFlag="Alm4" />
|
||||
<SOE desc="短时闪变越限" type="9" DO="GGIO0$ST$Alm5" DA="stVal" TriggerFlag="Alm5" />
|
||||
<SOE desc="长时闪变越限" type="9" DO="GGIO0$ST$Alm6" DA="stVal" TriggerFlag="Alm6" />
|
||||
<SOE desc="电压波动越限" type="9" DO="GGIO0$ST$Alm7" DA="stVal" TriggerFlag="Alm7" />
|
||||
<SOE desc="电压负序不平衡度越限" type="9" DO="GGIO0$ST$Alm8" DA="stVal" TriggerFlag="Alm8" />
|
||||
<SOE desc="电压总谐波畸变率越限" type="9" DO="GGIO0$ST$Alm9" DA="stVal" TriggerFlag="Alm9" />
|
||||
<SOE desc="2次谐波电压越限" type="9" DO="GGIO0$ST$Alm10" DA="stVal" TriggerFlag="Alm10" />
|
||||
<SOE desc="3次谐波电压越限" type="9" DO="GGIO0$ST$Alm11" DA="stVal" TriggerFlag="Alm11" />
|
||||
<SOE desc="4次谐波电压越限" type="9" DO="GGIO0$ST$Alm12" DA="stVal" TriggerFlag="Alm12" />
|
||||
<SOE desc="5次谐波电压越限" type="9" DO="GGIO0$ST$Alm13" DA="stVal" TriggerFlag="Alm13" />
|
||||
<SOE desc="6次谐波电压越限" type="9" DO="GGIO0$ST$Alm14" DA="stVal" TriggerFlag="Alm14" />
|
||||
<SOE desc="7次谐波电压越限" type="9" DO="GGIO0$ST$Alm15" DA="stVal" TriggerFlag="Alm15" />
|
||||
<SOE desc="8次谐波电压越限" type="9" DO="GGIO0$ST$Alm16" DA="stVal" TriggerFlag="Alm16" />
|
||||
<SOE desc="9次谐波电压越限" type="9" DO="GGIO0$ST$Alm17" DA="stVal" TriggerFlag="Alm17" />
|
||||
<SOE desc="10次谐波电压越限" type="9" DO="GGIO0$ST$Alm18" DA="stVal" TriggerFlag="Alm18" />
|
||||
<SOE desc="11次谐波电压越限" type="9" DO="GGIO0$ST$Alm19" DA="stVal" TriggerFlag="Alm19" />
|
||||
<SOE desc="12次谐波电压越限" type="9" DO="GGIO0$ST$Alm20" DA="stVal" TriggerFlag="Alm20" />
|
||||
<SOE desc="13次谐波电压越限" type="9" DO="GGIO0$ST$Alm21" DA="stVal" TriggerFlag="Alm21" />
|
||||
<SOE desc="14次谐波电压越限" type="9" DO="GGIO0$ST$Alm22" DA="stVal" TriggerFlag="Alm22" />
|
||||
<SOE desc="15次谐波电压越限" type="9" DO="GGIO0$ST$Alm23" DA="stVal" TriggerFlag="Alm23" />
|
||||
<SOE desc="16次谐波电压越限" type="9" DO="GGIO0$ST$Alm24" DA="stVal" TriggerFlag="Alm24" />
|
||||
<SOE desc="17次谐波电压越限" type="9" DO="GGIO0$ST$Alm25" DA="stVal" TriggerFlag="Alm25" />
|
||||
<SOE desc="18次谐波电压越限" type="9" DO="GGIO0$ST$Alm26" DA="stVal" TriggerFlag="Alm26" />
|
||||
<SOE desc="19次谐波电压越限" type="9" DO="GGIO0$ST$Alm27" DA="stVal" TriggerFlag="Alm27" />
|
||||
<SOE desc="20次谐波电压越限" type="9" DO="GGIO0$ST$Alm28" DA="stVal" TriggerFlag="Alm28" />
|
||||
<SOE desc="21次谐波电压越限" type="9" DO="GGIO0$ST$Alm29" DA="stVal" TriggerFlag="Alm29" />
|
||||
<SOE desc="22次谐波电压越限" type="9" DO="GGIO0$ST$Alm30" DA="stVal" TriggerFlag="Alm30" />
|
||||
<SOE desc="23次谐波电压越限" type="9" DO="GGIO0$ST$Alm31" DA="stVal" TriggerFlag="Alm31" />
|
||||
<SOE desc="24次谐波电压越限" type="9" DO="GGIO0$ST$Alm32" DA="stVal" TriggerFlag="Alm32" />
|
||||
<SOE desc="25次谐波电压越限" type="9" DO="GGIO0$ST$Alm33" DA="stVal" TriggerFlag="Alm33" />
|
||||
<SOE desc="26次谐波电压越限" type="9" DO="GGIO0$ST$Alm34" DA="stVal" TriggerFlag="Alm34" />
|
||||
<SOE desc="27次谐波电压越限" type="9" DO="GGIO0$ST$Alm35" DA="stVal" TriggerFlag="Alm35" />
|
||||
<SOE desc="28次谐波电压越限" type="9" DO="GGIO0$ST$Alm36" DA="stVal" TriggerFlag="Alm36" />
|
||||
<SOE desc="29次谐波电压越限" type="9" DO="GGIO0$ST$Alm37" DA="stVal" TriggerFlag="Alm37" />
|
||||
<SOE desc="30次谐波电压越限" type="9" DO="GGIO0$ST$Alm38" DA="stVal" TriggerFlag="Alm38" />
|
||||
<SOE desc="31次谐波电压越限" type="9" DO="GGIO0$ST$Alm39" DA="stVal" TriggerFlag="Alm39" />
|
||||
<SOE desc="32次谐波电压越限" type="9" DO="GGIO0$ST$Alm40" DA="stVal" TriggerFlag="Alm40" />
|
||||
<SOE desc="33次谐波电压越限" type="9" DO="GGIO0$ST$Alm41" DA="stVal" TriggerFlag="Alm41" />
|
||||
<SOE desc="34次谐波电压越限" type="9" DO="GGIO0$ST$Alm42" DA="stVal" TriggerFlag="Alm42" />
|
||||
<SOE desc="35次谐波电压越限" type="9" DO="GGIO0$ST$Alm43" DA="stVal" TriggerFlag="Alm43" />
|
||||
<SOE desc="36次谐波电压越限" type="9" DO="GGIO0$ST$Alm44" DA="stVal" TriggerFlag="Alm44" />
|
||||
<SOE desc="37次谐波电压越限" type="9" DO="GGIO0$ST$Alm45" DA="stVal" TriggerFlag="Alm45" />
|
||||
<SOE desc="38次谐波电压越限" type="9" DO="GGIO0$ST$Alm46" DA="stVal" TriggerFlag="Alm46" />
|
||||
<SOE desc="39次谐波电压越限" type="9" DO="GGIO0$ST$Alm47" DA="stVal" TriggerFlag="Alm47" />
|
||||
<SOE desc="40次谐波电压越限" type="9" DO="GGIO0$ST$Alm48" DA="stVal" TriggerFlag="Alm48" />
|
||||
<SOE desc="41次谐波电压越限" type="9" DO="GGIO0$ST$Alm49" DA="stVal" TriggerFlag="Alm49" />
|
||||
<SOE desc="42次谐波电压越限" type="9" DO="GGIO0$ST$Alm50" DA="stVal" TriggerFlag="Alm50" />
|
||||
<SOE desc="43次谐波电压越限" type="9" DO="GGIO0$ST$Alm51" DA="stVal" TriggerFlag="Alm51" />
|
||||
<SOE desc="44次谐波电压越限" type="9" DO="GGIO0$ST$Alm52" DA="stVal" TriggerFlag="Alm52" />
|
||||
<SOE desc="45次谐波电压越限" type="9" DO="GGIO0$ST$Alm53" DA="stVal" TriggerFlag="Alm53" />
|
||||
<SOE desc="46次谐波电压越限" type="9" DO="GGIO0$ST$Alm54" DA="stVal" TriggerFlag="Alm54" />
|
||||
<SOE desc="47次谐波电压越限" type="9" DO="GGIO0$ST$Alm55" DA="stVal" TriggerFlag="Alm55" />
|
||||
<SOE desc="48次谐波电压越限" type="9" DO="GGIO0$ST$Alm56" DA="stVal" TriggerFlag="Alm56" />
|
||||
<SOE desc="49次谐波电压越限" type="9" DO="GGIO0$ST$Alm57" DA="stVal" TriggerFlag="Alm57" />
|
||||
<SOE desc="50次谐波电压越限" type="9" DO="GGIO0$ST$Alm58" DA="stVal" TriggerFlag="Alm58" />
|
||||
<SOE desc="2次谐波电流越限" type="9" DO="GGIO0$ST$Alm59" DA="stVal" TriggerFlag="Alm59" />
|
||||
<SOE desc="3次谐波电流越限" type="9" DO="GGIO0$ST$Alm60" DA="stVal" TriggerFlag="Alm60" />
|
||||
<SOE desc="4次谐波电流越限" type="9" DO="GGIO0$ST$Alm61" DA="stVal" TriggerFlag="Alm61" />
|
||||
<SOE desc="5次谐波电流越限" type="9" DO="GGIO0$ST$Alm62" DA="stVal" TriggerFlag="Alm62" />
|
||||
<SOE desc="6次谐波电流越限" type="9" DO="GGIO0$ST$Alm63" DA="stVal" TriggerFlag="Alm63" />
|
||||
<SOE desc="7次谐波电流越限" type="9" DO="GGIO0$ST$Alm64" DA="stVal" TriggerFlag="Alm64" />
|
||||
<SOE desc="8次谐波电流越限" type="9" DO="GGIO0$ST$Alm65" DA="stVal" TriggerFlag="Alm65" />
|
||||
<SOE desc="9次谐波电流越限" type="9" DO="GGIO0$ST$Alm66" DA="stVal" TriggerFlag="Alm66" />
|
||||
<SOE desc="10次谐波电流越限" type="9" DO="GGIO0$ST$Alm67" DA="stVal" TriggerFlag="Alm67" />
|
||||
<SOE desc="11次谐波电流越限" type="9" DO="GGIO0$ST$Alm68" DA="stVal" TriggerFlag="Alm68" />
|
||||
<SOE desc="12次谐波电流越限" type="9" DO="GGIO0$ST$Alm69" DA="stVal" TriggerFlag="Alm69" />
|
||||
<SOE desc="13次谐波电流越限" type="9" DO="GGIO0$ST$Alm70" DA="stVal" TriggerFlag="Alm70" />
|
||||
<SOE desc="14次谐波电流越限" type="9" DO="GGIO0$ST$Alm71" DA="stVal" TriggerFlag="Alm71" />
|
||||
<SOE desc="15次谐波电流越限" type="9" DO="GGIO0$ST$Alm72" DA="stVal" TriggerFlag="Alm72" />
|
||||
<SOE desc="16次谐波电流越限" type="9" DO="GGIO0$ST$Alm73" DA="stVal" TriggerFlag="Alm73" />
|
||||
<SOE desc="17次谐波电流越限" type="9" DO="GGIO0$ST$Alm74" DA="stVal" TriggerFlag="Alm74" />
|
||||
<SOE desc="18次谐波电流越限" type="9" DO="GGIO0$ST$Alm75" DA="stVal" TriggerFlag="Alm75" />
|
||||
<SOE desc="19次谐波电流越限" type="9" DO="GGIO0$ST$Alm76" DA="stVal" TriggerFlag="Alm76" />
|
||||
<SOE desc="20次谐波电流越限" type="9" DO="GGIO0$ST$Alm77" DA="stVal" TriggerFlag="Alm77" />
|
||||
<SOE desc="21次谐波电流越限" type="9" DO="GGIO0$ST$Alm78" DA="stVal" TriggerFlag="Alm78" />
|
||||
<SOE desc="22次谐波电流越限" type="9" DO="GGIO0$ST$Alm79" DA="stVal" TriggerFlag="Alm79" />
|
||||
<SOE desc="23次谐波电流越限" type="9" DO="GGIO0$ST$Alm80" DA="stVal" TriggerFlag="Alm80" />
|
||||
<SOE desc="24次谐波电流越限" type="9" DO="GGIO0$ST$Alm81" DA="stVal" TriggerFlag="Alm81" />
|
||||
<SOE desc="25次谐波电流越限" type="9" DO="GGIO0$ST$Alm82" DA="stVal" TriggerFlag="Alm82" />
|
||||
<SOE desc="26次谐波电流越限" type="9" DO="GGIO0$ST$Alm83" DA="stVal" TriggerFlag="Alm83" />
|
||||
<SOE desc="27次谐波电流越限" type="9" DO="GGIO0$ST$Alm84" DA="stVal" TriggerFlag="Alm84" />
|
||||
<SOE desc="28次谐波电流越限" type="9" DO="GGIO0$ST$Alm85" DA="stVal" TriggerFlag="Alm85" />
|
||||
<SOE desc="29次谐波电流越限" type="9" DO="GGIO0$ST$Alm86" DA="stVal" TriggerFlag="Alm86" />
|
||||
<SOE desc="30次谐波电流越限" type="9" DO="GGIO0$ST$Alm87" DA="stVal" TriggerFlag="Alm87" />
|
||||
<SOE desc="31次谐波电流越限" type="9" DO="GGIO0$ST$Alm88" DA="stVal" TriggerFlag="Alm88" />
|
||||
<SOE desc="32次谐波电流越限" type="9" DO="GGIO0$ST$Alm89" DA="stVal" TriggerFlag="Alm89" />
|
||||
<SOE desc="33次谐波电流越限" type="9" DO="GGIO0$ST$Alm90" DA="stVal" TriggerFlag="Alm90" />
|
||||
<SOE desc="34次谐波电流越限" type="9" DO="GGIO0$ST$Alm91" DA="stVal" TriggerFlag="Alm91" />
|
||||
<SOE desc="35次谐波电流越限" type="9" DO="GGIO0$ST$Alm92" DA="stVal" TriggerFlag="Alm92" />
|
||||
<SOE desc="36次谐波电流越限" type="9" DO="GGIO0$ST$Alm93" DA="stVal" TriggerFlag="Alm93" />
|
||||
<SOE desc="37次谐波电流越限" type="9" DO="GGIO0$ST$Alm94" DA="stVal" TriggerFlag="Alm94" />
|
||||
<SOE desc="38次谐波电流越限" type="9" DO="GGIO0$ST$Alm95" DA="stVal" TriggerFlag="Alm95" />
|
||||
<SOE desc="39次谐波电流越限" type="9" DO="GGIO0$ST$Alm96" DA="stVal" TriggerFlag="Alm96" />
|
||||
<SOE desc="40次谐波电流越限" type="9" DO="GGIO0$ST$Alm97" DA="stVal" TriggerFlag="Alm97" />
|
||||
<SOE desc="41次谐波电流越限" type="9" DO="GGIO0$ST$Alm98" DA="stVal" TriggerFlag="Alm98" />
|
||||
<SOE desc="42次谐波电流越限" type="9" DO="GGIO0$ST$Alm99" DA="stVal" TriggerFlag="Alm99" />
|
||||
<SOE desc="43次谐波电流越限" type="9" DO="GGIO0$ST$Alm100" DA="stVal" TriggerFlag="Alm100" />
|
||||
<SOE desc="44次谐波电流越限" type="9" DO="GGIO0$ST$Alm101" DA="stVal" TriggerFlag="Alm101" />
|
||||
<SOE desc="45次谐波电流越限" type="9" DO="GGIO0$ST$Alm102" DA="stVal" TriggerFlag="Alm102" />
|
||||
<SOE desc="46次谐波电流越限" type="9" DO="GGIO0$ST$Alm103" DA="stVal" TriggerFlag="Alm103" />
|
||||
<SOE desc="47次谐波电流越限" type="9" DO="GGIO0$ST$Alm104" DA="stVal" TriggerFlag="Alm104" />
|
||||
<SOE desc="48次谐波电流越限" type="9" DO="GGIO0$ST$Alm105" DA="stVal" TriggerFlag="Alm105" />
|
||||
<SOE desc="49次谐波电流越限" type="9" DO="GGIO0$ST$Alm106" DA="stVal" TriggerFlag="Alm106" />
|
||||
<SOE desc="50次谐波电流越限" type="9" DO="GGIO0$ST$Alm107" DA="stVal" TriggerFlag="Alm107" />
|
||||
<SOE desc="电压越上限(自定义触发)" type="9" DO="GGIO0$ST$Alm108" DA="stVal" TriggerFlag="Alm108" />
|
||||
<SOE desc="电压越下限(自定义触发)" type="9" DO="GGIO0$ST$Alm109" DA="stVal" TriggerFlag="Alm109" />
|
||||
<SOE desc="电流越上限(自定义触发)" type="9" DO="GGIO0$ST$Alm110" DA="stVal" TriggerFlag="Alm110" />
|
||||
<SOE desc="电流越下限(自定义触发)" type="9" DO="GGIO0$ST$Alm111" DA="stVal" TriggerFlag="Alm111" />
|
||||
<SOE desc="电压变化量越限(自定义触发)" type="9" DO="GGIO0$ST$Alm112" DA="stVal" TriggerFlag="Alm112" />
|
||||
<SOE desc="电流变化量越限(自定义触发)" type="9" DO="GGIO0$ST$Alm113" DA="stVal" TriggerFlag="Alm113" />
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="02" desc="暂态SOE事件" type="0" >
|
||||
</DataType>
|
||||
<DataType name="DATA_TYPE" value="03" desc="状态SOE事件" type="0" >
|
||||
<SOE desc="终端工作电源上电" type="9" DO="LPHD0$ST$PwrUp" DA="stVal" TriggerFlag="PwrUp" />
|
||||
<SOE desc="终端工作电源掉电" type="9" DO="GGIO0$ST$PwrDn" DA="stVal" TriggerFlag="PwrDn" />
|
||||
</DataType>
|
||||
</Topic>
|
||||
<Topic name="SOEDATA" desc="告警SOE">
|
||||
<SOE name="ThdVVal" desc="电压总畸变率越限告警" type="9" DO="GGIO0$ST$Alm9" DA="stVal" />
|
||||
<SOE name="ThdAVal" desc="电流总畸变率越限告警" type="9" DO="" DA="" />
|
||||
<SOE name="HToddVVal" desc="奇次谐波电压含有率越限告警" type="9" DO="" DA="" />
|
||||
<SOE name="HTeddVVal" desc="偶次谐波电压含有率越限告警" type="9" DO="" DA="" />
|
||||
<SOE name="H2AVal" desc="2次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm59" DA="stVal" />
|
||||
<SOE name="H3AVal" desc="3次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm60" DA="stVal" />
|
||||
<SOE name="H4AVal" desc="4次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm61" DA="stVal" />
|
||||
<SOE name="H5AVal" desc="5次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm62" DA="stVal" />
|
||||
<SOE name="H7AVal" desc="7次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm64" DA="stVal" />
|
||||
<SOE name="H9AVal" desc="9次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm66" DA="stVal" />
|
||||
<SOE name="H11AVal" desc="11次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm68" DA="stVal" />
|
||||
<SOE name="H13AVal" desc="13次谐波电流越限告警" type="9" DO="GGIO0$ST$Alm70" DA="" />
|
||||
<SOE name="ImbNgVFVal" desc="电压负序不平衡度越限告警" type="9" DO="GGIO0$ST$Alm8" DA="stVal" />
|
||||
<SOE name="ImbNgAFVal" desc="电流负序不平衡度越限告警" type="9" DO="" DA="" />
|
||||
<SOE name="OvHzStrVal" desc="频率高越限告警" type="9" DO="GGIO0$ST$Alm1" DA="stVal" />
|
||||
<SOE name="UnHzStrVal" desc="频率低越限告警" type="9" DO="GGIO0$ST$Alm2" DA="" />
|
||||
<SOE name="LRVInterrup" desc="长期电压中断告警" type="9" DO="" DA="" />
|
||||
<SOE name="LRVSwell" desc="电压上偏差越限告警" type="9" DO="GGIO0$ST$Alm3" DA="stVal" />
|
||||
<SOE name="LRVSag" desc="电压下偏差越限告警" type="9" DO="GGIO0$ST$Alm4" DA="stVal" />
|
||||
<SOE name="PhPstVal" desc="短时闪变越限告警" type="9" DO="GGIO0$ST$Alm5" DA="stVal" />
|
||||
<SOE name="PhPltVal" desc="长时闪变越限告警" type="9" DO="GGIO0$ST$Alm6" DA="stVal" />
|
||||
<SOE name="PhyStateFault" desc="终端运行状态:故障" type="9" DO="" DA="" />
|
||||
<SOE name="PhyStateRun" desc="终端运行状态:运行" type="9" DO="" DA="" />
|
||||
<SOE name="PwrUp" desc="终端上电" type="9" DO="" DA="" />
|
||||
<SOE name="PwrDn" desc="终端掉电" type="9" DO="" DA="" />
|
||||
<SOE name="CommInterrupt" desc="终端通信中断" type="9" DO="" DA="" />
|
||||
<SOE name="CommResume" desc="终端通信恢复" type="9" DO="" DA="" />
|
||||
</Topic>
|
||||
</JSConfigTemplate>
|
||||
6
LFtid1056/etc/runtime.cf
Normal file
6
LFtid1056/etc/runtime.cf
Normal file
@@ -0,0 +1,6 @@
|
||||
# 文件名:runtime.cf
|
||||
# 执行程序路径 ^ 可执行程序名 启动参数 ^ 重启特有参数 ^ 首次启动特有参数 ^ 程序首次启动前的延时秒数 ^ 重启是否忽略 ^ 首次启动是否忽略
|
||||
/home/pq/zwproject/LFtid1056/bin/ ^ cloud-front-test -s 3_3^ ^ ^ 1 ^ ^
|
||||
/home/pq/zwproject/LFtid1056/bin/ ^ cloud-front-test -s 2_3^ ^ ^ 1 ^ ^
|
||||
/home/pq/zwproject/LFtid1056/bin/ ^ cloud-front-test -s 1_3^ ^ ^ 1 ^ ^
|
||||
/home/pq/zwproject/LFtid1056/bin/ ^ fe_watchdog -m 8192 ^ ^ ^ 1 ^ IGNORE_RESTART ^
|
||||
@@ -153,7 +153,7 @@ void* client_manager_thread(void* arg) {
|
||||
|
||||
printf("Started client connections\n");
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/*// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::vector<PointInfo> points1 = {
|
||||
{"P001", "Main Voltage", "D001",1 ,1, 1, 1, 1,"0.38k",0},
|
||||
{"P002", "Backup Voltage", "D001",2 ,1, 1, 1, 1,"0.38k",0}
|
||||
@@ -165,16 +165,16 @@ void* client_manager_thread(void* arg) {
|
||||
"D001", "Primary Device", "Model-X", "00-B7-8D-01-88-7f",
|
||||
1, points1,true
|
||||
}
|
||||
};
|
||||
};*/
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
|
||||
//std::vector<DeviceInfo> test_devices = generate_test_devices(100);
|
||||
|
||||
//lnk<6E><6B>̨<EFBFBD>˶<EFBFBD>ȡ<EFBFBD>豸
|
||||
//std::vector<DeviceInfo> devices = GenerateDeviceInfoFromLedger(terminal_devlist);//lnk<6E><6B><EFBFBD><EFBFBD>
|
||||
std::vector<DeviceInfo> devices = GenerateDeviceInfoFromLedger(terminal_devlist);//lnk<6E><6B><EFBFBD><EFBFBD>
|
||||
|
||||
//̨<>˴<EFBFBD>ӡ
|
||||
//PrintDevices(devices);
|
||||
PrintDevices(devices);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
start_client_connect(devices);
|
||||
@@ -302,7 +302,7 @@ int main(int argc ,char** argv) {//
|
||||
std::cerr << "process param error,exit" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
//init_daemon();
|
||||
init_daemon();
|
||||
srand(time(NULL)); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>ʼ<EFBFBD><CABC><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -319,10 +319,10 @@ int main(int argc ,char** argv) {//
|
||||
cleanup_args(args);
|
||||
}
|
||||
|
||||
/*while(!INITFLAG){
|
||||
while(!INITFLAG){
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
std::cout << "waiting cloudfront initialize ..." << std::endl;
|
||||
}*/
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
|
||||
for (int i = 1; i < THREAD_CONNECTIONS; i++) {
|
||||
@@ -387,7 +387,7 @@ int main(int argc ,char** argv) {//
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/*// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::vector<PointInfo> points2 = {
|
||||
{"P101", "Generator Output", "D002",1 ,1, 1, 1, 1,"0.38k",0}
|
||||
};
|
||||
@@ -398,7 +398,7 @@ int main(int argc ,char** argv) {//
|
||||
"D002", "Backup Device", "Model-Y", "00-B7-8D-A8-00-D6",
|
||||
1, points2,true
|
||||
}
|
||||
};
|
||||
};*/
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>socket<65><74><EFBFBD><EFBFBD>״̬
|
||||
static int queue_monitor = 0;
|
||||
@@ -407,9 +407,9 @@ int main(int argc ,char** argv) {//
|
||||
printf("Message queue size: %zu\n", message_queue.size());
|
||||
queue_monitor = 0;
|
||||
|
||||
for (const auto& device : devices) {
|
||||
/*for (const auto& device : devices) {
|
||||
//ClientManager::instance().add_device(device);
|
||||
}
|
||||
}*/
|
||||
|
||||
/*std::vector<DeviceInfo> test_devices = generate_test_devices(count);
|
||||
count++;
|
||||
|
||||
Reference in New Issue
Block a user