/* * 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 状态" }); }
/* * 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}' 不合法" }); }