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;
//}
}
}