Beispiel #1
0
        /// <summary>
        /// 创建串口连接
        /// </summary>
        /// <param name="com">串口</param>
        /// <param name="baudRate">波特率</param>
        /// <param name="isConnect">是否连接串口成功</param>
        /// <returns></returns>
        private static GClient CreateClientConn(string com, string baudRate, out bool isConnect)
        {
            GClient clientConn = new GClient();

            isConnect = clientConn.OpenSerial(com + ":" + baudRate, 3000, out eConnectionAttemptEventStatusType status);
            return(clientConn);
        }
Beispiel #2
0
        public static void TestRFID(object sender, ElapsedEventArgs elapsed)
        {
            GClient clientConn = new GClient();

            //COM1  主柜rfid串口
            //COM4  副柜rfid串口
            if (clientConn.OpenSerial("COM1:115200", 3000, out eConnectionAttemptEventStatusType status))
            //if (clientConn.OpenTcp("192.168.1.168:8160", 3000, out status))
            {
                // 订阅标签上报事件
                clientConn.OnEncapedTagEpcLog  += new delegateEncapedTagEpcLog(OnEncapedTagEpcLog);
                clientConn.OnEncapedTagEpcOver += new delegateEncapedTagEpcOver(OnEncapedTagEpcOver);

                // 停止指令,空闲态
                MsgBaseStop msgBaseStop = new MsgBaseStop();
                clientConn.SendSynMsg(msgBaseStop);
                if (0 == msgBaseStop.RtCode)
                {
                    LogUtils.Debug("Stop successful.");
                }
                else
                {
                    LogUtils.Debug("Stop error.");
                }

                // 功率配置, 将4个天线功率都设置为30dBm.
                MsgBaseSetPower msgBaseSetPower = new MsgBaseSetPower
                {
                    DicPower = new Dictionary <byte, byte>()
                    {
                        { 1, 30 },
                        { 2, 30 },
                        { 3, 30 },
                        { 4, 30 }
                    }
                };
                clientConn.SendSynMsg(msgBaseSetPower);
                if (0 == msgBaseSetPower.RtCode)
                {
                    LogUtils.Debug("Power configuration successful.");
                }
                else
                {
                    LogUtils.Debug("Power configuration error.");
                }
                LogUtils.Debug("Enter any character to start reading the tag.");
                Console.ReadKey();

                // 4个天线读卡, 读取EPC数据区以及TID数据区
                MsgBaseInventoryEpc msgBaseInventoryEpc = new MsgBaseInventoryEpc
                {
                    AntennaEnable = (uint)(eAntennaNo._1 | eAntennaNo._2 | eAntennaNo._3 | eAntennaNo._4),
                    InventoryMode = (byte)eInventoryMode.Inventory,
                    // tid参数
                    ReadTid = new ParamEpcReadTid()
                };
                msgBaseInventoryEpc.ReadTid.Mode = (byte)eParamTidMode.Auto;
                msgBaseInventoryEpc.ReadTid.Len  = 6;
                clientConn.SendSynMsg(msgBaseInventoryEpc);
                if (0 == msgBaseInventoryEpc.RtCode)
                {
                    LogUtils.Debug("Inventory epc successful.");
                }
                else
                {
                    LogUtils.Debug("Inventory epc error.");
                }
                Console.ReadKey();

                // 停止读卡,空闲态
                clientConn.SendSynMsg(msgBaseStop);
                if (0 == msgBaseStop.RtCode)
                {
                    LogUtils.Debug("Stop successful.");
                }
                else
                {
                    LogUtils.Debug("Stop error.");
                }
            }
            else
            {
                LogUtils.Debug("Connect failure.");
            }
            Console.ReadKey();
            clientConn.Close();
        }