Exemplo n.º 1
0
        public static void Stop(bool forInstructor)                    //主程序关闭时,接口通讯程序需要做的事情
        {
            //bool forInstructor: 切换控制字(true:放置在教练员站软件 Instructor 中调用;   false:放置在模型软件 IMAGE 中调用)

            if (forInstructor)           //放置在教练员站软件中调用的内容
            {
                SimuDBCall.StopServer(); //2. 模型关闭时,关闭 “ IMAGR与教练员站 ” 接口通讯程序
            }
            else //放置在模型软件中调用的内容
            {
                SimuDBCall.Communicate_End();         //1. 模型关闭时,关闭 “ IMAGR与DCS操作员站 ” 接口通讯程序
                SimuDBCall.StopServer();              //2. 模型关闭时,关闭 “ IMAGR与教练员站 ” 接口通讯程序
            }
        }
Exemplo n.º 2
0
 private static void SetValue(List <string> IOnames, float[] IOvalues, bool connectDCS, bool forInstructor)  //根据变量名IOnames,写值 float[] IOvalues
 {
     //bool connectDCS:   true:IMAGE(教练员站)与DCS通讯;      false:IMAGE与教练员站之间通讯
     //bool forInstructor: 切换控制字(true:放在教练员站软件 Instructor 中调用;   false:放在模型软件 IMAGE 中调用)
     //TODO: names 的来源,values的来源
     for (int i = 0; i < IOnames.Count; i++)
     {
         if (forInstructor) //1. 在教练员站调用
         {                  //1.2 与IMAGE通讯
             //SimuDBCall.SendFloat(IOnames[i], IOvalues[i]);//TODO:写入数据,但是要注意数据的格式
         }
         else //2. 在IMAGE调用
         {                  //2.2 与教练员站通讯
             SimuDBCall.WriteValueFloat(IOnames[i], IOvalues[i]);
         }
     }
 }
Exemplo n.º 3
0
        private static void GetValue(List <string> IOnames, float[] IOvalues, bool connectDCS, bool forInstructor) //根据变量名IOnames,取值 float[] IOvalues
        {
            //bool connectDCS:   true:IMAGE(教练员站)与DCS通讯;      false:IMAGE与教练员站之间通讯
            //bool forInstructor: 切换控制字(true:放在教练员站软件 Instructor 中调用;   false:放在模型软件 IMAGE 中调用)
            // TODO:这个地方是直接将数据传到matlab

            for (int i = 0; i < IOnames.Count; i++)
            {
                if (forInstructor)  //1. 在教练员站调用
                {
                    //1.2 与IMAGE通讯
                    ////将IMAGE中的数据传入到INS
                    SimuDBCall.GetValueFloat(IOnames[i], ref IOvalues[i]);
                }
                else //2. 在IMAGE调用
                {
                    //2.2 与教练员站通讯
                    SimuDBCall.GetValueFloat(IOnames[i], ref IOvalues[i]);
                }
            }
        }
Exemplo n.º 4
0
        public static List <string> startError = new List <string>(); //接口通讯启动过程出错信息记录(用于在IMAGE、教练员站的信息窗口显示)

        #endregion

        /*
         * public Dictionary<string, float> Data = new Dictionary<string, float>();
         * public int C = 0;
         * public void  Me(int num)
         * {
         *  for (int i = 0; i < num; i++)
         *  {
         *      Data[i.ToString()] = i;
         *  }
         * }
         * //可以直接将数据写入到当前对象的数据的结构中,
         * public void Getvalue(string name, float value)
         * {
         *  //直接将数据写入到相应的位置
         *  Data[name] = value;
         * }
         */
        public static bool Start(string IOfilepath, string IOfullname, bool forInstructor)   //启动时,接口通讯程序需要做的事情
        {
            //string IOfilepath:初始化时读入的接口点表文件路径           (用于csv格式的多个接口点表文件)
            //string IOfullname:初始化时读入的接口点表带路径文件名   (用于excel格式的1个接口点表文件)
            //IOfilepath、IOfullname两者只有一个被使用(既定义IOfilepath又定义IOfullname,只是为了兼容性)

            //bool forInstructor: 切换控制字(true:适用于教练员站软件;   false:适用于模型软件 IMAGE )

            //1. 读入接口点表、数组初始化
            Init(IOfilepath);
            //2. 通讯程序初始化
            if (SimuDBCall.Communicate_Init() != 0)
            {
                return(false);
            }
            if (SimuDBCall.StartServer(0, IOfilepath) != 0)//TODO:这个地方是IMAGE中的接口,不知道在什么地方能遇到。也不知道有什么用
            {
                return(false);
            }
            return(true);
        }