diff --git a/BrakeMachine/Brack/BrackMgr.cs b/BrakeMachine/Brack/BrackMgr.cs
index 4ab6d34..9be610d 100644
--- a/BrakeMachine/Brack/BrackMgr.cs
+++ b/BrakeMachine/Brack/BrackMgr.cs
@@ -19,6 +19,29 @@ namespace BrakeMachine.Brack
private static int passage = 1;//通道
private const int m_WaitTime = 5000;
+
+ public static DateTime dateTime = System.DateTime.Now;
+ ///
+ ///
+ ///
+ ///
+ public static string PlateNumber
+ {
+ get
+ {
+ if ((System.DateTime.Now - dateTime).Seconds >= 30)
+ {
+ return "";
+ }
+
+ return PlateNumber;
+ }
+
+ set
+ {
+ value = PlateNumber;
+ }
+ }
#region 连接
@@ -63,6 +86,8 @@ namespace BrakeMachine.Brack
eventInfo.Index = info.stuFileInfo.bIndex.ToString();
eventInfo.Count = info.stuFileInfo.bCount.ToString();
eventInfo.PlateNumber = info.stTrafficCar.szPlateNumber;
+ PlateNumber=info.stTrafficCar.szPlateNumber;
+ dateTime = DateTime.Now;
eventInfo.PlateColor = info.stTrafficCar.szPlateColor;
eventInfo.PlateType = info.stTrafficCar.szPlateType;
eventInfo.VehicleColor = info.stTrafficCar.szVehicleColor;
diff --git a/BrakeMachine/Brack/EventInfo.cs b/BrakeMachine/Brack/EventInfo.cs
index 54b7ca4..5738d80 100644
--- a/BrakeMachine/Brack/EventInfo.cs
+++ b/BrakeMachine/Brack/EventInfo.cs
@@ -10,6 +10,9 @@ public class EventInfo
public string GroupID { get; set; }
public string Index { get; set; }
public string Count { get; set; }
+ ///
+ /// 车牌
+ ///
public string PlateNumber { get; set; }
public string PlateType { get; set; }
public string PlateColor { get; set; }
diff --git a/BrakeMachine/Brack/HttpHandler.cs b/BrakeMachine/Brack/HttpHandler.cs
index 87730cd..60ec626 100644
--- a/BrakeMachine/Brack/HttpHandler.cs
+++ b/BrakeMachine/Brack/HttpHandler.cs
@@ -8,58 +8,65 @@ using log4net;
namespace BrakeMachine.Brack
{
- public class HttpHandler: SimpleChannelInboundHandler
+ public class HttpHandler : SimpleChannelInboundHandler
{
private static readonly ILog Log = LogManager.GetLogger(typeof(HttpHandler));
- static readonly AsciiString TypePlain = AsciiString.Cached("text/plain; charset=utf-8");
- static readonly AsciiString TypeJson = AsciiString.Cached("application/json; charset=utf-8");
- static readonly AsciiString OkLength = AsciiString.Cached(Encoding.UTF8.GetBytes("true").Length.ToString());
- static readonly AsciiString FailLength = AsciiString.Cached(Encoding.UTF8.GetBytes("false").Length.ToString());
- static readonly AsciiString ServerName = AsciiString.Cached("Netty");
- static readonly AsciiString ContentTypeEntity = HttpHeaderNames.ContentType;
- static readonly AsciiString DateEntity = HttpHeaderNames.Date;
- static readonly AsciiString ContentLengthEntity = HttpHeaderNames.ContentLength;
- static readonly AsciiString ServerEntity = HttpHeaderNames.Server;
+ static readonly AsciiString TypePlain = AsciiString.Cached("text/plain; charset=utf-8");
+ static readonly AsciiString TypeJson = AsciiString.Cached("application/json; charset=utf-8");
+ static readonly AsciiString OkLength = AsciiString.Cached(Encoding.UTF8.GetBytes("true").Length.ToString());
+ static readonly AsciiString FailLength = AsciiString.Cached(Encoding.UTF8.GetBytes("false").Length.ToString());
+ static readonly AsciiString ServerName = AsciiString.Cached("Netty");
+ static readonly AsciiString ContentTypeEntity = HttpHeaderNames.ContentType;
+ static readonly AsciiString DateEntity = HttpHeaderNames.Date;
+ static readonly AsciiString ContentLengthEntity = HttpHeaderNames.ContentLength;
+ static readonly AsciiString ServerEntity = HttpHeaderNames.Server;
- protected override void ChannelRead0(IChannelHandlerContext ctx, DefaultHttpRequest req)
- {
- Log.Info($"{req.Uri}, {req}");
-
- DefaultFullHttpResponse response = null;
- switch (req.Uri)
+ protected override void ChannelRead0(IChannelHandlerContext ctx, DefaultHttpRequest req)
{
- case "/Api/Manualsnap"://抓拍
- BrackMgr.Manualsnap();
- //this.WriteResponse(ctx, Unpooled.WrappedBuffer(Encoding.UTF8.GetBytes(closeRfid.ToString())), TypePlain, closeRfid?OkLength: FailLength);
- break;
- default:
- response = new DefaultFullHttpResponse(HttpVersion.Http11, HttpResponseStatus.NotFound, Unpooled.Empty, false);
- ctx.WriteAndFlushAsync(response);
- break;
- }
+ Log.Info($"{req.Uri}, {req}");
+ DefaultFullHttpResponse response = null;
+ switch (req.Uri)
+ {
+ case "/Api/Manualsnap": //抓拍
+ BrackMgr.Manualsnap();
+ string msg = "抓拍成功";
+ this.WriteResponse(ctx, Unpooled.WrappedBuffer(Encoding.UTF8.GetBytes(msg)), TypePlain, OkLength);
+ break;
+ case "/Api/LicensePlateNumber": //车牌号码
+ if(!string.IsNullOrEmpty(BrackMgr.PlateNumber))
+ this.WriteResponse(ctx, Unpooled.WrappedBuffer(Encoding.UTF8.GetBytes(BrackMgr.PlateNumber)), TypePlain, OkLength);
+ else
+ this.WriteResponse(ctx, Unpooled.WrappedBuffer(Encoding.UTF8.GetBytes(BrackMgr.PlateNumber)), TypePlain, FailLength);
+ break;
+ default:
+ response = new DefaultFullHttpResponse(HttpVersion.Http11, HttpResponseStatus.NotFound,
+ Unpooled.Empty, false);
+ ctx.WriteAndFlushAsync(response);
+ break;
+ }
+ }
- }
-
- void WriteResponse(IChannelHandlerContext ctx, IByteBuffer buf, ICharSequence contentType,
- ICharSequence contentLength)
- {
- DateTime dateTime = DateTime.UtcNow;
- // Build the response object.
- var response = new DefaultFullHttpResponse(HttpVersion.Http11, HttpResponseStatus.OK, buf, false);
- HttpHeaders headers = response.Headers;
- headers.Set(ContentTypeEntity, contentType);
- headers.Set(ServerEntity, ServerName);
- headers.Set(DateEntity, AsciiString.Cached($"{dateTime.DayOfWeek}, {dateTime:dd MMM yyyy HH:mm:ss z}"));
- headers.Set(ContentLengthEntity, contentLength);
+ void WriteResponse(IChannelHandlerContext ctx, IByteBuffer buf, ICharSequence contentType,
+ ICharSequence contentLength)
+ {
+ DateTime dateTime = DateTime.UtcNow;
+ // Build the response object.
+ var response = new DefaultFullHttpResponse(HttpVersion.Http11, HttpResponseStatus.OK, buf, false);
+ HttpHeaders headers = response.Headers;
+ headers.Set(ContentTypeEntity, contentType);
+ headers.Set(ServerEntity, ServerName);
+ headers.Set(DateEntity, AsciiString.Cached($"{dateTime.DayOfWeek}, {dateTime:dd MMM yyyy HH:mm:ss z}"));
+ headers.Set(ContentLengthEntity, contentLength);
- // Close the non-keep-alive connection after the write operation is done.
- ctx.WriteAsync(response);
- }
+ // Close the non-keep-alive connection after the write operation is done.
+ ctx.WriteAsync(response);
+ }
- public override void ExceptionCaught(IChannelHandlerContext context, Exception exception) => context.CloseAsync();
+ public override void ExceptionCaught(IChannelHandlerContext context, Exception exception) =>
+ context.CloseAsync();
- public override void ChannelReadComplete(IChannelHandlerContext context) => context.Flush();
+ public override void ChannelReadComplete(IChannelHandlerContext context) => context.Flush();
}
}
\ No newline at end of file