private void Send_Timing_To_PG(DSITiming ACtiming) { PGRemoteRPCClient client = new PGRemoteRPCClient(); int rc = client.Connect("", 2799); string errMsg = ""; string statusMsg = ""; byte[] DUTResp = new byte[0]; if (rc < 0) { return; } client.PGRemoteCmd(RPCCmds.START_EDIT_CONFIG, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_LP_FREQ, (float)18e+6, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_HS_FREQ, PG_Setting_Value.bitrate, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.END_EDIT_CONFIG, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_USE_SYSTEM_COMPUTED_TIMING, 1, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_USE_SYSTEM_COMPUTED_TIMING, 0, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_HS_PREPARE, ACtiming.hs_prepare, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_HS_ZERO, ACtiming.hs_zero, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_HS_EXIT, ACtiming.hs_exit, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_HS_TRAIL, ACtiming.hs_trail, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_CLK_PREPARE, ACtiming.clk_prepare, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_CLK_ZERO, ACtiming.clk_zero, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_CLK_TRAIL, ACtiming.clk_trail, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_CLK_PRE, ACtiming.clk_pre, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_CLK_POST, ACtiming.clk_post, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_TA_GO, ACtiming.TA_go, ref errMsg, ref statusMsg); client.PGRemoteCmd(RPCCmds.SET_DPHY_PARAMETER, RPCDefs.DPHY_PARAM_WAKEUP, ACtiming.T_wakeup, ref errMsg, ref statusMsg); client.Disconnect(true); }
private void Auto_Actiming_Task() { StreamWriter sw = new StreamWriter(@"D:\ttt.txt"); DSITiming ACtiming_Auto = new DSITiming(); MIPI_Auto_Test Auto_Control = new MIPI_Auto_Test(); Auto_Control.Excel_open(output_path, 1); Auto_Control.EXcel_sheet_select("AC timing"); int x_start = 18, y_start = 5; //驗證報告actiming部分表格的起始點 for (float bitrate_now = 100; bitrate_now < Test_Condition.bitrate; bitrate_now += 100) { ACtiming_Auto.set_bitrate(bitrate_now); sw.Write("defalut\t" + ACtiming_Auto.get_timing_setting()); //clk post max ACtiming_Auto.get_clk_post_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); //send command //確認回傳值 sw.Write("clk_post_max\t" + ACtiming_Auto.get_timing_setting()); //clk pre min ACtiming_Auto.get_clk_pre_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_pre_min\t" + ACtiming_Auto.get_timing_setting()); //clk prepare min ACtiming_Auto.get_clk_prepare_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_prepare_min\t" + ACtiming_Auto.get_timing_setting()); //clk prepare max ACtiming_Auto.get_clk_prepare_max_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_prepare_max\t" + ACtiming_Auto.get_timing_setting()); //clk trail min ACtiming_Auto.get_clk_trail_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_trail_min\t" + ACtiming_Auto.get_timing_setting()); //clk prepare + zero min ACtiming_Auto.get_clk_prepare_zero_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_prepare+clk_zero_min\t" + ACtiming_Auto.get_timing_setting()); //clk trail max ACtiming_Auto.get_clk_trail_max_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("clk_trail_max\t" + ACtiming_Auto.get_timing_setting()); //data trail max ACtiming_Auto.get_hs_trail_max_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("hs_trail_max\t" + ACtiming_Auto.get_timing_setting()); //hs prepare min ACtiming_Auto.get_hsprepare_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("hs_prepare_min\t" + ACtiming_Auto.get_timing_setting()); //hs prepare max ACtiming_Auto.get_hsprepare_max_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("hs_prepare_max\t" + ACtiming_Auto.get_timing_setting()); //hs prepare + zero min ACtiming_Auto.get_hsprepare_zero_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("hs_prepare+hs_zero\t" + ACtiming_Auto.get_timing_setting()); //hs trail min ACtiming_Auto.get_hs_trail_min_setting(); //Send_Timing_To_PG(ACtiming_Auto); sw.Write("hs_trail_min\t" + ACtiming_Auto.get_timing_setting()); } sw.Close(); }