当前位置: 首页 > news >正文

做教育的需要做个网站吗wordpress用什么主机好

做教育的需要做个网站吗,wordpress用什么主机好,wordpress 信息字段,网页微信看朋友圈之前项目中使用到libiec61850库,都是服务端开发。这次新的需求要接收服务端的遥测数据,这就涉及到客户端开发了。 客户端开发没搞过啊,挑战不少,但是人不就是通过战胜困难才成长的嘛。通过查看libiec61850的客户端API发现&#xf…
之前项目中使用到libiec61850库,都是服务端开发。这次新的需求要接收服务端的遥测数据,这就涉及到客户端开发了。 客户端开发没搞过啊,挑战不少,但是人不就是通过战胜困难才成长的嘛。

通过查看libiec61850的客户端API发现,它支持两种模式,一种同步阻塞模式,另一种是异步回调模式。由于我没有打算采用多线程,那就选异步回调模式吧。

首先 ,创建链接,并connect,安装链接回调函数。

    IedClientError error;IedConnection con = IedConnection_create();IedConnection_installStateChangedHandler(con, connectionCB, this);IedConnection_connectAsync(con, &error, ip.c_str(), port);

接着,在链接回调函数中,判断如果连接成功的话,就获取rcb属性。因为客户端一个很重要的功能就是接收服务端的rcb(报告控制块),然后从rcb中解析出服务端更新了哪个字段。

IedClientError error;IedConnection_getServerDirectoryAsync(connection, &error, NULL, NULL, getServerDirectoryHandler, connection);std::string rcbRef = g_pMmsMgr->getLdName(connection) + "/LLN0.RP.urcbMeasure01";IedConnection_getRCBValuesAsync(connection, &error, rcbRef.c_str(), NULL, getRCBValuesCB, connection);

getServerDirectoryHandler这个回调函数,实现的是获取逻辑设备名称,这个在注册获取rcb属性回调函数时会用到。

void CMMSManager::getRCBValuesCB(uint32_t invokeId, void* parameter, IedClientError err, ClientReportControlBlock rcb)
{if (err == IED_ERROR_OK){IedConnection connection = (IedConnection)parameter;ClientReportControlBlock_setResv(rcb, true);ClientReportControlBlock_setTrgOps(rcb, TRG_OPT_QUALITY_CHANGED | TRG_OPT_DATA_CHANGED | TRG_OPT_GI);std::string dataSetRef = g_pMmsMgr->getLdName(connection) + "/LLN0$dsMeasure";ClientReportControlBlock_setDataSetReference(rcb, dataSetRef.c_str());ClientReportControlBlock_setRptEna(rcb, true);std::string rcbRef = g_pMmsMgr->getLdName(connection) + "/LLN0.RP.urcbMeasure01";IedConnection_installReportHandler(connection, rcbRef.c_str(),ClientReportControlBlock_getRptId(rcb), reportCB, parameter);/* Write RCB parameters and enable report */IedConnection_setRCBValuesAsync(connection, &err, rcb, RCB_ELEMENT_RESV | RCB_ELEMENT_DATSET | RCB_ELEMENT_TRG_OPS| RCB_ELEMENT_RPT_ENA | RCB_ELEMENT_GI, true, genericServiceCB, parameter);}
}

最开始时,我的客户端无论如何都收不到服务断的报告控制块,就是这个getRCBValuesCB回调函数里的逻辑没写对。

碰到困难时,一定不要怕,多看libiec61850中关于client的例子,再加上不断尝试,这样基本的功能框架就实现了。

http://www.dtcms.com/a/430356.html

相关文章:

  • 网站上的付费文章怎么做俄语网站
  • 外贸网站制作要求给别人开发一个网站多少钱
  • 手机网站底部广告代码wordpress科技公司主题
  • 免费云建站正规百度推广
  • 国通快速免费建站跨平台软件开发工具
  • 免费网站服务器2020怎么免费注册自己的网站
  • 网站建设客户来源重庆建设工程质量信息网
  • 江西网站建设公司电话微商软件
  • 湖南网站推广多少钱网络推广专员招聘
  • 手机版网站开发教学网站转化下降原因
  • 网站制作和网页制作是不是一样it培训机构哪个好
  • 徐州建站模板公司开发区人力资源市场招聘信息
  • 做网站常用的语言互联网项目网站
  • 银川网站建设公司哪家不错邢台市路桥建设公司网站
  • wordpress怎么当站长黄骅百度贴吧招聘
  • 保险理财网站建设工商银行在线登录入口
  • 用帝国cms做企业网站版权手机wap网站免费制作
  • 网站模板怎么改ps怎么logo设计制作
  • 青岛高级网站建设价格本科学历提升
  • dhl做运单的网站注册微信
  • 做网站什么意思wordpress好用的编辑器代码
  • 做亚马逊网站的账务处理户县网站建设
  • 周口市规划建设局网站wordpress 中文版 编码
  • 青海小学网站建设网站常用的优化方法
  • 高新区手机网站建设湘潭网站建设 AA磐石网络
  • 长春市做网站推广开一个二手车销售网站怎么做
  • 佛山市禅城网站建设网页制作公司设计理念
  • 数据分析工具网站怎么加关键词做优化
  • 手机怎么免费建网站wordpress上传视频插件
  • 2017企业网站建设方案苏州网页制作服务商