TheLargeSkyAreaMulti-ObjectFiberSpectroscopicTelescope(NIAOT)/NationalAstronomicalObservatories,CAS(NAOC)Presentedby:徐灵哲At:PlaceDate:Friday,January24,2020TitleofYourPaperLAMOST总控及其有关高层次软件模块SSSOCSICSDHSTCSCDBSDBFIBERPOSITIONINGSPECTROGRAPHSAZIMUTHDRIVEFOCALPLANEGUIDINGMAACTIVEOPTICSMBACTIVEOPTICSDOMECONTROLENVIRONMENTALTITUDEDRIVEONLINEOFFLINEREALTIMETitleofYourPaperLAMOST总控系统功能给LAMOST望远镜的各种信息(命令信息、数据信息、状态信息和报警信息等)提供通道,并根据总体设计的要求通过各电控子系统驱动望远镜的电控运动部件,与光机协调完成对目标天体的观测任务。TitleofYourPaper消息总线的功能接收消息发送消息控制消息的串,并行顺序控制消息的处理时间TitleofYourPaper消息总线的拓扑结构及流程数据库状态发生器消息总线消息总线命令接口TCS应用程序子系统消息总线状态接口命令发生器OCS消息总线数据库TitleofYourPaper消息总线的命令调度设计消息层次表:消息总线收到的消息可以转化为一系列具有串,并行关系的原消息层次消息描述1制冷,环境监测(全局消息)2通风3自检4机架准备5开圆顶6开焦面门7焦面侧移开TitleofYourPaper消息总线的命令调度设计8MB共焦9焦面侧移回10SH自准直11机架跟踪12SH跟踪闭环13SH跟踪开环14一次观测结束15关焦面门16关圆顶TitleofYourPaper消息总线的命令调度设计消息总线的数据结构:采用了孩子兄弟法来描述消息总线。孩子兄弟法又称二叉树表示法或二叉链表表示法。即以二叉链表做树的存储结构。每个二叉链表代表一个消息。对二叉链表的C语言描述,如下:TitleofYourPaper消息总线的命令调度设计Structst_message{inti_degree;//层次charmessage[512];//消息实体Structst_message*pst_child;//孩子链域Structst_message*pst_brother;//兄弟链域inti_flag;//消息标志inti_time;//超时时间chars_time;//开始时间}TitleofYourPaper消息总线的命令调度设计8消息8_16消息6_16消息6_25消息5_15消息5_25消息5_33消息3_1根3消息3_2TitleofYourPaper消息总线的命令调度设计接收消息的算法:插入消息的层次大于当前消息n+2消息n+2_1n当前消息n_1根n+1插入消息n+1_1TitleofYourPaper消息总线的命令调度设计接收消息的算法:插入消息的层次等于当前消息n+2消息n+2_1n消息n_1根n插入消息n_3n消息n_2TitleofYourPaper消息总线的命令调度设计接收消息的算法:插入消息的层次小于当前消息n+2消息n+2_1n消息n_1根n-1插入消息n-1_1TitleofYourPaper消息总线的命令调度设计发送消息的算法:当消息总线检测到在层次最低的并列兄弟消息链表中有标志为未发送的消息,则把该消息发到TCS进行处理,同时把标志设为已发送。TitleofYourPaper消息总线的命令调度设计删除消息的算法:消息总线中的消息标志,会根据消息总线状态接口返回的状态进行更改。当一条消息被处理完毕后,会把消息总线中相应的链表消息的标志改为已完成。当消息总线遍历到该链表消息后,会对其进行删除处理。TitleofYourPaper消息总线的命令调度设计n+2消息n+2_1n消息n_1根n删除消息n_3n消息n_2n+2消息n+2_1n消息n_1根n删除消息n_2n消息n_3TitleofYourPaper消息总线的命令调度设计消息总线操作的互斥:在接收消息和发送消息时都需要对消息总线进行操作。当两者同时对消息总线进行操作时就有可能造成混乱。为此,消息总线设置了一个信号量,作为互斥。当要对消息总线进行插入或删除操作时调用这个信号量,如果有其它线程要对消息总线进行插入或删除,它需要等待这个信号量的释放才能操作。这样就保证了消息总线操作的互斥性。TitleofYourPaper时间监控模块的设计LAMOST要求在1.5小时内观测完一个天区。因此消息总线中的消息必须在一定时间内执行完毕。消息的发送时间从消息总线把消息发给TCS算起,结束点为消息总线状态接口更新消息总线中对应消息为已完成时。消息在被插入到消息总线时,已经设定了开始时间和缺省超时时间。消息总线在循环遍历过程中用当前时间减去开始时间的差来和超时时间进行比较,如果超时就需要提醒人工干预。TitleofYourPaper总结通过消息总线来处理各种命令和状态消息,将TCS应用程序和消息通讯相对独立,使得TCS系统具有很好的鲁棒性。由于可以在数据库中对消息层次表进行修改,因此不需要通过修改程序来解析新的或修改的消息,使得TCS系统又具有很好的可维护性。TitleofYourPapercloseContact:210042Email:lzhxu@niaot.ac.cnInformation:…