资源简介
IEC 60870-5-104是电力变电站数据采集和控制的常用协议。基于Qt5实现104规约的client。
代码片段和文件信息
#include
#include
#include
#include
#include
#include “iec104_class.h“
using namespace std;
iec104_class::iec104_class()
{
strncpy( slaveIP ““ 20 );
Port = 2404;
msg_supervisory = true;
seq_order_check = true;
connectedTCP = false;
tout_startdtact = -1;
tout_supervisory = -1;
tout_testfr = -1;
tout_gi = -1;
VS = 0;
VR = 0;
TxOk = false;
masterAddress = 0;
slaveAddress = 0;
GIobjectCnt = 0;
}
void iec104_class::disableSequenceOrderCheck()
{
seq_order_check = false;
}
int iec104_class::getPortTCP()
{
return Port;
}
void iec104_class::setPortTCP( unsigned port )
{
Port = port;
}
void iec104_class::setSecondaryIP(char * ip)
{
strncpy( slaveIP ip 20 );
}
char * iec104_class::getSecondaryIP()
{
return slaveIP;
}
void iec104_class::setSecondaryAddress(int addr)
{
slaveAddress = addr;
}
int iec104_class::getSecondaryAddress()
{
return slaveAddress;
}
void iec104_class::setPrimaryAddress(int addr)
{
masterAddress = addr;
}
int iec104_class::getPrimaryAddress()
{
return masterAddress;
}
void iec104_class::onConnectTCP()
{
connectedTCP = true;
TxOk = false;
VS = 0;
VR = 0;
mLog.pushMsg(“*** TCP CONNECT!“);
sendStartDTACT();
}
void iec104_class::onDisconnectTCP()
{
connectedTCP = false;
tout_startdtact = -1;
tout_supervisory = -1;
tout_gi = -1;
TxOk = false;
mLog.pushMsg(“*** TCP DISCONNECT!“);
}
void iec104_class::onTimerSecond()
{
iec_apdu apdu;
static unsigned int cnts = 1;
cnts++;
if ( ! (cnts % 5) )
if ( !connectedTCP )
connectTCP();
if (connectedTCP)
{
if ( tout_startdtact > 0 )
tout_startdtact--;
if ( tout_startdtact==0 ) // timeout of startdtact: retry
sendStartDTACT();
if ( tout_gi > 0 )
{
tout_gi--;
if ( tout_gi == 0 )
solicitGI();
}
if (msg_supervisory)
{
if (tout_supervisory > 0)
tout_supervisory--;
if (tout_supervisory > 0)
tout_supervisory--;
if (tout_supervisory == 0)
{
tout_supervisory = -1;
sendSupervisory();
}
}
}
// if connected and no data received send TESTFRACT
if ( connectedTCP && TxOk )
{
if ( tout_testfr > 0 )
{
tout_testfr--;
if ( tout_testfr == 0 )
{
apdu.start = START;
apdu.length = 4;
apdu.NS = TESTFRACT;
apdu.NR = 0;
sendTCP((char *)&apdu 6);
mLog.pushMsg(“<-- TESTFRACT“);
}
}
}
}
void iec104_class::solicitGI()
{
iec_apdu wapdu;
wapdu.start = START;
wapdu.length = 0x0E;
wapdu.NS = VS;
wapdu.NR = VR;
wapdu.asduh.type = INTERROGATION;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21153 2016-04-22 10:21 IEC104\bdtr.h
文件 151864 2018-11-14 17:43 IEC104\debug\iec104_class.o
文件 151954 2018-11-14 17:43 IEC104\debug\logmsg.o
文件 552190 2018-11-14 17:43 IEC104\debug\main.o
文件 896540 2018-11-14 17:43 IEC104\debug\mainwindow.o
文件 6726 2018-11-14 17:43 IEC104\debug\moc_mainwindow.cpp
文件 541301 2018-11-14 17:43 IEC104\debug\moc_mainwindow.o
文件 9895 2018-11-14 17:43 IEC104\debug\moc_predefs.h
文件 10302 2018-11-14 17:43 IEC104\debug\moc_qiec104.cpp
文件 403661 2018-11-14 17:43 IEC104\debug\moc_qiec104.o
文件 386729 2018-11-14 17:43 IEC104\debug\qiec104.o
文件 2821766 2018-11-14 17:43 IEC104\debug\QTester104.exe
文件 2279 2016-04-22 10:21 IEC104\iec104.h
文件 486 2016-04-22 10:21 IEC104\IEC104.pro
文件 23765 2018-11-14 18:04 IEC104\IEC104.pro.user
文件 7931 2018-11-14 17:42 IEC104\IEC104.pro.user.2.1pre1
文件 52929 2018-11-14 17:50 IEC104\iec104_class.cpp
文件 9420 2016-04-22 10:21 IEC104\iec104_class.h
文件 14697 2016-04-22 10:21 IEC104\iec104_types.h
文件 35141 2016-04-22 10:21 IEC104\LICENSE
文件 3280 2016-04-22 10:21 IEC104\logmsg.cpp
文件 2121 2016-04-22 10:21 IEC104\logmsg.h
文件 183 2018-11-14 17:50 IEC104\main.cpp
文件 29920 2018-11-14 17:50 IEC104\mainwindow.cpp
文件 4634 2016-04-22 10:21 IEC104\mainwindow.h
文件 7230 2016-04-22 10:21 IEC104\mainwindow.ui
文件 29361 2018-11-14 17:43 IEC104\Makefile
文件 68188 2018-11-14 17:43 IEC104\Makefile.Debug
文件 68318 2018-11-14 17:43 IEC104\Makefile.Release
文件 4574 2016-04-22 10:21 IEC104\qiec104.cpp
............此处省略11个文件信息
相关资源
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- lotus domino notes(包括client administrato
- MQTT_3.1protocol_Specific中文版
- httpclient4.3工具类
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- instantclient_12_2.zip
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
- 基于QT的黑白棋游戏设计和实现
- Qt写的连连看小游戏
- QTranslate_6.7.2.7z
- Qt基于FFmpeg播放本地 H.264H264文件
- QT编的MP3播放器
- linux系统的二级文件系统(QT实现了简
- QT生成DLL库文件的方法和使用方法详解
- Bitvise SSH Client 8.23
- QT+opencv+OCR 身份证号码,银行卡号识别
- Qt实现的简单的中国象棋程序
- Qt时钟Demo,在原来基础上添加了秒针
- 基于Qt和opencv的身份证号码识别系统
- 基于FFmpeg4.0.2的AAC编码器
- Qt写的Windows下屏幕录制程序源码
- QT旅游攻略软件程序源代码
- mp4_play.zip
评论
共有 条评论