Skip to content

Commit ac4b308

Browse files
committed
Add types and units for system info.
1 parent 058d491 commit ac4b308

File tree

5 files changed

+45
-23
lines changed

5 files changed

+45
-23
lines changed

myDevices/cloud/apiclient.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def getMessageBody(self, inviteCode):
6060
capacity_data = system_info.getMemoryInfo((cayennemqtt.CAPACITY,))
6161
capacity_data += system_info.getDiskInfo((cayennemqtt.CAPACITY,))
6262
for item in capacity_data:
63-
cayennemqtt.DataChannel.add(system_data, item['channel'], value=item['value'], type='memory', unit='byte')
63+
system_data.append(item)
6464
body['properties'] = {}
6565
body['properties']['pinmap'] = NativeGPIO().MAPPING
6666
if system_data:

myDevices/cloud/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ def SendSystemState(self):
266266
data = []
267267
download_speed = self.downloadSpeed.getDownloadSpeed()
268268
if download_speed:
269-
cayennemqtt.DataChannel.add(data, cayennemqtt.SYS_NET, suffix=cayennemqtt.SPEEDTEST, value=download_speed)
269+
cayennemqtt.DataChannel.add(data, cayennemqtt.SYS_NET, suffix=cayennemqtt.SPEEDTEST, value=download_speed, type='bw', unit='mbps')
270270
data += self.sensorsClient.systemData
271271
info('Send system state: {} items'.format(len(data)))
272272
self.EnqueuePacket(data)

myDevices/cloud/download_speed.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,17 @@ def Test(self):
4949
def TestDownload(self):
5050
"""Test download speed by retrieving a file"""
5151
try:
52-
a = datetime.now()
5352
info('Executing regular download test for network speed')
5453
url = self.config.get('Agent', 'DownloadSpeedTestUrl', defaultUrl)
5554
debug(url + ' ' + download_path)
55+
a = datetime.now()
5656
request.urlretrieve(url, download_path)
57-
request.urlcleanup()
5857
b = datetime.now()
58+
request.urlcleanup()
5959
c = b - a
6060
if path.exists(download_path):
6161
size = path.getsize(download_path)/mb
62-
self.downloadSpeed = size/c.total_seconds()
62+
self.downloadSpeed = size/c.total_seconds() * 8 #Convert to megabits per second
6363
remove(download_path)
6464
return True
6565
except socket_error as serr:

myDevices/system/systeminfo.py

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,20 @@ def getCpuInfo(self):
3131
3232
[{
3333
'channel': 'sys:cpu;load',
34-
'value': 12.8
34+
'value': 12.8,
35+
'type': 'cpuload',
36+
'unit': 'p'
3537
}, {
3638
'channel': 'sys:cpu;temp',
37-
'value': 50.843
39+
'value': 50.843,
40+
'type': 'temp',
41+
'unit': 'c'
3842
}]
3943
"""
4044
cpu_info = []
4145
try:
42-
cayennemqtt.DataChannel.add(cpu_info, cayennemqtt.SYS_CPU, suffix=cayennemqtt.LOAD, value=psutil.cpu_percent(1))
43-
cayennemqtt.DataChannel.add(cpu_info, cayennemqtt.SYS_CPU, suffix=cayennemqtt.TEMPERATURE, value=CpuInfo.get_cpu_temp())
46+
cayennemqtt.DataChannel.add(cpu_info, cayennemqtt.SYS_CPU, suffix=cayennemqtt.LOAD, value=psutil.cpu_percent(1), type='cpuload', unit='p')
47+
cayennemqtt.DataChannel.add(cpu_info, cayennemqtt.SYS_CPU, suffix=cayennemqtt.TEMPERATURE, value=CpuInfo.get_cpu_temp(), type='temp', unit='c')
4448
except:
4549
exception('Error getting CPU info')
4650
return cpu_info
@@ -55,19 +59,23 @@ def getMemoryInfo(self, types):
5559
5660
[{
5761
'channel': 'sys:ram;capacity',
58-
'value': 968208384
62+
'value': 968208384,
63+
'type': 'memory',
64+
'type': 'b'
5965
}, {
6066
'channel': 'sys:ram;usage',
61-
'value': 296620032
67+
'value': 296620032,
68+
'type': 'memory',
69+
'type': 'b'
6270
}]
6371
"""
6472
memory_info = []
6573
try:
6674
vmem = psutil.virtual_memory()
6775
if not types or cayennemqtt.USAGE in types:
68-
cayennemqtt.DataChannel.add(memory_info, cayennemqtt.SYS_RAM, suffix=cayennemqtt.USAGE, value=vmem.total - vmem.available)
76+
cayennemqtt.DataChannel.add(memory_info, cayennemqtt.SYS_RAM, suffix=cayennemqtt.USAGE, value=vmem.total - vmem.available, type='memory', unit='b')
6977
if not types or cayennemqtt.CAPACITY in types:
70-
cayennemqtt.DataChannel.add(memory_info, cayennemqtt.SYS_RAM, suffix=cayennemqtt.CAPACITY, value=vmem.total)
78+
cayennemqtt.DataChannel.add(memory_info, cayennemqtt.SYS_RAM, suffix=cayennemqtt.CAPACITY, value=vmem.total, type='memory', unit='b')
7179
except:
7280
exception('Error getting memory info')
7381
return memory_info
@@ -82,16 +90,24 @@ def getDiskInfo(self, types):
8290
8391
[{
8492
'channel': 'sys:storage:/;capacity',
85-
'value': 13646516224
93+
'value': 13646516224,
94+
'type': 'memory',
95+
'type': 'b'
8696
}, {
8797
'channel': 'sys:storage:/;usage',
88-
'value': 6353821696
98+
'value': 6353821696,
99+
'type': 'memory',
100+
'type': 'b'
89101
}, {
90102
'channel': 'sys:storage:/mnt/cdrom;capacity',
91-
'value': 479383552
103+
'value': 479383552,
104+
'type': 'memory',
105+
'type': 'b'
92106
}, {
93107
'channel': 'sys:storage:/mnt/cdrom;usage',
94-
'value': 0
108+
'value': 0,
109+
'type': 'memory',
110+
'type': 'b'
95111
}]
96112
"""
97113
storage_info = []
@@ -102,9 +118,9 @@ def getDiskInfo(self, types):
102118
usage = psutil.disk_usage(partition.mountpoint)
103119
if usage.total:
104120
if not types or cayennemqtt.USAGE in types:
105-
cayennemqtt.DataChannel.add(storage_info, cayennemqtt.SYS_STORAGE, partition.mountpoint, cayennemqtt.USAGE, usage.used)
121+
cayennemqtt.DataChannel.add(storage_info, cayennemqtt.SYS_STORAGE, partition.mountpoint, cayennemqtt.USAGE, usage.used, type='memory', unit='b')
106122
if not types or cayennemqtt.CAPACITY in types:
107-
cayennemqtt.DataChannel.add(storage_info, cayennemqtt.SYS_STORAGE, partition.mountpoint, cayennemqtt.CAPACITY, usage.total)
123+
cayennemqtt.DataChannel.add(storage_info, cayennemqtt.SYS_STORAGE, partition.mountpoint, cayennemqtt.CAPACITY, usage.total, type='memory', unit='b')
108124
except:
109125
pass
110126
except:

myDevices/test/systeminfo_test.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@
55

66
class SystemInfoTest(unittest.TestCase):
77
def setUp(self):
8-
# setInfo()
8+
setInfo()
99
system_info = SystemInfo()
10-
self.info = {item['channel']:item['value'] for item in system_info.getSystemInformation()}
10+
self.info = {item['channel']:item for item in system_info.getSystemInformation()}
1111
info(self.info)
1212

1313
def testSystemInfo(self):
1414
self.assertIn('sys:cpu;load', self.info)
15+
self.assertEqual(self.info['sys:cpu;load']['type'], 'cpuload')
16+
self.assertEqual(self.info['sys:cpu;load']['unit'], 'p')
1517
self.assertIn('sys:cpu;temp', self.info)
18+
self.assertEqual(self.info['sys:cpu;temp']['type'], 'temp')
19+
self.assertEqual(self.info['sys:cpu;temp']['unit'], 'c')
1620
self.assertIn('sys:ram;usage', self.info)
17-
# self.assertIn('sys:ram;capacity', self.info)
21+
self.assertEqual(self.info['sys:ram;usage']['type'], 'memory')
22+
self.assertEqual(self.info['sys:ram;usage']['unit'], 'b')
1823
self.assertIn('sys:storage:/;usage', self.info)
19-
# self.assertIn('sys:storage:/;capacity', self.info)
24+
self.assertEqual(self.info['sys:storage:/;usage']['type'], 'memory')
25+
self.assertEqual(self.info['sys:storage:/;usage']['unit'], 'b')
2026
self.assertIn('sys:net;ip', self.info)
2127
# self.assertIn('sys:net;ssid', self.info)
2228

0 commit comments

Comments
 (0)