MAXREFDES143#: DeepCover Embedded Security in IoT Authenticated Sensing & Notification

Dependencies:   MaximInterface mbed

Embed: (wiki syntax)

« Back to documentation index

SensorNode Class Reference

SensorNode Class Reference

Interface to the Authenticated Sensor Node peripheral board. More...

#include <SensorNode.hpp>

Public Types

enum  State { UnableToCommunicate, NotProvisioned, NotAuthentic, Authentic }

Public Member Functions

 SensorNode (mbed::I2C &i2c, uint8_t ds7505_i2c_addr, uint8_t max44009_i2c_addr, MaximInterface::DS2465 &ds2465)
State detect (unsigned int userEntropy)
 Detect if an authentic Sensor Node is connected.
State authenticatedReadSensorData (unsigned int userEntropy, SensorData &sensorData)
 Read the current temperature and filter life measurements with authentication.
bool readSensorData (SensorData &sensorData)
 Reads the current temperature and filter life measurements.
const MaximInterface::RomId romId () const
 Get the ROM ID for this sensor node.
double initialLux () const
 Get the initial lux measurement for this sensor node.

Friends

bool provisionCoprocessor (MaximInterface::DS2465 &ds2465)
 Represents the secure factory that will perform the initial provisioning of Controllers (DS2465) and Sensor Nodes (DS28E15) for later authentication.
bool provisionSensorNode (SensorNode &sensorNode, bool validSecret)
 Provision the DS28E15 on a Sensor Node.

Detailed Description

Interface to the Authenticated Sensor Node peripheral board.

Definition at line 48 of file SensorNode.hpp.


Member Enumeration Documentation

enum State
Enumerator:
UnableToCommunicate 

I2C or 1-Wire communication failure.

NotProvisioned 

DS28E15 has not been provisioned.

NotAuthentic 

DS28E15 is not authentic.

Authentic 

DS218E15 is authentic.

Definition at line 50 of file SensorNode.hpp.


Constructor & Destructor Documentation

SensorNode ( mbed::I2C &  i2c,
uint8_t  ds7505_i2c_addr,
uint8_t  max44009_i2c_addr,
MaximInterface::DS2465 &  ds2465 
)
Parameters:
i2cConfigured I2C communication interface.
ds7505_i2c_addrI2C bus address of the DS7505 in mbed format.
max44009_i2c_addrI2C bus address of the MAX44009 in mbed format.
ds2465Interface to DS2465 on the Controller.

Member Function Documentation

SensorNode::State authenticatedReadSensorData ( unsigned int  userEntropy,
SensorData sensorData 
)

Read the current temperature and filter life measurements with authentication.

Parameters:
userEntropyAdditional entropy to supply to the RNG.
sensorDataMeasurements output location.
Returns:
Authentic on success.

Definition at line 227 of file SensorNode.cpp.

SensorNode::State detect ( unsigned int  userEntropy )

Detect if an authentic Sensor Node is connected.

Parameters:
userEntropyAdditional entropy to supply to the RNG.
Returns:
Authentic on success.

Definition at line 200 of file SensorNode.cpp.

double initialLux (  ) const

Get the initial lux measurement for this sensor node.

Definition at line 85 of file SensorNode.hpp.

bool readSensorData ( SensorData sensorData )

Reads the current temperature and filter life measurements.

Parameters:
sensorDataMeasurements output location.
Returns:
True on success or false if unable to communicate with a sensor.

Definition at line 154 of file SensorNode.cpp.

const MaximInterface::RomId romId (  ) const

Get the ROM ID for this sensor node.

Definition at line 82 of file SensorNode.hpp.


Friends And Related Function Documentation

bool provisionCoprocessor ( MaximInterface::DS2465 &  ds2465 ) [friend]

Represents the secure factory that will perform the initial provisioning of Controllers (DS2465) and Sensor Nodes (DS28E15) for later authentication.

Provision the DS2465 on a Controller.

Returns:
True on success.
bool provisionSensorNode ( SensorNode sensorNode,
bool  validSecret 
) [friend]

Provision the DS28E15 on a Sensor Node.

Parameters:
validSecretTrue to provision using the valid system secret or false to imitate an invalid Controller.
Returns:
True on success.

Definition at line 71 of file Factory.cpp.