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

初中做语文题的网站怎么开网站 第一步怎么做

初中做语文题的网站,怎么开网站 第一步怎么做,平邑县门户网站,h5页面导入 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/479067.html

相关文章:

  • 漯河网站推广哪家好微信小程序模板使用
  • 【大模型实战笔记 3】大模型Function Call的原理及应用
  • 校园网站的作用广州网络推广外包平台
  • 微网站 获取手机号凡客诚品网站建设策划书
  • MyCat 实战:订单与用户数据的水平分库分表 + MySQL 读写分离完整方案
  • Learning Path Recommendation
  • 【足式机器人控制】名义落足点与Raibert落足点详细讲解
  • 简单聊聊数据可视化大屏制作的前端设计与后端开发
  • 做网站首选科远网络中文域名网站链接无法打开
  • 客户管理系统中的“客户画像”是什么?如何通过数据构建精准用户画像?
  • 物流网站素材校网站建设方案
  • 点击网站出现微信二维码的链接怎么做小网站模板
  • 一次HTTP请求的旅程:用strace + tcpdump追踪DNS与TCP
  • Android监听第三方播放获取音乐信息及包名
  • wordpress仿站教程网wordpress 房屋租赁
  • 在线视频网站开发成本手机版网页开发者工具
  • [GO]一文理清Go语言依赖管理:从go get到Go Modules,避坑指南
  • 嵌入式软件架构--按键消息队列2(组合键,按键转义与三种消息模式)
  • 电商平台有哪些网站名山东省城乡建设厅网站
  • Vue 3 + Vite:现代前端开发新范式-前端开发的”涡轮增压引擎”-优雅草卓伊凡
  • 前端-Vuex
  • 微信小说网站开发商丘网络科技有限公司
  • 避免时区问题的最佳实践, 数据库, mybatis
  • 望江县建设局网站发布网页
  • Codeforces1058(Div.2) A至F题解
  • MCP原理与实践1-原理部分(详细)
  • 云栖实录|人工智能+大数据平台加速企业模型后训练
  • WordPress整站下载器长春火车站建在哪里
  • 做电影平台网站怎么赚钱吗营销型网站建设多少钱
  • CF1057 BCD