Exemplo n.º 1
0
        void ChkCFG(parameters paras, out results rets)
        {
            rets = new results();
            //result rst = new result();
            //rst.name = "NumOfVars";
            //rst.value = hartDev.Vars.Count;
            //rets.Add(rst);

            if (DPDev.asLocalDevCfgList[0].strWK_State == "WAIT_CFG")
            {
                DPDev.ChkCFG();
                //生成SET_PRM报文中数据
                CFRAME_PARSE_NODE cFrameParse = new CFRAME_PARSE_NODE();

                if (DPDev.diagDevice(0, ref cFrameParse))
                {
                    string slaveState = DPDev.parseSlaveStateByDiag(cFrameParse.aucData, cFrameParse.ucDataLen);
                    if (slaveState == "DATA_EXCHANGE")
                    {
                        rets.response = rspCode.positive;
                    }
                }
                else
                {
                    rets.response = rspCode.negitive;
                }
            }
            else
            {
                rets.response = rspCode.negitive;
            }
        }
Exemplo n.º 2
0
        void DataExchange(parameters paras, out results rets)
        {
            rets = new results();
            //result rst = new result();
            //rst.name = "NumOfVars";
            //rst.value = hartDev.Vars.Count;
            //rets.Add(rst);
            if (paras.Count != 2)
            {
                rets.response = rspCode.negitive;
                rets.resDesc  = "More than 1 variable to read.";
                saveLogfile("More than 1 variable to read.");
            }
            else
            {
                if (DPDev.asLocalDevCfgList[0].strWK_State == "DATA_EXCHANGE")
                {
                    byte[] output    = new byte[255];
                    string outputstr = (string)paras[0].value;
                    byte   length    = (byte)paras[1].value;
                    if (length * 2 == outputstr.Length)
                    {
                        for (int i = 0; i < outputstr.Length / 2; i++)
                        {
                            output[i] = Convert.ToByte(outputstr.Substring(i, 2));
                        }
                        DPDev.dataExchange(output, length);

                        CFRAME_PARSE_NODE cFrameParse = new CFRAME_PARSE_NODE();

                        if (DPDev.diagDevice(0, ref cFrameParse))
                        {
                            string slaveState = DPDev.parseSlaveStateByDiag(cFrameParse.aucData, cFrameParse.ucDataLen);
                            if (slaveState == "DATA_EXCHANGE")
                            {
                                rets.response = rspCode.positive;
                            }
                        }
                        else
                        {
                            rets.response = rspCode.negitive;
                        }
                    }
                    else
                    {
                        rets.response = rspCode.negitive;
                    }
                }
                else
                {
                    rets.response = rspCode.negitive;
                }
            }
        }
Exemplo n.º 3
0
        void DiagnoseDev(parameters paras, out results rets)
        {
            rets = new results();
            result       rst    = new result();
            ThreadUpdate tusend = new ThreadUpdate();

            if (paras.Count != 1)
            {
                rets.response = rspCode.negitive;
                rets.resDesc  = "More than 1 variable to read.";
            }
            else
            {
                CFRAME_PARSE_NODE cFrameParse = new CFRAME_PARSE_NODE();

                if (DPDev.diagDevice(0, ref cFrameParse))
                {
                    //if (hartDev.pCmdDispatch.SendCmd(pCmd, pCmdDesc.transNumb) == Common.SUCCESS)
                    {
                        /*
                         * rets.response = (hartDev.parentform.getCmdRes() as results).response;//getCmdRes
                         * rst.name = (string)paras[0].value;
                         * //rst.rtype = resultDataType.floatpoint;
                         * rst.value = vartoread.GetDispString();
                         * rets.Add(rst);
                         */
                        string slaveState = DPDev.parseSlaveStateByDiag(cFrameParse.aucData, cFrameParse.ucDataLen);
                        rst       = new result();
                        rst.name  = "SlaveState";
                        rst.value = slaveState;
                        rets.Add(rst);

                        string DiagnoseInfo = "";
                        DPDev.parseDiagnosticsInfo(cFrameParse.aucData, cFrameParse.ucDataLen, ref DiagnoseInfo);
                        rst       = new result();
                        rst.name  = "DiagnoseInfo";
                        rst.value = DiagnoseInfo;
                        rets.Add(rst);
                    }
                    //else
                    {
                        rets.response = rspCode.positive;
                        //rets.resDesc = String.Format("The Command {0}, transaction {1} cannot be sent.", pCmdDesc.cmdNumber, pCmdDesc.transNumb);
                    }
                }
                else
                {
                    rets.response = rspCode.negitive;
                    rets.resDesc  = "The Diagnose is failed.";
                }
            }
        }