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与教练员站 ” 接口通讯程序 } }
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]); } } }
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]); } } }
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); }