Ejemplo n.º 1
0
Archivo: EasForm.cs Proyecto: renyh/dp2
        /*
         * private const int WS_EX_TOPMOST = 0x00000008;
         * protected override CreateParams CreateParams
         * {
         *  get
         *  {
         *      CreateParams createParams = base.CreateParams;
         *      createParams.ExStyle |= WS_EX_TOPMOST;
         *      return createParams;
         *  }
         * }
         */

        // 从 TagList.Books 中获得一个标签的 EAS 状态
        // result.Value:
        //      -1  出错
        //      0   Off
        //      1   On
        NormalResult GetEasStateByUID(string uid)
        {
            foreach (var data in TagList.Books)
            {
                if (data.OneTag.UID != uid)
                {
                    continue;
                }
                if (data.OneTag.TagInfo == null)
                {
                    return new NormalResult
                           {
                               Value     = -1,
                               ErrorInfo = $"UID 为 '{uid}' 的标签暂时 TagInfo == null,无法获得 EAS 状态"
                           }
                }
                ;
                return(new NormalResult {
                    Value = data.OneTag.TagInfo.EAS ? 1 : 0
                });
            }

            // TODO: 此时可否发起一次 GetTagInfo 请求?
            return(new NormalResult {
                Value = -1, ErrorInfo = $"UID 为 '{uid}' 的标签不在读卡器上,无法获得其 EAS 状态"
            });
        }

        // 从 TagList.Books 中获得一个标签的 EAS 状态
        // result.Value:
        //      -1  出错
        //      0   Off
        //      1   On
        NormalResult GetEasStateByPII(string pii)
        {
            foreach (var data in TagList.Books)
            {
                TagInfo tag_info = null;
                if (data.OneTag.TagInfo == null)
                {
                    // TODO: 出错了考虑重试一下
                    // result.Value
                    //      -1
                    //      0
                    var result = RfidManager.GetTagInfo("*", data.OneTag.UID);

                    if (result.Value == -1)
                    {
                        continue;
                    }
                    tag_info = result.TagInfo;
                }
                else
                {
                    tag_info = data.OneTag.TagInfo;
                }

                string current_pii = QuickChargingForm.GetPII(tag_info);
                if (current_pii == pii)
                {
                    return(new NormalResult {
                        Value = tag_info.EAS ? 1 : 0
                    });
                }
            }

            return(new NormalResult {
                Value = -1, ErrorInfo = $"PII 为 '{pii}' 的标签不在读卡器上,无法获得其 EAS 状态"
            });
        }
Ejemplo n.º 2
0
Archivo: EasForm.cs Proyecto: zgren/dp2
        /*
         * private const int WS_EX_TOPMOST = 0x00000008;
         * protected override CreateParams CreateParams
         * {
         *  get
         *  {
         *      CreateParams createParams = base.CreateParams;
         *      createParams.ExStyle |= WS_EX_TOPMOST;
         *      return createParams;
         *  }
         * }
         */

        // result.Value:
        //      -1  没有找到
        //      其他 天线编号
        NormalResult GetAntennaByUID(string uid)
        {
            foreach (var data in TagList.Books)
            {
                if (data.OneTag.UID != uid)
                {
                    continue;
                }
                if (data.OneTag.TagInfo == null)
                {
                    return new NormalResult
                           {
                               Value     = -1,
                               ErrorInfo = $"UID 为 '{uid}' 的标签暂时 TagInfo == null,无法获得天线编号"
                           }
                }
                ;
                return(new NormalResult {
                    Value = (int)data.OneTag.AntennaID
                });
            }

            // TODO: 此时可否发起一次 GetTagInfo 请求?
            return(new NormalResult
            {
                Value = -1,
                ErrorInfo = $"UID 为 '{uid}' 的标签不在读卡器上,无法获得其天线编号"
            });
        }

        // 从 TagList.Books 中获得一个标签的 EAS 状态
        // result.Value:
        //      -1  出错
        //      0   Off
        //      1   On
        GetEasStateResult GetEasStateByUID(string uid)
        {
            foreach (var data in TagList.Books)
            {
                if (data.OneTag.UID != uid)
                {
                    continue;
                }
                if (data.OneTag.TagInfo == null)
                {
                    return new GetEasStateResult
                           {
                               Value     = -1,
                               ErrorInfo = $"UID 为 '{uid}' 的标签暂时 TagInfo == null,无法获得 EAS 状态"
                           }
                }
                ;
                return(new GetEasStateResult
                {
                    Value = data.OneTag.TagInfo.EAS ? 1 : 0,
                    AntennaID = data.OneTag.AntennaID,
                    ReaderName = data.OneTag.ReaderName
                });
            }

            // TODO: 此时可否发起一次 GetTagInfo 请求?
            return(new GetEasStateResult
            {
                Value = -1,
                ErrorInfo = $"UID 为 '{uid}' 的标签不在读卡器上,无法获得其 EAS 状态"
            });
        }

        // 从 TagList.Books 中获得一个标签的 EAS 状态
        // result.Value:
        //      -1  出错
        //      0   Off
        //      1   On
        GetEasStateResult GetEasStateByPII(string pii)
        {
            foreach (var data in TagList.Books)
            {
                TagInfo tag_info = null;
                if (data.OneTag.TagInfo == null)
                {
                    // TODO: 出错了考虑重试一下
                    // result.Value
                    //      -1
                    //      0
                    var result = RfidManager.GetTagInfo("*",
                                                        data.OneTag.UID,
                                                        data.OneTag.AntennaID);

                    if (result.Value == -1)
                    {
                        continue;
                    }
                    tag_info = result.TagInfo;
                }
                else
                {
                    tag_info = data.OneTag.TagInfo;
                }

                string current_pii = QuickChargingForm.GetPII(tag_info);
                if (current_pii == pii)
                {
                    return(new GetEasStateResult
                    {
                        Value = tag_info.EAS ? 1 : 0,
                        AntennaID = tag_info.AntennaID,
                        ReaderName = tag_info.ReaderName
                    });
                }
            }

            return(new GetEasStateResult
            {
                Value = -1,
                ErrorInfo = $"PII 为 '{pii}' 的标签不在读卡器上,无法获得其 EAS 状态"
            });
        }

        // result.Value:
        //      -1  出错
        //      0   Off
        //      1   On
        internal GetEasStateResult GetEAS(string reader_name,
                                          string tag_name)
        {
            Parse(tag_name, out string uid, out string pii);
            if (string.IsNullOrEmpty(uid) == false)
            {
                return(GetEasStateByUID(uid));
            }
            if (string.IsNullOrEmpty(pii) == false)
            {
                return(GetEasStateByPII(pii));
            }

            return(new GetEasStateResult
            {
                Value = -1,
                ErrorInfo = $"tag_name '{tag_name}' 不合法"
            });
        }