ActionDataPkg.cs 1.5 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mushiny.Model
{
    /// <summary>
    /// 动作命令包
    /// RCS->AGV
    /// 需要机器人执行单独的动作命令的时候发送一次
    /// 执行完成后机器人须发送一次命令码完成回复包
    /// </summary>
    public class ActionDataPkg : PkgData
    {
        public ActionDataPkg() : base()
        {
            FrameHead = 0xbb;
            CmdWord = 0x02;
        }
        /// <summary>
        /// 命令码
        /// 数据位置:起始编号12,长度1
        /// </summary>
        public byte ActionCode { get; set; }
        /// <summary>
        /// 属性值
        /// int8
        /// 数据位置:起始编号13,长度1
        /// </summary>
        public byte PropVal { get; set; }
        /// <summary>
        /// 动作参数
        /// 数据位置:起始编号14
        /// </summary>
        public List<byte> ActionParams { get; set; }

        public override byte[] ToBytes()
        {
            List<byte> bytes = new List<byte>(base.ToBytes())
            {
                ActionCode,
                PropVal,
            };
            if (ActionParams != null && ActionParams.Count > 0)
                bytes.AddRange(ActionParams);
            calSendCrc(bytes);
            bytes.Add(CRC16Low);
            bytes.Add(CRC16Upper);
            return bytes.ToArray();
        }
    }
}