一种eoc设备局端获取终端控制消息响应的方法_2

文档序号:9491732阅读:来源:国知局
sem_down_timeout (unsigned int time2):在时间 time2 毫秒内试图将该信号量-1 (信号量为O时,不能被-1),如果成功-1,则返回0,反之返回非0.;
3)int sem_trydown (void):尝试将该信号量_1,若成功则返回0,若当前不能将该信号量-1,则放弃该操作并立即返回非O。
[0019]局端控制消息处理模块和响应接收模块中的相关线程可通过这些接口操作该信号量。
[0020]2、处理模块线程I向处理模块线程2发送需要获取响应的控制消息。
[0021]3、处理模块线程2向底层发送相应的请求,并返回transid给处理模块线程I(transid被处理模块用来校验所收到响应是否正确)。
[0022]4、接收模块负责接收终端发来的响应,若收到,则将其放入固定内存中。此时信号量可能为I (表示前一次的响应未被读取),为了避免信号量大于I (无并行读取场景,因此只允许信号量为O或1),先调用接口 sem_trydown(保证此刻信号量为0),再调用接口 sem_up (将信号量置为I,表示有未被读取的响应被放入固定内存)。
[0023]5、与步骤4同时,处理模块线程I收到transid后,立即向处理模块线程2请求读取响应,此处省去了原有的固定等待时间timel(M0CAl.1局端的timel典型值为200ms,一般这个值按照不同需求取不同的值。
[0024]6、处理模块线程2接收到处理模块线程I的读响应请求后,立刻调用接口 sem_down_timeout,超时时间200ms (设置超时是为了避免引入永久等待,时限设为200ms是考虑到原有逻辑的等待时间为200ms)。
[0025]7、若处理模块线程2调用接口 sem_down_timeout未立即成功,说明现信号量为0,固定内存中无未被读取的响应,线程2进入阻塞,等待信号量为I。
[0026]8、若处理模块线程2最终调用接口 sem_down_timeout失败,说明在超时时间内,响应接收模块未能将响应放入固定内存,本次获取响应失败,返回失败。
[0027]9、若处理模块线程2调用接口 sem_down_timeout成功(信号量由I变为O,表示当前响应已被读取),,则线程2便从固定内存中读取响应,并将响应送到线程I。
[0028]10、处理模块线程I将响应与之前获得的transid进行校验,如果校验通过,则此次读取响应成功。
[0029]本发明取消了用户态的空闲等待,以mocal.1局端获取终端交换芯片寄存器值为例,实测整个过程耗时将减少3/4左右。由于终端控制消息的发送过程在局端用户态有互斥锁确保无并发执行,且信号量阻塞有超时机制,因此引入信号量不会带来死锁问题,也不会对系统的稳定、精确性带来负面影响。
[0030]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【主权项】
1.一种EOC设备局端获取终端控制消息响应的方法,其特征在于包括: 步骤1:局端装置分别包括局端消息控制模块与局端响应接收模块,局端消息控制模块与局纟而响应接收1?块冋时运灯; 步骤2:局端消息控制模块发送需要终端响应的控制消息,并实时检测局端响应接收模块是否释放了同步信号;局端响应接收模块实时接收终端发来的响应,若收到终端响应,则释放同步信号; 步骤3,与步骤2同时,局端消息控制模块若获得同步信号,则立即去局端响应接收模块读取响应信息;否则,进入等到状态,直到设定的等待时间结束,并返回读取失败信息。2.根据权利要求1所述的一种E0C设备局端获取终端控制消息响应的方法,其特征在于所述步骤1具体包括: 局端装置启动时创建需要使用的信号量,并提供该信号量使用的相关接口 ;信号量为0表示存储响应的固定内存中,没有未被读取过的响应,信号量为1表示固定内存中有未被读取的响应;局端装置包括局端消息控制模块与局端响应接收模块,局端装置启动后,局端消息控制模块与局端响应接收模块同时运行,局端消息控制模块创建第一处理线程和第二处理线程;局端响应接收模块创建局端响应接收模块线程。3.根据权利要求2所述的一种E0C设备局端获取终端控制消息响应的方法,其特征在于所述步骤2具体包括: 步骤21:第一处理模块线程向第二处理模块线程发送需要获取响应的控制消息,第二处理模块线程向终端发送相应的请求,并返回校验结果给第一处理模块线程; 步骤22:局端响应接收模块线程接收第二处理模块线程发来的响应,若收到响应后,则将其放入固定的内存中,若此时前一次的响应未被读取,即信号量为1,则调用信号量减1的函数将信号量清零,然后调用信号量加1函数,将信号量置1,表示有未被读取的响应放入了固定内存中,局端响应接收模块线程释放了同步信号。4.根据权利要求2所述的一种E0C设备局端获取终端控制消息响应的方法,其特征在于所述步骤3具体包括: 步骤31:与步骤2同时,第一处理线程收到第二处理线程返回的校验结果后,立即向第二处理线程请求读取响应;若当前存储响应的固定内存中,没有未被读取过的响应,则第二处理线程进入阻塞等待状态,并设置请求超时的时间为Τ,执行步骤32 ;否则,局端响应接收模块线程释放了同步信号,第二处理线程从固定内存中读取响应,并将响应送到第一处理线程,执行步骤33; 步骤32:如果在设定超时的时间内,不存在未被读取的响应,则本次获取响应失败,并返回失败信息; 步骤33:将该响应与之前的校验信息进行校验,校验通过则此次读取响应成功;如果校验不通过,则返回失败信息。
【专利摘要】本发明涉及数据通信领域中的EOC设备控制领域,尤其是一种EOC设备局端获取终端控制消息响应的方法。本发明针对现有技术存在的问题,在保证系统原有稳定、安全、准确性不受损的前提下,以大大减少时耗为目标,提出了一种控制消息响应的方法,可节省原有机制中无意义的多余等待时间,大大削减整个操作的时耗。本发明通过局端消息控制模块发送需要对应终端响应的控制消息,并实时检测局端响应接收模块是否释放了同步信号;局端响应接收模块实时接收终端发来的响应,若收到终端响应,则释放同步信号;同时局端消息控制模块若获得同步信号,则立即去局端响应接收模块读取响应信息。
【IPC分类】H04L12/28
【公开号】CN105245413
【申请号】CN201510614373
【发明人】张基晗
【申请人】成都广达新网科技股份有限公司
【公开日】2016年1月13日
【申请日】2015年9月24日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1