123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DWZB_Agv_Agreement.Agv_Agreement
- {
- /// <summary>
- /// 状态反馈(AGV发给上位机)指令实体类
- /// </summary>
- public class AgvStatusResponseMd : DataHeadMd
- {
- private const int btyArrLen = 63;
- /// <summary>
- /// AGV工作状态
- /// </summary>
- public byte AgvWorkMode { get; set; }
- /// <summary>
- /// AGV运行状态
- /// </summary>
- public byte AgvRunStatus { get; set; }
- /// <summary>
- /// AGV抱夹状态
- /// </summary>
- public byte AgvClipStatus { get; set; }
- /// <summary>
- /// AGV运动状态
- /// </summary>
- public byte AgvMotionStatus { get; set; }
- /// <summary>
- /// 当前任务阶段
- /// </summary>
- public byte CurrentTaskStage { get; set; }
- /// <summary>
- /// 支撑状态
- /// </summary>
- public byte PropUpStatus { get; set; }
- /// <summary>
- /// 光柱个数
- /// </summary>
- public byte BeamQty { get; set; }
- /// <summary>
- /// 车头超声波信号
- /// </summary>
- public byte AgvHeadUltrasonicSignal{ get; set; }
- /// <summary>
- /// 车尾超声波信号
- /// </summary>
- public byte AgvTailUltrasonicSignal { get; set; }
- /// <summary>
- /// 防撞条屏蔽
- /// </summary>
- public byte PreventBumpDeviceScreenSignal { get; set; }
- /// <summary>
- /// AGV当前位置X坐标
- /// </summary>
- public int AgvCurrent_X { get; set; }
- /// <summary>
- /// AGV当前位置Y坐标
- /// </summary>
- public int AgvCurrent_Y { get; set; }
- /// <summary>
- /// AGV当前位置R角度
- /// </summary>
- public int AgvCurrent_Angle { get; set; }
- /// <summary>
- /// 电池的电量
- /// </summary>
- public int Electricity { get; set; }
- /// <summary>
- /// 电池的电压
- /// </summary>
- public int ElectricTension { get; set; }
- /// <summary>
- /// 电池的电流
- /// </summary>
- public int ElectricCurrent { get; set; }
- /// <summary>
- /// AGV当前指令编号
- /// </summary>
- public int AgvCurrentCmdNo { get; set; }
- /// <summary>
- /// 报警编号1
- /// </summary>
- public int AlarmSignal1 { get; set; }
- /// <summary>
- /// 报警编号2
- /// </summary>
- public int AlarmSignal2 { get; set; }
- /// <summary>
- /// 报警编号3
- /// </summary>
- public int AlarmSignal3 { get; set; }
- /// <summary>
- /// 报警编号4
- /// </summary>
- public int AlarmSignal4 { get; set; }
- /// <summary>
- /// 心跳信号,环形计数
- /// </summary>
- public int AgvHeartbeatSignal { get; set; }
- /// <summary>
- /// 序列化为byte数组。
- /// </summary>
- public byte[] SerializeBytArr()
- {
- List<byte> retBtArr = new(btyArrLen);
- retBtArr.Add(FunctionCode);
- retBtArr.AddRange(BitConverter.GetBytes(AgvNo));
- retBtArr.Add(AgvWorkMode);
- retBtArr.Add(AgvRunStatus);
- retBtArr.Add(AgvClipStatus);
- retBtArr.Add(AgvMotionStatus);
- retBtArr.Add(CurrentTaskStage);
- retBtArr.Add(PropUpStatus);
- retBtArr.Add(BeamQty);
- retBtArr.Add(AgvHeadUltrasonicSignal);
- retBtArr.Add(AgvTailUltrasonicSignal);
- retBtArr.Add(PreventBumpDeviceScreenSignal);
- retBtArr.AddRange(BitConverter.GetBytes(AgvCurrent_X));
- retBtArr.AddRange(BitConverter.GetBytes(AgvCurrent_Y));
- retBtArr.AddRange(BitConverter.GetBytes(AgvCurrent_Angle));
- retBtArr.AddRange(BitConverter.GetBytes(Electricity));
- retBtArr.AddRange(BitConverter.GetBytes(ElectricTension));
- retBtArr.AddRange(BitConverter.GetBytes(ElectricCurrent));
- retBtArr.AddRange(BitConverter.GetBytes(AgvCurrentCmdNo));
- retBtArr.AddRange(BitConverter.GetBytes(AlarmSignal1));
- retBtArr.AddRange(BitConverter.GetBytes(AlarmSignal2));
- retBtArr.AddRange(BitConverter.GetBytes(AlarmSignal3));
- retBtArr.AddRange(BitConverter.GetBytes(AlarmSignal4));
- retBtArr.AddRange(BitConverter.GetBytes(AgvHeartbeatSignal));
- return retBtArr.ToArray();
- }
- }
- }
|