E-Meter Example

This example demonstrates how SensIDL can be used to describe the eMeter-sensor.

Example Code (The code can also be installed at New > Example... > SensIDL Examples > Emeter Example):

sensorInterface eMeter /**Interface for devices measuring electronic current.*/ {
     encoding: SENSIDL_BINARY, endianness: BIG_ENDIAN, alignment: 1 BIT
     sensorData {
        dataSet Conductor uses Info /**Data description of Conductor*/ {
            recordType as UINT8 value= "1"/**Distinct type for this data set.*/
            voltage as INT16 in V
            current as FLOAT in A
            power as FLOAT in W
            powerFactor as UINT16 in Dimensionless adjusted by linear mapping [0;255]=> [0;1] /**Power factor for this conductor. 0 if not available.*/
            identicator as UINT8 /**Identifier to correlate measurements for different conductors.*/
         }

         dataSet NeutralConductor uses Info /**Data description of NeutralConductor*/ {
            recordType as UINT8 value= "4" /**Distinct type for this data set.*/
            current as FLOAT in A
            powerFactor as UINT16 in Dimensionless
        }

         dataSet Energy uses Info /**Data description of Energy*/ {
            recordType as UINT8 value= "5" /**Distinct type for this data set.*/
            l1 as INT16 in kW /**Energy amount for conductor L1.*/
            l2 as FLOAT in kW /**Energy amount for conductor L2.*/
            l3 as FLOAT in kW /**Energy amount for conductor L3.*/
        }

         dataSet Info {
            deviceType as UINT8 constant value="40" /**Type 40 denotes eMeter.*/
        }
    }
}