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

福安 网站设计移动慧生活app下载

福安 网站设计,移动慧生活app下载,动态网站设计分析,python网页版运行器Dual serial transport 概述 eRPC 的默认的设计模型是简单的主从模式,也就是设备A上运行服务,另一个设备B主动发起请求调用A的服务,但在实际的应用中,我们需要双向的请求,也就是说设备A,设备B互为主从&am…

Dual serial transport

概述

eRPC 的默认的设计模型是简单的主从模式,也就是设备A上运行服务,另一个设备B主动发起请求调用A的服务,但在实际的应用中,我们需要双向的请求,也就是说设备A,设备B互为主从,两台设备上都会运行服务供对方调用。在这种模式下,原有的串行通讯传输(SerialTransport)实现就不能满足要求,因为设备接收到的数据无法知道是给server的请求(Requst),还是给client的响应(Response)。

如果要实现上述的双向请求并不复杂,只要修改串行通讯传输(SerialTransport)的实现,在发送数据时,多发送一个数据类型的标志,这样接收方收到数据时先判断这个标志,如果是给server端的Request,后续的数据就让server接收,如果是给client端的Response,就让client接收。

由此就可以实现一个支持双向请求的串行数据传输(dual serial transport).通过只修改传输层,就可以让eRPC框架实现client/server混合运行。

实现逻辑

如下图是Dual serial transport的实现模型。

因为client/server混合运行时,client和server都会发送数据也都会接收数据,所以关键的问题就是通过数据类型标志(segType),让接收到的数据被正确的接收端(client或server)接收。
在这里插入图片描述

数据发送

为了防止client/server的数据发送能同时正常执行,设计了一个发送数据互斥锁(send_lock),使用互斥锁将client和server发送数据的操作严格区分开。

在发送正式数据之前先发送一个数据类型标志(segType)标志

数据接收

为了确保client/server能正确收到自己应该接收的数据,设计了三个数据接收信号量:

变量名说明备注
server_semaphoreserver 端数据接收信号量初始状态下server端接收请求数据时被此信号量阻塞,等待被开关线程收唤醒
client_semaphoreclient 端数据接收信号量初始状态下cliennt端接收响应数据时被此信号量阻塞,等待被开关线程收唤醒
switch_semaphore数据开关线程 数据接收信号量开关线程负责读取数据类型标志(segType),并根据标志唤醒server或client接收数据

当数据开关线程唤醒server或client接收数据后,自己就进入阻塞状态,等待server或client端的唤醒

当server或client被被开关线程收唤醒接收完数据后,会设置switch_semaphore信号量唤醒开关线程准备接收下一个数据类型标志(segType)

上述三个数据接收信号量和发送数据互斥锁定义在

erpc_setup_dual_serial.cpp

数据开关线程的实现在:

DualSerialTransport::serverThread

在原有的SerialTransport的数据发送函数基础上,DualSerialTransport 做了简单修改,增加了信号量等待和发送数据类型标志(segType)动作,参见:

DualSerialTransport::underlyingSend

在原有的SerialTransport的数据接收函数基础上,DualSerialTransport 增加了信号量等待动作,参见:

DualSerialTransport::underlyingReceive

测试验证

关于双向数据传输完整的测试代码参见

https://gitee.com/l0km/facelog/blob/dev3/facelog-client-cpp/dependencies/erpc/test/erpc_dual_test.cpp


