using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Bro.Device.OmronFins { public class FinsFrameBase { /// /// 80 发送 C0 接收 /// public byte ICF { get; set; } public byte RSV { get; set; } = 0x00; public byte GCT { get; set; } = 0x02; /// /// 目标网络号 /// public byte DNA { get; set; } /// /// 目标节点号 /// public byte DA1 { get; set; } /// /// 目标单元号 /// public byte DA2 { get; set; } /// /// 源网络号 /// public byte SNA { get; set; } /// /// 源节点号 /// public byte SA1 { get; set; } /// /// 源单元号 /// public byte SA2 { get; set; } public byte SID { get; set; } public byte MRC { get; set; } = 0x01; /// /// 01 读;02 写 /// public byte SRC { get; set; } protected List BytesFrame(int sid = 0) { List bytes = new List(); bytes.Add(ICF); bytes.Add(RSV); bytes.Add(GCT); bytes.Add(DNA); bytes.Add(DA1); bytes.Add(DA2); bytes.Add(SNA); bytes.Add(SA1); bytes.Add(SA2); SID = (byte)sid; bytes.Add(SID); bytes.Add(MRC); bytes.Add(SRC); return bytes; } //private string FCS(string data) //{ // int xorresult = 0; // string tempfes = ""; // for (int i = 0; i < data.Length; i++) // { // xorresult = xorresult ^ Convert.ToInt32(data[i]); // } // tempfes = Convert.ToString(xorresult, 16); // if (tempfes.Length == 1) // { // tempfes = "0" + tempfes; // } // return tempfes; //} } }