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.
|
|
|
|
using System.Text;
|
|
|
|
|
using HybirdFrameworkCore.Autofac.Attribute;
|
|
|
|
|
using HybirdFrameworkCore.Entity;
|
|
|
|
|
using log4net;
|
|
|
|
|
using HybirdFrameworkDriver.TcpClient;
|
|
|
|
|
using Decoder = Service.Padar.Codec.Decoder;
|
|
|
|
|
using Encoder = Service.Padar.Codec.Encoder;
|
|
|
|
|
|
|
|
|
|
namespace Service.Padar.Client;
|
|
|
|
|
|
|
|
|
|
[Scope]
|
|
|
|
|
public class PadarClient : TcpClient<IBaseHandler, Decoder, Encoder>
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 0-雷达不工作;1-无车;2-无电池,3-角度偏移过大;4-车辆靠后;5-车辆靠前;6-车辆到位
|
|
|
|
|
/// </summary>
|
|
|
|
|
public byte CarState =new byte();
|
|
|
|
|
|
|
|
|
|
public static readonly byte[] StartChar = { 0xFE, 0x68 };
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
public static byte serialNum = 0;
|
|
|
|
|
|
|
|
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(PadarClient));
|
|
|
|
|
|
|
|
|
|
public bool Connect()
|
|
|
|
|
{
|
|
|
|
|
base.BaseConnect();
|
|
|
|
|
Log.Info($"padar connect succeed");
|
|
|
|
|
return Connected;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 0-关闭雷达 1-开启
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="byte3">0-关闭雷达 1-开启雷达</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Result<bool> PadarControl(byte byte3)
|
|
|
|
|
{
|
|
|
|
|
byte[] sendBytes = new byte[4];
|
|
|
|
|
sendBytes[0] = 0xFE;
|
|
|
|
|
sendBytes[1] = 0x68;
|
|
|
|
|
if (serialNum > byte.MaxValue)
|
|
|
|
|
serialNum = 0;
|
|
|
|
|
sendBytes[2] = serialNum;
|
|
|
|
|
serialNum++;
|
|
|
|
|
sendBytes[3] = byte3;
|
|
|
|
|
this.Channel.WriteAndFlushAsync(sendBytes);
|
|
|
|
|
return Result<bool>.Success();
|
|
|
|
|
}
|
|
|
|
|
}
|