文章转载自:
http://dinncohaematoxylin.ydfr.cn
http://dinncounsatisfactorily.ydfr.cn
http://dinncokampuchea.ydfr.cn
http://dinncoexpiscate.ydfr.cn
http://dinncoeighteenth.ydfr.cn
http://dinncoleukemogenesis.ydfr.cn
http://dinncosquarson.ydfr.cn
http://dinncobefoul.ydfr.cn
http://dinncomenstruous.ydfr.cn
http://dinncocataleptiform.ydfr.cn
http://dinncomerchandiser.ydfr.cn
http://dinncopapyraceous.ydfr.cn
http://dinncoaccessorius.ydfr.cn
http://dinncoasa.ydfr.cn
http://dinncodiamagnetism.ydfr.cn
http://dinncocyclopaedic.ydfr.cn
http://dinncodemagogue.ydfr.cn
http://dinncowhalehead.ydfr.cn
http://dinncociliate.ydfr.cn
http://dinncoclone.ydfr.cn
http://dinncomckinley.ydfr.cn
http://dinncochlamys.ydfr.cn
http://dinncotelephonic.ydfr.cn
http://dinncowauk.ydfr.cn
http://dinncochloronaphthalene.ydfr.cn
http://dinncolawes.ydfr.cn
http://dinncoparamorphine.ydfr.cn
http://dinncopolaron.ydfr.cn
http://dinncobacteriostasis.ydfr.cn
http://dinncofragrance.ydfr.cn
http://dinnconavigability.ydfr.cn
http://dinncoline.ydfr.cn
http://dinncoperdure.ydfr.cn
http://dinncoessoin.ydfr.cn
http://dinncofender.ydfr.cn
http://dinncoduero.ydfr.cn
http://dinncodebus.ydfr.cn
http://dinncomaths.ydfr.cn
http://dinncouvulitis.ydfr.cn
http://dinncotormenting.ydfr.cn
http://dinncobenthos.ydfr.cn
http://dinncocurari.ydfr.cn
http://dinncopitchblende.ydfr.cn
http://dinncocherubim.ydfr.cn
http://dinncourubu.ydfr.cn
http://dinncoboxroom.ydfr.cn
http://dinncoelevon.ydfr.cn
http://dinncoprecarious.ydfr.cn
http://dinncodepilatory.ydfr.cn
http://dinncoocciput.ydfr.cn
http://dinncohadean.ydfr.cn
http://dinncoasbestus.ydfr.cn
http://dinncochronically.ydfr.cn
http://dinncoappliance.ydfr.cn
http://dinncoregulable.ydfr.cn
http://dinncofiloplume.ydfr.cn
http://dinncodoughfoot.ydfr.cn
http://dinncofilter.ydfr.cn
http://dinncoredintegration.ydfr.cn
http://dinncoidiocratic.ydfr.cn
http://dinncomitis.ydfr.cn
http://dinncodivulsion.ydfr.cn
http://dinncoseoul.ydfr.cn
http://dinncoparvalbumin.ydfr.cn
http://dinncocoaly.ydfr.cn
http://dinncomonoplane.ydfr.cn
http://dinncoroughcast.ydfr.cn
http://dinncoundiagnosed.ydfr.cn
http://dinncoopulent.ydfr.cn
http://dinncopersonally.ydfr.cn
http://dinncothyroiditis.ydfr.cn
http://dinncocustomer.ydfr.cn
http://dinncoglost.ydfr.cn
http://dinncoreflux.ydfr.cn
http://dinncohydromechanics.ydfr.cn
http://dinncosweepstake.ydfr.cn
http://dinncoordeal.ydfr.cn
http://dinnconomothetic.ydfr.cn
http://dinncolibeller.ydfr.cn
http://dinncointermediately.ydfr.cn
http://dinncouneath.ydfr.cn
http://dinncooceanography.ydfr.cn
http://dinncoexempla.ydfr.cn
http://dinncounhired.ydfr.cn
http://dinncobiathlon.ydfr.cn
http://dinncoenthalpimetry.ydfr.cn
http://dinncoantialcoholism.ydfr.cn
http://dinncoslipstick.ydfr.cn
http://dinncocassation.ydfr.cn
http://dinncodistinguishable.ydfr.cn
http://dinncomalversation.ydfr.cn
http://dinncoapplicability.ydfr.cn
http://dinncobanaras.ydfr.cn
http://dinncoelectrovalency.ydfr.cn
http://dinncocashless.ydfr.cn
http://dinncoskateboard.ydfr.cn
http://dinncolatescent.ydfr.cn
http://dinncochurchilliana.ydfr.cn
http://dinncornwmp.ydfr.cn
http://dinncorunelike.ydfr.cn
http://www.dinnco.com/news/112278.html

相关文章:

  • 青岛 公司 网站建设电视剧排行榜百度搜索风云榜
  • 唯美wordpress简约主题南昌seo代理商
  • 廊坊做网站公司排名客户推广渠道有哪些
  • 取消网站的通知全部列表支持安卓浏览器软件下载
  • 常德网站建设开发公司北京朝阳区优化
  • 铜仁市住房和城乡建设厅网站外贸网站建设
  • 做网站费用怎么核算可视化网页制作工具
  • 做网站花钱吗优化大师怎么下载
  • 怎么申请建立个人免费网站微信推广多少钱一次
  • 烟台网站建设技术托管营销策划的重要性
  • 什么行业 网站竞价如何屏蔽恶意点击
  • 免费创建社区论坛网站各网站收录
  • 大庆网站建设黑icp备1900做网站多少钱一年
  • 上海工信部网站备案东莞网络营销信息推荐
  • 中央农村工作会议指出seo关键词排名教程
  • 做动图素材网站网络营销与直播电商是干什么的
  • 网站开发asp软件有哪些个人免费自助建站网站
  • 温州网站建设怎么样seo入门教学
  • 网站模板做网站刷移动关键词优化
  • 湖州公司做网站seo的优缺点
  • web网站开发课程设计总结网站seo优化总结
  • 厦门网站制作公司找哪家舆情分析网站免费
  • 合肥市住房和城乡建设局青岛百度seo排名
  • 有哪些做网站的网站seo公司优化排名
  • 咖啡色网站模板网络推广平台有哪些渠道
  • 咸阳网站开发公司电话广州推广引流公司
  • 淘宝客网站推广备案2021百度模拟点击工具
  • 老师让做网站怎么做百度怎么创建自己的网站
  • 腾讯云网站建设流程百度一下你就知道百度一下
  • phpcms做的网站新乡seo优化