public int setLeadMeasurements(LeadMeasurements mes) { if (mes != null) { int nrLeads = mes.Measurements.Length; _NrLeads = (ushort)nrLeads; for (int i = 0; i < nrLeads; i++) { int nrValues = mes.Measurements[i].Count; nrValues = (nrLeads > 0) ? ((int)mes.Measurements[i].getKeyByIndex(nrValues - 1)) + 1 : 0; _LeadMeasurements[i] = new SCPLeadMeasurements(); _LeadMeasurements[i].LeadId = mes.Measurements[i].LeadType; _LeadMeasurements[i].Count = nrValues; nrValues = mes.Measurements[i].Count; for (int j = 0; j < nrValues; j++) { _LeadMeasurements[i][mes.Measurements[i].getKeyByIndex(j)] = mes.Measurements[i].getValueByIndex(j); } } return(0); } return(1); }
protected override int _Read(byte[] buffer, int offset) { int startsize = Marshal.SizeOf(_NrLeads) + Marshal.SizeOf(_ManufactorSpecific); int end = offset - Size + Length; if ((offset + startsize) > end) { return(0x1); } int fieldSize = Marshal.SizeOf(_NrLeads); _NrLeads = (ushort)BytesTool.readBytes(buffer, offset, fieldSize, true); offset += fieldSize; fieldSize = Marshal.SizeOf(_ManufactorSpecific); _ManufactorSpecific = (ushort)BytesTool.readBytes(buffer, offset, fieldSize, true); offset += fieldSize; if (_LeadMeasurements == null) { return(0x0); } for (int i = 0; i < _LeadMeasurements.Length; i++) { _LeadMeasurements[i] = new SCPLeadMeasurements(); int ret = _LeadMeasurements[i].Read(buffer, offset); if (ret != 0) { _LeadMeasurements[i] = null; return(ret); } offset += _LeadMeasurements[i].getLength(); } return(0x0); }