接口定义

来源:互联网 发布:java web实现断点续传 编辑:程序博客网 时间:2024/03/29 14:39

        根据以上分析,命令和状态的操作是分开的,并且在命令发送完后,如果命令被接受执行,则状态会不断的返回给OCS(其中有一部分状态是全局的,需要始终返回给OCS)。同时考虑到对子系统的同步请求,以及一些数据的不定长度,接口的数据结构修正为:

        enum CmdPriority {PRI_LOWER,PRI_NORMAL,PRI_HIGHER,PRI_HIGHEST,PRI_REALTIME };

        struct TheCommand
                {
                        string strCmdCUID;          //当前命令UID,格式为标准UID+”.”+”YYYYMMDD”
                                                                //+”.”+”HHMMSS”+”.”+流水号
                                                                //流水号可以是命令发送的计数,有OCS来分配
                        string strCmdParameter;   // 命令参数,以<命令><参数1><参数2>
                                                                //引号以内为一个参数
                        CmdPriority  cpPriority     //命令执行优先级
                        bool bSync                       //是否为同步请求
                }

   命令的返回结构
  
        typedef string CmdResult;                  
//同步命令返回的结果
                                                                 //异步命令返回代码,”0”表示命令被接受
                                                                //其他表示错误代码(待定义)

        enum Severity {Info, Warning, Error, FatalError};

        struct TheStatus
                {
                        string strRelatedCmdCUID;      //状态的相关命令UID,定义同上
                                                                      //如果没有相关命令,则此值为“0”
                        string strStatusCUID;              //当前状态UID,格式为标准UID+”.”
                                                                      //+”YYYYMMDD” +”.”+”HHMMSS”
                        Severity eSeverity;                  //状态的程度
                        string strStatusAttribute;          // 状态属性以<属性1><属性2><属性3>
                        bool bExeStatus;                    //是否为执行反馈信息
                                                                      //如果为执行反馈信息,则strStatusUID记录
                                                                      //执行反馈信息返回的时间,格式为:
                                                                      //”YYYYMMDD” +”.”+”HHMMSS”;
                                                                      //执行反馈信息填在strStatusAttribute中
                                                                      //执行反馈信息状态为”ACTIVE”时,同时可反馈
                                                                      //执行的进度,以百分比记;忽略eSeverity。
                }
               
        此结构作为状态通讯的基本单位,进行状态通讯。

        对于命令执行优先级,定义如下:
        PRI_LOWER                        低
        PRI_NORMAL                      普通
        PRI_HIGHER                       高
        PRI_HIGHEST                     更高
        PRI_REALTIME                    实时(最高)

IDL 文件

sss.idl

#pragma prefix "lamost.ustc"
  module SSS{

        enum CmdPriority {PRI_LOWER,PRI_NORMAL,PRI_HIGHER,PRI_HIGHEST,PRI_REALTIME};
       
        struct TheCommand
        {
                string strCmdCUID;
                string strCmdParameter;
                CmdPriority cpPriority;
                boolean bSync;
        };

        typedef string TheCmdResult;
        typedef string TheXMLCommand;
        typedef string TheXMLCmdResult;

        interface SSS_CMD_Server
        {
                void SendCommand(in TheCommand cmdData,out TheCmdResult resultData);
                void SendCommandByXML(in TheXMLCommand cmdData,out TheXMLCmdResult resultData);
        };
};


status.idl

#pragma prefix "lamost.ustc"

module OCS {
        enum Severity {Info,Warning,Error,FatalError};

        struct TheStatus
        {
                string strRelatedCmdCUID;
                string strStatusCUID;
                Severity eSeverity;
                string strStatusAttribute;
                boolean bExeStatus;
        };

        interface Status_Server
        {
                void SendStatus(in TheStatus statusData);
                void SendStatusByXML(in string xmlStatusData);
        };
};

 

原创粉丝点击