Exemple #1
0
        static int getSendData(clsFaim3 _faim3, string vCmdName, string vHL, string vReset)
        {
            int _devNo = -1;

            if (_faim3.dict_CmdFormats.ContainsKey(vCmdName))
            {
                _devNo = Convert.ToInt32(_faim3.dict_CmdFormats[vCmdName].devNo);//[0] cfgCmdFormat.xls
            }
            else if (_faim3.dict_DevFunction.ContainsKey(vCmdName))
            {
                _devNo   = _faim3.dict_DevFunction[vCmdName].devNo;//[0] cfgDev_Function.xls
                vCmdName = _faim3.dict_DevFunction[vCmdName].varName;
            }
            else
            {
                F_Log.Error_4("clsProtocol.getSendData()",
                              string.Format(" --->>>> 此命令不存在 {0} {1} {2}", vCmdName, vHL, vReset));
                return(-1); //没有此命令 模板
            }
            int           _ref_1i    = _faim3.sect_iDev * _devNo;
            int           _ref_1s    = _faim3.sect_sDev * _devNo + _faim3.sect_sDev_start;
            string        _str_HL    = "   ";
            string        _str_Reset = "   ";
            int           _val_HL    = F_TransCalc._Get_Value_2(_faim3, vHL, ref _str_HL);
            int           _val_Reset = F_TransCalc._Get_Value_2(_faim3, vReset, ref _str_Reset);
            clsCommonInfo _en        = null;

            if (_val_Reset > 0)
            {
                if (_faim3.dict_CommonInfo.ContainsKey(_val_Reset)) // 可能是表值 tb_CommonInfo.xls
                {
                    _en = _faim3.dict_CommonInfo[_val_Reset];
                }
            }

            switch ((eDeviceName)_devNo)
            {
            case eDeviceName.RS485_6:
                #region          // RS485_6
                if (_en != null) // 有表值 tb_CommonInfo.xls
                {
                    #region      // SeekHome Home_Dir
                    switch (vCmdName)
                    {
                    case "SeekHome":
                        SeekHome _SeekHome = _faim3._SeekHome;
                        _SeekHome.v02.OutputNum = F_Parse._ConverToInt(clsFaim3.StringFormat(_faim3, _en.val_01));
                        _SeekHome.v03.Condition = F_Parse._ConverToInt(clsFaim3.StringFormat(_faim3, _en.val_02));
                        break;

                    case "Home_Dir":
                        Home_Dir _Home_Dir = _faim3._Home_Dir;
                        _Home_Dir.v02.Acc      = F_Parse._ConverToDouble(clsFaim3.StringFormat(_faim3, _en.val_01));
                        _Home_Dir.v03.Dec      = F_Parse._ConverToInt(clsFaim3.StringFormat(_faim3, _en.val_02));
                        _Home_Dir.v04.Vel      = F_Parse._ConverToDouble(clsFaim3.StringFormat(_faim3, _en.val_03));
                        _Home_Dir.v05.Location = F_Parse._ConverTofloat(clsFaim3.StringFormat(_faim3, _en.arr_01[0]));
                        _Home_Dir.v06.Location = F_Parse._ConverTofloat(clsFaim3.StringFormat(_faim3, _en.arr_01[1]));
                        break;
                    }
                    #endregion
                }
                clsProt485 _485 = new clsProt485(_faim3);
                _485.Out_Ready(vCmdName, _val_HL);       // 485 对象
                break;

                #endregion
            case eDeviceName.TCP_5:
            case eDeviceName.TCP_8:
            case eDeviceName.TCP_9:
                string _Format2 = _faim3.dict_CmdFormats[vCmdName].Format;    //[2]; 模板
                //clsRobot_AZ _az = new clsRobot_AZ(_faim3);
                List <string> _lstPara = new List <string>();
                if (_val_HL != -999)
                {
                    // $GetVariable,{0}&CrLf
                    if (!string.IsNullOrEmpty(vHL))
                    {
                        _lstPara.Add(vHL);
                    }
                }
                else if (_str_HL != "   ")
                {
                    if (!string.IsNullOrEmpty(vHL))
                    {
                        _lstPara.Add(_str_HL);
                    }
                }
                if (_en != null)     // 有表值

                {
                    // J Point {0} {1} {2} {3}
                    if (!string.IsNullOrEmpty(_en.val_01))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.val_01));
                    }
                    if (!string.IsNullOrEmpty(_en.val_02))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.val_02));
                    }
                    if (!string.IsNullOrEmpty(_en.val_03))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.val_03));
                    }
                    if (!string.IsNullOrEmpty(_en.arr_1))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.arr_1));
                    }
                    if (!string.IsNullOrEmpty(_en.arr_2))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.arr_2));
                    }
                    if (!string.IsNullOrEmpty(_en.arr_3))
                    {
                        _lstPara.Add(clsFaim3.StringFormat(_faim3, _en.arr_3));
                    }
                }
                _faim3._sss[_ref_1s] = "";      // 非标准二进制字节码



                string _cmd = F_TransCalc.StringFormat(_Format2, _lstPara);
                _faim3._sss[_ref_1s + _faim3.snd_sAsc] = _cmd;         //

                string _Echo4 = _faim3.dict_CmdFormats[vCmdName].Echo; //[4]; 反馈
                _faim3._sss[_ref_1s + _faim3.test_sLoc] = _Echo4;

                break;
            }
            return(_devNo);
        }