You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkDriver.Common;
using HybirdFrameworkDriver.TcpServer;
using Service.Car.Codec;
using Service.Car.Handler;
using Service.Car.Msg.Car.Req;
using Service.Car.Msg.Car.Resp;
using Service.Car.Msg.Host.Req;
namespace Service.Car.Server;
[Scope("SingleInstance")]
public class CarServer : TcpServer<IBaseHandler, Decoder, Encoder>
{
/// <summary>
/// 客户端连接状态
/// </summary>
public bool Connected { get; set; }
public string? CarNo { get; set; }
public MsgPair<LockMsg, LockMsgResp> LockMsgPair { get; set; } = new ();
public MsgPair<UnLockMsg, UnLockMsgResp> UnLockMsgPair { get; set; } = new ();
public MsgPair<SetParamMsg, SetParamMsgResp> SetParamMsgPair { get; set; } = new ();
public MsgPair<SettleConfirmMsg, SettleConfirmMsgResp> SettleConfirmMsgPair { get; set; } = new ();
public HeartBeatMsg? HeartBeatMsg { get; set; }
/// <summary>
/// 1 待机 2 换电
/// </summary>
public byte StationStatus { get; set; } = 1;
/// <summary>
/// 度电数据车载设备连接上换电站的 Wifi 网络时,主动上送度电数据报文(命令代码: 0x01发送周期 60s服务器回复相应的报文(命令代码0x02)
/// </summary>
public ElecMsg? ElecMsg { get; set; }
public CarServer() : base()
{
this.ChannelInActiveAction = Clean;
this.LogLevel = DotNetty.Handlers.Logging.LogLevel.INFO;
}
/// <summary>
/// 清理数据
/// </summary>
public void Clean()
{
Connected = false;
CarNo = null;
HeartBeatMsg = null;
ElecMsg = null;
LockMsgPair.ClearResp();
UnLockMsgPair.ClearResp();
SetParamMsgPair.ClearResp();
SettleConfirmMsgPair.ClearResp();
}
}