public DNP_Frame(byte[] rawdata) { dt = DateTime.Now; this.rawdata = rawdata; byte[] DLheader = new byte[10]; for (int i = 0; i < 10; i++) // rawdata has at least 10 bytes { DLheader[i] = rawdata[i]; } dataLinkHeader = new DataLink_Header(DLheader); int rawdataindex = 10; if (rawdata.Length > 10) // rawdata more than 10 bytes (DLH + TH + AH) { transportHeader = new Transport_Header(rawdata[10]); rawdataindex = 11; // Application_Layer Constructor Here byte[] APheader = new byte[rawdata.Length - 11]; for (int i = 0; i < APheader.Length; i++) { APheader[i] = rawdata[rawdataindex]; rawdataindex++; } applicationHeader = new Application_Header(this.dataLinkHeader, this.transportHeader, APheader); } }
public DNP_Frame(DataLink_Header DL, Transport_Header TH, Application_Header AP) { this.dataLinkHeader = DL; this.transportHeader = TH; this.applicationHeader = AP; }