Exemple #1
0
        private void inventory()
        {
            byte Ant = 0;
            int  CardNum = 0;
            int  Totallen = 0;
            int  EPClen, m;

            byte[] EPC = new byte[50000];
            int    CardIndex;
            string temps, temp;

            temp = "";
            string sEPC;
            byte   MaskMem = 0;

            byte[] MaskAdr = new byte[2];
            byte   MaskLen = 0;

            byte[]          MaskData = new byte[100];
            byte            MaskFlag = 0;
            byte            AdrTID   = 0;
            byte            LenTID   = 0;
            DataGridViewRow rows     = new DataGridViewRow();


            ErrorsCatcher.errorName = RWDev.Inventory_G2(ref RWDev.comAddress, RWDev.QValue, RWDev.session, MaskMem, MaskAdr, MaskLen, MaskData,
                                                         MaskFlag, AdrTID, LenTID, RWDev.TIDFlag, RWDev.target, RWDev.inAnt, scantime, RWDev.fastFlag,
                                                         EPC, ref Ant, ref Totallen, ref CardNum, RWDev.frmComPortIndex);


            resultTime = DateTime.Now;

            if ((ErrorsCatcher.errorName == 1) | (ErrorsCatcher.errorName == 2) | (ErrorsCatcher.errorName == 3) | (ErrorsCatcher.errorName == 4))
            {
                byte[] daw = new byte[Totallen];
                Array.Copy(EPC, daw, Totallen);
                temps = ConverterTo.ByteArrayToHexString(daw);
                m     = 0;
                if (CardNum == 0)
                {
                    return;
                }

                for (CardIndex = 0; CardIndex < CardNum; CardIndex++)
                {
                    EPClen = daw[m] + 1;
                    temp   = temps.Substring(m * 2 + 2, EPClen * 2);
                    sEPC   = temp.Substring(0, temp.Length - 2);
                    string RSSI = Convert.ToInt32(temp.Substring(temp.Length - 2, 2), 16).ToString();
                    m = m + EPClen + 1;
                    if (sEPC.Length != (EPClen - 1) * 2)
                    {
                        return;
                    }

                    if (!scanData.ContainsKey(sEPC))
                    {
                        scanData.Add(sEPC, resultTime);
                        richTextBoxLogs.AppendText(resultTime.ToString() + " goods with RFID " + sEPC + " scaned." + Environment.NewLine);
                        Task sendToServer = Task.Run(() => {
                            try {
                                Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
                                var client      = new ScannerServer.ScannerServerClient(channel);
                                var reply       = client.SendDataToServer(new SendRequest {
                                    GoodsInfo = { RFID = sEPC, Time = resultTime.ToString() }
                                });
                            }
                            catch
                            {
                                richTextBoxLogs.AppendText("Send data to server failed!" + Environment.NewLine);
                            }
                        });
                    }
                }
            }
        }
 /// <summary>
 /// デフォルトコンストラクタ
 /// 引数の値で初期化を行う
 /// </summary>
 /// <param name="from">コンバーターが対象とする型に変換する機能</param>
 /// <param name="to">指定の型に変換する機能</param>
 public ConverterDelegateInfo(ConverterFrom from, ConverterTo to)
 {
     From = from;
     To   = to;
 }