// Static Methods // Delegate handler to create a new BPA PDCstream analog value internal static IAnalogValue CreateNewValue(IDataCell parent, IAnalogDefinition definition, byte[] buffer, int startIndex, out int parsedLength) { IAnalogValue analog = new AnalogValue(parent, definition); parsedLength = analog.ParseBinaryImage(buffer, startIndex, 0); return(analog); }
/// <summary> /// Creates a new <see cref="AnalogValue"/>. /// </summary> /// <param name="parent">The <see cref="IDataCell"/> parent of this <see cref="AnalogValue"/>.</param> /// <param name="analogDefinition">The <see cref="IAnalogDefinition"/> associated with this <see cref="AnalogValue"/>.</param> public AnalogValue(IDataCell parent, IAnalogDefinition analogDefinition) : base(parent, analogDefinition) { }
// Static Methods // Delegate handler to create a new BPA PDCstream analog value internal static IAnalogValue CreateNewValue(IDataCell parent, IAnalogDefinition definition, byte[] buffer, int startIndex, out int parsedLength) { IAnalogValue analog = new AnalogValue(parent, definition); parsedLength = analog.ParseBinaryImage(buffer, startIndex, 0); return analog; }
private void SaveDeviceRecords(IConfigurationFrame configFrame, Device device, ScanParameters scanParams) { AdoDataConnection connection = scanParams.Connection; TableOperations <Measurement> measurementTable = new(connection); IConfigurationCell cell = configFrame.Cells[0]; // Add frequency SaveFixedMeasurement(m_deviceSignalTypes["FREQ"], device, measurementTable, scanParams, cell.FrequencyDefinition.Label); // Add dF/dt SaveFixedMeasurement(m_deviceSignalTypes["DFDT"], device, measurementTable, scanParams); // Add status flags SaveFixedMeasurement(m_deviceSignalTypes["FLAG"], device, measurementTable, scanParams); // Add analogs SignalType analogSignalType = m_deviceSignalTypes["ALOG"]; for (int i = 0; i < cell.AnalogDefinitions.Count; i++) { int index = i + 1; IAnalogDefinition analogDefinition = cell.AnalogDefinitions[i]; string signalReference = $"{device.Acronym}-{analogSignalType.Suffix}{index}"; // Query existing measurement record for specified signal reference - function will create a new blank measurement record if one does not exist Measurement measurement = measurementTable.QueryMeasurement(signalReference); string pointTag = scanParams.CreateIndexedPointTag(device.Acronym, analogSignalType.Acronym, index); measurement.DeviceID = device.ID; measurement.PointTag = pointTag; measurement.AlternateTag = analogDefinition.Label; measurement.Description = $"{device.Acronym} Analog Value {index} {analogDefinition.AnalogType}: {analogDefinition.Label}"; measurement.SignalReference = signalReference; measurement.SignalTypeID = analogSignalType.ID; measurement.Internal = true; measurement.Enabled = true; measurementTable.AddNewOrUpdateMeasurement(measurement); } // Add digitals SignalType digitalSignalType = m_deviceSignalTypes["DIGI"]; for (int i = 0; i < cell.DigitalDefinitions.Count; i++) { int index = i + 1; IDigitalDefinition digitialDefinition = cell.DigitalDefinitions[i]; string signalReference = $"{device.Acronym}-{digitalSignalType.Suffix}{index}"; // Query existing measurement record for specified signal reference - function will create a new blank measurement record if one does not exist Measurement measurement = measurementTable.QueryMeasurement(signalReference); string pointTag = scanParams.CreateIndexedPointTag(device.Acronym, digitalSignalType.Acronym, index); measurement.DeviceID = device.ID; measurement.PointTag = pointTag; measurement.AlternateTag = digitialDefinition.Label; measurement.Description = $"{device.Acronym} Digital Value {index}: {digitialDefinition.Label}"; measurement.SignalReference = signalReference; measurement.SignalTypeID = digitalSignalType.ID; measurement.Internal = true; measurement.Enabled = true; measurementTable.AddNewOrUpdateMeasurement(measurement); } // Add phasors SaveDevicePhasors(cell, device, measurementTable, scanParams); }