using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace Bro.Device.OmronFins
|
{
|
public class FinsFrameBase
|
{
|
/// <summary>
|
/// 80 发送 C0 接收
|
/// </summary>
|
public byte ICF { get; set; }
|
public byte RSV { get; set; } = 0x00;
|
public byte GCT { get; set; } = 0x02;
|
/// <summary>
|
/// 目标网络号
|
/// </summary>
|
public byte DNA { get; set; }
|
/// <summary>
|
/// 目标节点号
|
/// </summary>
|
public byte DA1 { get; set; }
|
/// <summary>
|
/// 目标单元号
|
/// </summary>
|
public byte DA2 { get; set; }
|
/// <summary>
|
/// 源网络号
|
/// </summary>
|
public byte SNA { get; set; }
|
/// <summary>
|
/// 源节点号
|
/// </summary>
|
public byte SA1 { get; set; }
|
/// <summary>
|
/// 源单元号
|
/// </summary>
|
public byte SA2 { get; set; }
|
public byte SID { get; set; }
|
public byte MRC { get; set; } = 0x01;
|
/// <summary>
|
/// 01 读;02 写
|
/// </summary>
|
public byte SRC { get; set; }
|
|
protected List<byte> BytesFrame(int sid = 0)
|
{
|
List<byte> bytes = new List<byte>();
|
|
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;
|
//}
|
}
|
}
|