Example #1
0
        /// <summary>
        /// Looks up unit, converts and loads representation
        /// </summary>
        /// <param name="n"></param>
        /// <param name="ddi"></param>
        /// <param name="mapper"></param>
        /// <returns></returns>
        ///
        public static NumericRepresentationValue AsNumericRepresentationValue(this int n, int ddi, RepresentationMapper mapper, UnitOfMeasure userUnitOfMeasure = null)
        {
            //RepresentationValue
            NumericRepresentationValue returnValue = new ApplicationDataModel.Representations.NumericRepresentationValue();

            //Representation
            returnValue.Representation = mapper.Map(ddi) as NumericRepresentation;

            //Value
            double        convertedValue = (double)n;
            UnitOfMeasure uom            = null;
            ISOUnit       isoUnit        = UnitFactory.Instance.GetUnitByDDI(ddi);

            if (isoUnit != null)
            {
                convertedValue = isoUnit.ConvertFromIsoUnit(convertedValue);
                uom            = isoUnit.ToAdaptUnit();
            }
            returnValue.Value = new ApplicationDataModel.Representations.NumericValue(uom, convertedValue);

            //User UOM
            if (userUnitOfMeasure != null)
            {
                returnValue.UserProvidedUnitOfMeasure = userUnitOfMeasure;
            }

            return(returnValue);
        }
Example #2
0
        public static double ConvertToIsoUnit(this ISOUnit unit, double srcValue, string srcUnitCode)
        {
            if (unit == null)
            {
                return(srcValue);
            }

            double convertedValue = srcValue.ConvertValue(srcUnitCode, unit.ToAdaptUnit().Code);
            double scaledValue    = (convertedValue / unit.Scale) - unit.Offset;

            return(scaledValue);
        }
        private ISOProcessDataVariable ExportProcessDataVariable(NumericRepresentationValue value, string isoProductIdRef, ISOUnit unit)
        {
            if (value != null && value.Value != null)
            {
                UnitOfMeasure adaptUnit    = unit.ToAdaptUnit();
                var           dataVariable = new ISOProcessDataVariable
                {
                    ProductIdRef     = isoProductIdRef,
                    ProcessDataValue = value.AsIntViaMappedDDI(RepresentationMapper),
                    ProcessDataDDI   = DetermineVariableDDI(value.Representation, adaptUnit).AsHexDDI()
                };

                return(dataVariable);
            }
            return(null);
        }