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

外贸网站知名做外链100种宣传方式

外贸网站知名做外链,100种宣传方式,成都网站关键字优化,福州网站建设的公司哪家好之前项目中使用到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/wzjs/211899.html

相关文章:

  • 杭州做网站需要多少钱推广链接点击器
  • 高职思政主题网站建设作用推广普通话海报
  • 做美食网站的需求分析百度关键词优化策略
  • 安康市移动公司电话windows优化大师会员兑换码
  • html5 珠宝网站seo海外推广
  • 小程序模板是什么意思宁波如何做抖音seo搜索优化
  • 建设网站需要的人才搜索引擎优化关键词
  • 温州外贸企业网站建设企业品牌推广策划方案
  • 长沙建设信息网站购买友情链接网站
  • 做化工的 有那些网站哪家网络营销好
  • 5站合一 网站建设企业建站 平台
  • 零基础建网站房地产销售怎么找客户
  • 网站制作教程图解优化网站性能监测
  • 网站建设标准依据百度助手app下载安装
  • 广州做网络服装的网站建设网络营销方式有哪些分类
  • 网站动态logo怎么做西安网站建设公司
  • 个人怎么建立公众号seo平台优化
  • 手机网站设计平台青岛seo整站优化招商电话
  • 郑州网站开发比较好的网络公司百度云网盘下载
  • 做网站好靠谱的seo收费
  • 网站建设选哪个好长沙营销型网站建设
  • 做车品的网站昆明抖音推广
  • 自己做网站还是挂靠好新乡网站推广
  • 一般公司建设网站布局保定百度seo排名
  • jspajax网站开发典型实例新闻投稿平台有哪些
  • 腾讯云建设网站视频百度竞价怎么收费
  • 直播做ppt的网站网店网络营销与推广策划书
  • 做整形网站多少钱网络seo
  • 手机网站开发流程图如何做seo搜索引擎优化
  • 做网站是学什么专业链接提交入口