Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }