def _createTestSensorData(self):
        sd = SensorData()

        sd.setName(self.DEFAULT_NAME)
        sd.setValue(self.MIN_VALUE)

        logging.info("Sensor data as string: " + str(sd))

        return sd
    def _execTestPost(self, maxTestRuns: int, useCon: bool):
        sensorData = SensorData()
        payload = DataUtil().sensorDataToJson(sensorData)

        startTime = time.time_ns()

        for seqNo in range(0, maxTestRuns):
            self.coapClient.sendPostRequest(
                resource=ResourceNameEnum.CDA_SENSOR_MSG_RESOURCE,
                enableCON=useCon,
                payload=payload)

        endTime = time.time_ns()
        elapsedMillis = (endTime - startTime) / self.NS_IN_MILLIS

        print("POST message - useCON = " + str(useCon) + " [" +
              str(maxTestRuns) + "]: " + str(elapsedMillis) + " ms")
Exemplo n.º 3
0
 def jsonToSensorData(self, jsonData):
     # process data
     print(str(jsonData))
     jsonData = jsonData.replace("\'", "\"").replace('False',
                                                     'false').replace(
                                                         'True', 'true')
     # load json data
     adDict = json.loads(jsonData)
     # create object and put json data in it
     ad = SensorData()
     # vars() get the properties dict of the object
     mvDict = vars(ad)
     # iter properties and fill it
     for key in adDict:
         if key in mvDict:
             setattr(ad, key, adDict[key])
     return ad
Exemplo n.º 4
0
    def generateTelemetry(self) -> SensorData:
        """
		Retrieve the telemetry value from method _getSystemUtil, package the row data into SensorData.
		Update latestSensorData and return it.
		TODO: change to generate SystemPerformanceData
		@return SensorData Packaged latest sensor data
		"""
        sensor_date = SensorData(sensorType=SensorData.SYS_UTIL_TYPE)
        sensor_date.setName(self.simpleName)
        sensor_date.setValue(self._getSystemUtil())
        self.latestSensorData = sensor_date
        return self.latestSensorData
        pass
 def testStoreSensorData(self):
     logging.info("Testing storeData method...")
     ret = self.redisPersistenceAdapter.connectClient()
     self.assertTrue(ret)
     testData = SensorData()
     testData.setName('TestRedisClientAdapter')
     testData.setValue(123.456)
     ret = self.redisPersistenceAdapter.storeData(
         testData, ResourceNameEnum.CDA_SENSOR_MSG_RESOURCE)
     self.assertTrue(ret)
     ret = self.redisPersistenceAdapter.disconnectClient()
     self.assertTrue(ret)
     logging.info("Test storeData method finished.\n")
     pass
Exemplo n.º 6
0
    def _execTestPublish(self, maxTestRuns: int, qos: int):
        self.assertTrue(self.mqttClient.connectClient())

        sensorData = SensorData()
        payload = DataUtil().sensorDataToJson(sensorData)

        startTime = time.time_ns()

        for seqNo in range(0, maxTestRuns):
            self.mqttClient.publishMessage(
                resource=ResourceNameEnum.CDA_SENSOR_MSG_RESOURCE,
                msg=payload,
                qos=qos)

        endTime = time.time_ns()
        elapsedMillis = (endTime - startTime) / self.NS_IN_MILLIS

        self.assertTrue(self.mqttClient.disconnectClient())

        logging.info("Publish message - QoS " + str(qos) + " [" +
                     str(maxTestRuns) + "]: " + str(elapsedMillis) + " ms")
Exemplo n.º 7
0
 def generateTelemetry(self) -> SensorData:
     # create SensorData instance
     sd = SensorData(self.sensorType)
     if self.useRandom is True:
         # generate data
         sd.setValue(random.uniform(self.minVal, self.maxVal))
     else:
         # use origin data set
         if self.dataSet.getDataEntryCount() >= self.currentIndex + 1:
             sd.setValue(self.dataSet.getDataEntry(self.currentIndex))
         # set and check index
         self.currentIndex += 1
         if self.currentIndex >= self.dataSet.getDataEntryCount() - 1:
             self.currentIndex = 0
     self.sensorData = sd
     return sd
Exemplo n.º 8
0
    def testSensorDataConversionsFromObject(self):
        logging.info("\n\n----- [JSON Conversions from SensorData] -----")

        sdName = "Foobar2 Sensor"
        sdObj1 = SensorData()
        sdObj1.setName(sdName)

        sdObj1Str = self.dataUtil.sensorDataToJson(sdObj1)
        sdObj2 = self.dataUtil.jsonToSensorData(sdObj1Str)
        sdObj2Str = self.dataUtil.sensorDataToJson(sdObj2)

        logging.info("Sample SensorData: " + str(sdObj1))
        logging.info("SensorData to JSON: " + str(sdObj1Str))
        logging.info("JSON back to SensorData: " + str(sdObj2))
        logging.info("SensorData back to JSON: " + str(sdObj2Str))

        self.assertEqual(sdName, sdObj1.getName())
        self.assertEqual(sdObj1.getName(), sdObj2.getName())
        self.assertEqual(sdObj1.getTimeStamp(), sdObj2.getTimeStamp())
        self.assertEqual(sdObj1Str, sdObj2Str)
    def _execTestPublish(self, maxTestRuns: int, qos: int):
        self.assertTrue(self.mqttClient.connectClient())

        sensorData = SensorData()
        payload = DataUtil().sensorDataToJson(sensorData)
        payloadLen = len(payload)
        startTime = time.time_ns()

        for seqNo in range(0, maxTestRuns):
            self.mqttClient.publishMessage(
                resource=ResourceNameEnum.CDA_SENSOR_MSG_RESOURCE,
                msg=payload,
                qos=qos)

        endTime = time.time_ns()
        elapsedMillis = (endTime - startTime) / self.NS_IN_MILLIS

        self.assertTrue(self.mqttClient.disconnectClient())

        logging.info( \
         "\n\tTesting Publish: QoS = %r | msgs = %r | payload size = %r | start = %r | end = %r | elapsed = %r", \
         qos, maxTestRuns, payloadLen, startTime / 1000, endTime / 1000, elapsedMillis / 1000)
Exemplo n.º 10
0
    def jsonToSensorData(self, jsonData):
        """
		Convert JSON to an SensorData instance
		
		@return SensorData
		"""

        jsonData = jsonData.replace("\'", "\"").replace('False',
                                                        'false').replace(
                                                            'True', 'true')
        logging.info('Convert JSON to an SensorData instance: ' + jsonData)
        ## Load the dictionary data for the JSON string
        sdDict = json.loads(jsonData)

        ##Create an instance of SensorData, extract the variables, then map the JSON dict into the new object via an iterative lookup of each key / value pair.
        sd = SensorData()
        mvDict = vars(sd)

        for key in sdDict:
            if key in mvDict:
                setattr(sd, key, sdDict[key])

        return sd
Exemplo n.º 11
0
	def generateTelemetry(self) -> SensorData:
		"""
		Generate the Telemetry
		
		@return SensorData
		"""
		sd = SensorData(sensorType = self.sensorType, name = self.sensorName)
		
		if self.useRandomizer:
			randomVal = random.uniform(self.minVal, self.maxVal)
			sd.setValue(randomVal)
		else:
			self.index += 1
			if self.index >= len(self.dataSet):
				self.index = 0
			data = self.dataSet[self.index]
			sd.setValue(data)
		return sd
    def _updateTelemetry(self):
        sysPerfVal = random.uniform(1.0, 50.0)
        tempVal = random.uniform(18.0, 22.0)

        sysPerfData = SystemPerformanceData()
        sysPerfData.setName("SystemPerfMsg")
        sysPerfData.setCpuUtilization(sysPerfVal)
        sysPerfData.setDiskUtilization(sysPerfVal)
        sysPerfData.setMemoryUtilization(sysPerfData)

        # Uncomment the next SLOC to trigger data message listener callback for perf data
        #self.dataMsgListener.handleSystemPerformanceMessage(sysPerfData)

        sensorData = SensorData()
        sensorData.setName(ConfigConst.TEMP_SENSOR_NAME)
        sensorData.setValue(tempVal)

        self.dataMsgListener.handleSensorMessage(sensorData)
 def generateTelemetry(self) -> SensorData:
     data = SensorData(sensorType=self._sensorType)
     data.setValue(self._readValueFromI2cBus())
     self._latestSensorData = data
     return self._latestSensorData
     pass
Exemplo n.º 14
0
    def testDefaultValues(self):
        sd = SensorData()

        self.assertEquals(sd.getName(), ConfigConst.NOT_SET)
        self.assertEquals(sd.getValue(), SensorData.DEFAULT_VAL)
Exemplo n.º 15
0
 def testStoreSensorData(self):
     sd = SensorData()
     rpa = RedisPersistenceAdapter()
     rpa.storeData(ResourceNameEnum.CDA_SENSOR_MSG_RESOURCE, sd)
Exemplo n.º 16
0
	def generateTelemetry(self) -> SensorData:
		sensorData = SensorData(sensorType = 3)
		sensorVal = self.sh.environ.temperature		
		sensorData.setValue(sensorVal)
		self.LatestSensorData = sensorData
		return self.LatestSensorData