Exemple #1
0
 static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     //Application.Run(new Form1());
     //NameToData.DoubleAddrRead("PD1289");
     NameToAddress.AddAddress("GCodeFilePath", "A31100");
     NameToData.StringAddrRead("GCodeFilePath", 255);
 }
Exemple #2
0
        /// <summary>
        /// 函数作用:从地址读取单字数据
        /// 函数返回值:错误码 888 读取失败  999 通讯接口失效
        /// </summary>
        /// <param name="mkey"></param>
        /// <param name="isAddress"></param>
        /// <returns></returns>

        public static UInt16 SingleAddrRead(String mkey, Boolean isAddress = false)
        {
            Int16[]  InBuffer = { 0 };
            string[] AddrCode;
            if (OpenFlag)
            {
                if (isAddress)
                {
                    AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)");
                }
                else
                {
                    string AddrStr = NameToAddress.AddressDictRead(mkey);
                    if (AddrStr != null)
                    {
                        AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)");
                    }
                    else
                    {
                        return(888);
                    }
                }
                short CODE      = 0;
                short Addrindex = 0;
                if (AddrCode.Length == 0)
                {
                    return(888);
                }
                GetSingleCode(AddrCode, ref CODE, ref Addrindex);

                if (m_TC.Server.ReadVarWord_C(m_TC.Session, CODE, 0, Addrindex, 1, InBuffer, out ErrClass, out ErrNum) > 0)
                {
                    return(Convert.ToUInt16(InBuffer[0]));
                }
                else
                {
                    return(888);
                }
            }
            else
            {
                return(999);
            }
        }
Exemple #3
0
        /// <summary>
        /// 函数作用:读取地址下的字符串数据
        ///函数返回值:
        /// </summary>
        public static string StringAddrRead(string mkey, int length, Boolean isAddress = false)
        {
            string[] AddrCode;
            string   Intext;
            short    Length = Convert.ToInt16(length);

            if (!OpenFlag)
            {
                if (isAddress)
                {
                    AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)");
                }
                else
                {
                    string AddrStr = NameToAddress.AddressDictRead(mkey);
                    if (AddrStr != null)
                    {
                        AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)");
                    }
                    else
                    {
                        return(null);
                    }
                }
                short CODE      = 0;
                short Addrindex = 0;
                if (AddrCode.Length == 0)
                {
                    return(null);
                }
                GetTextCode(AddrCode, ref CODE, ref Addrindex);

                if (m_TC.Server.ReadVarText_C(m_TC.Session, CODE, 1, Addrindex, Length, out Intext, out ErrClass, out ErrNum) > 0)
                {
                    return(Intext);
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }
Exemple #4
0
 /// <summary>
 /// 函数作用:读取Double类型数据
 /// 函数返回值:正确时候返回数值 错误码888
 /// </summary>
 /// <param name="mkey"></param>
 /// <param name="isAddress"></param>
 /// <returns></returns>
 public static int DoubleAddrRead(string mkey, Boolean isAddress = false)
 {
     double[] InDou = new double[1];
     string[] AddrCode;
     if (OpenFlag)
     {
         if (isAddress)
         {
             AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)");
         }
         else
         {
             string AddrStr = NameToAddress.AddressDictRead(mkey);
             if (AddrStr != null)
             {
                 AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)");
             }
             else
             {
                 return(888);
             }
         }
         short CODE      = 0;
         short Addrindex = 0;
         if (AddrCode.Length == 0)
         {
             return(888);
         }
         GetDoubleCode(AddrCode, ref CODE, ref Addrindex);
         if (m_TC.Server.ReadVarDouble_C(m_TC.Session, CODE, 0, Addrindex, 1, InDou, out ErrClass, out ErrNum) != 0)
         {
             return(Convert.ToInt32(InDou[0]));
         }
         else
         {
             return(888);
         }
     }
     return(999);
 }