using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //using JHFX = Package_turnout_analysis_geo; //几何分析 道岔分析 //using JHTQ = Package_turnout_identify_geo; //几何分析 道岔提取 using LGL = Package_turnout_analysis_wrf;//轮轨力 分析 //using LGLTQ = Package_turnout_identify_wrf;//轮轨力 提取 using JH = Package_turnout_analysis; using MathWorks.MATLAB.NET.Arrays; using JHWX = Package_geo_change_analysis_for_turnout;//微小算法 namespace ZDHscript { /// /// 算法类 /// public class AnalysisAlgorithmcs { /// /// 几何新算法 /// /// geo路径 /// geo文件名 /// 是否使用修正后里程,1为使用修正后里程,0为是用geo文件自带里程 /// 线路名英文缩写 /// 线路最小里程 /// 线路最大里程 /// 道岔台账,n*3维double型数组,第一列为正线道岔尖轨尖里程,第二列为辙叉号,第三列为道岔全长 /// 道岔台账信息,n*3维数组 /// 道岔尖心轨间距信息表,n*3维数组,分为高速和普速 /// 检测车名 public static MWArray[] JHFX(string fname_dir0, string fname0, int mile_id, string linename, double mile_min, double mile_max, double[] tz_curv, double[] tz_turnout, double[] distance_table, string carname) { JH.Class1 jhfx = new JH.Class1(); MWNumericArray tz_curv_switch = new MWNumericArray(tz_curv.Length / 6, 6, tz_curv); MWNumericArray tz_turnout_switch = new MWNumericArray(tz_turnout.Length / 3, 3, tz_turnout); MWNumericArray distance_table_switch = new MWNumericArray(distance_table.Length / 3, 3, distance_table); MWArray[] agrsIn = new MWArray[] { fname_dir0, fname0, linename, tz_curv_switch, tz_turnout_switch, mile_min, mile_max, mile_id, carname, distance_table_switch }; MWArray[] agrsOut = new MWArray[12]; jhfx.sub_main_turnout_analysis(12, ref agrsOut, agrsIn); return agrsOut; } /// /// 轮轨力新算法 /// /// bny路径 /// bny文件名 /// 线路名英文缩写 /// 线路最小里程 /// 线路最大里程 /// 道岔台账,n*3维double型数组,第一列为正线道岔尖轨尖里程,第二列为辙叉号,第三列为道岔全长 /// 道岔台账信息,n*3维数组 /// 道岔尖心轨间距信息表,n*3维数组,分为高速和普速 /// 检测车名 public static MWArray[] LGLFX(string fname_dir0, string fname0, string linename, double mile_min, double mile_max, double[] tz_curv, double[] tz_turnout, double[] distance_table, string carname) { LGL.Class1 lgl = new LGL.Class1(); MWNumericArray tz_curv_switch = new MWNumericArray(tz_curv.Length / 6, 6, tz_curv); MWNumericArray tz_turnout_switch = new MWNumericArray(tz_turnout.Length / 3, 3, tz_turnout); MWNumericArray distance_table_switch = new MWNumericArray(distance_table.Length / 3, 3, distance_table); MWArray[] agrsIn = new MWArray[] { fname_dir0, fname0, linename, tz_curv_switch, tz_turnout_switch, mile_min, mile_max, carname, distance_table_switch }; MWArray[] agrsOut = new MWArray[8]; lgl.sub_main_turnout_analysis_wrf(8, ref agrsOut, agrsIn); return agrsOut; } /// /// 微小算法 /// public static MWArray[] WXSF(string[] date, string[] car, double[] mile, double[] wave_data, double[] id_wave_all, double[] jx_loc_all, string[] line, double[] velo, string[] zc) { JHWX.Class1 wx = new JHWX.Class1(); MWCharArray date_ = new MWCharArray(date); MWCharArray car_ = new MWCharArray(car); MWNumericArray mile_ = new MWNumericArray(mile.Length, 1, mile); MWNumericArray wave_data_ = new MWNumericArray(wave_data.Length / 18, 18, wave_data); MWNumericArray id_wave_all_ = new MWNumericArray(id_wave_all.Length / 2, 2, id_wave_all); MWNumericArray jx_loc_all_ = new MWNumericArray(jx_loc_all.Length / 2, 2, jx_loc_all); MWCharArray line_ = new MWCharArray(line); MWNumericArray velo_ = new MWNumericArray(velo.Length, 1, velo); MWCharArray zc_ = new MWCharArray(zc); MWArray[] agrsIn = new MWArray[] { date_, car_, mile_, wave_data_, id_wave_all_, jx_loc_all_, line_, velo_, zc_ }; MWArray[] agrsOut = new MWArray[11]; wx.sub_main_geometry_small_change(11, ref agrsOut, agrsIn); return agrsOut; } } }