IEC61850笔记--开源代码libIEC61850(二)

IEC61850标准学习和调试,测试的记录文档,主要参考了IEC61850标准文档,《IEC61850应用入门(第二版)》,开源代码libIEC61850及libIEC61850说明文档。

IEC61850标准内容参考IEC61850标准文档,以及IEC61850标准介绍文档《IEC 61850应用入门》。

代码分析

libIEC61850作为一个网络通信协议代码,遵循基本的网络通信协议构架,服务端包括socket,bind,listen,select,recv,send等操作。分别对这些操作在代码中的调用层次进行说明,介绍只涉及mms服务端的网络构架。

socket & bind
main
->IedServer_start
->MmsServer_startListeningThreadless
->IsoServer_startListeningThreadless
->setupIsoServer
->TcpServerSocket_create
->socket & bind


listen
main
->IedServer_start
->MmsServer_startListeningThreadless
->IsoServer_startListeningThreadless
->setupIsoServer
-> ServerSocket_listen
->listen


FD_SET
main
-> IedServer_start
-> singleThreadedServerThread(Thread_create)
-> IedServer_waitReady
-> MmsServer_waitReady

-> IsoServer_waitReady
-> Handleset_addSocket
-> FD_SET


select
main
-> IedServer_start
-> singleThreadedServerThread(Thread_create)
-> IedServer_waitReady
-> MmsServer_waitReady
-> IsoServer_waitReady
-> Handleset_waitReady
->select


recv
main
-> IedServer_start
-> singleThreadedServerThread(Thread_create)
-> MmsServer_handleIncomingMessages(select)
-> IsoServer_processIncomingMessages
-> handleIsoConnectionsThreadless
-> handleClientConnections
-> IsoConnection_handleTcpConnection
-> CotpConnection_readToTpktBuffer
-> Socket_read
->recv


send
main
-> IedServer_start
-> singleThreadedServerThread(Thread_create)
-> MmsServer_handleIncomingMessages(select)
-> IsoServer_processIncomingMessages
-> handleIsoConnectionsThreadless
-> handleClientConnections
-> IsoConnection_handleTcpConnection(recv)
-> CotpConnection_sendConnectionResponseMessage
-> sendBuffer
-> Socket_write
-> send

posted on 2016-10-10 10:19  gp_scorpius  阅读(2377)  评论(0编辑  收藏  举报

导航