Updated System_statuses.py to include Jetson EMMC and NVMe_SSD values. NVMe is a PLACEHOLDER atm due to not being on the jetson but a local machine. Edit [1] of system_fs_emmc_nvme near top of init to actual fs location on actual run

This commit is contained in:
MatthewTaylor24
2018-01-27 15:28:15 -08:00
parent c3013e92e8
commit e1a3b4ebe2
3 changed files with 88 additions and 43 deletions

View File

@@ -1,4 +1,4 @@
float64 jetson_CPU
float64 jetson_RAM
int8 jetson_EMMC
int8 jetson_NVME_SSD
float64 jetson_EMMC
float64 jetson_NVME_SSD

View File

@@ -11,29 +11,29 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="525">
<file leaf-file-name="system_statuses_node.py" pinned="false" current-in-tab="false">
<file leaf-file-name="system_statuses_node.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2808">
<caret line="124" column="61" lean-forward="false" selection-start-line="124" selection-start-column="61" selection-end-line="124" selection-end-column="61" />
<state relative-caret-position="812">
<caret line="132" column="41" lean-forward="true" selection-start-line="132" selection-start-column="41" selection-end-line="132" selection-end-column="41" />
<folding>
<element signature="e#22#34#0" expanded="true" />
<element signature="e#4881#5172#0" expanded="false" />
<element signature="e#5529#5629#0" expanded="false" />
<element signature="e#5682#5904#0" expanded="false" />
<element signature="e#5955#6090#0" expanded="false" />
<element signature="e#6142#6633#0" expanded="false" />
<marker date="1516685047842" expanded="true" signature="4829:6633" ph="..." />
<element signature="e#5786#6077#0" expanded="false" />
<element signature="e#6434#6534#0" expanded="false" />
<element signature="e#6587#6809#0" expanded="false" />
<element signature="e#6860#6995#0" expanded="false" />
<element signature="e#7047#7538#0" expanded="false" />
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="rover_statuses.py" pinned="false" current-in-tab="true">
<file leaf-file-name="rover_statuses.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="226">
<caret line="53" column="37" lean-forward="false" selection-start-line="53" selection-start-column="37" selection-end-line="53" selection-end-column="37" />
<state relative-caret-position="370">
<caret line="59" column="36" lean-forward="false" selection-start-line="59" selection-start-column="36" selection-end-line="59" selection-end-column="36" />
<folding>
<element signature="e#22#34#0" expanded="true" />
</folding>
@@ -56,8 +56,8 @@
<option value="$PROJECT_DIR$/system_statuses.py" />
<option value="$PROJECT_DIR$/node_statuses.py" />
<option value="$PROJECT_DIR$/camera_2_updater.py" />
<option value="$PROJECT_DIR$/system_statuses_node.py" />
<option value="$PROJECT_DIR$/rover_statuses.py" />
<option value="$PROJECT_DIR$/system_statuses_node.py" />
</list>
</option>
</component>
@@ -68,10 +68,10 @@
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="978" />
<option name="y" value="470" />
<option name="width" value="1735" />
<option name="height" value="1107" />
<option name="x" value="413" />
<option name="y" value="52" />
<option name="width" value="2300" />
<option name="height" value="1525" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
@@ -88,7 +88,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<expand>
@@ -100,6 +99,7 @@
<select />
</subPane>
</pane>
<pane id="Scratches" />
<pane id="Scope" />
</panes>
</component>
@@ -137,8 +137,7 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="978" y="470" width="1735" height="1107" extended-state="0" />
<editor active="true" />
<frame x="413" y="52" width="2300" height="1525" extended-state="0" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
@@ -146,7 +145,7 @@
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.10679048" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.08041958" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="SciView" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@@ -175,18 +174,44 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2976">
<caret line="124" column="61" lean-forward="false" selection-start-line="124" selection-start-column="61" selection-end-line="124" selection-end-column="61" />
<folding>
<element signature="e#22#34#0" expanded="true" />
<element signature="e#5786#6077#0" expanded="false" />
<element signature="e#6434#6534#0" expanded="false" />
<element signature="e#6587#6809#0" expanded="false" />
<element signature="e#6860#6995#0" expanded="false" />
<element signature="e#7047#7538#0" expanded="false" />
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1248">
<caret line="53" column="37" lean-forward="false" selection-start-line="53" selection-start-column="37" selection-end-line="53" selection-end-column="37" />
<folding>
<element signature="e#22#34#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#22#34#0" expanded="true" />
<element signature="e#4881#5172#0" expanded="false" />
<element signature="e#5529#5629#0" expanded="false" />
<element signature="e#5682#5904#0" expanded="false" />
<element signature="e#5955#6090#0" expanded="false" />
<element signature="e#6142#6633#0" expanded="false" />
<marker date="1516685047842" expanded="true" signature="4829:6633" ph="..." />
<element signature="e#5786#6077#0" expanded="false" />
<element signature="e#6434#6534#0" expanded="false" />
<element signature="e#6587#6809#0" expanded="false" />
<element signature="e#6860#6995#0" expanded="false" />
<element signature="e#7047#7538#0" expanded="false" />
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
</folding>
</state>
</provider>
@@ -210,28 +235,28 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2808">
<caret line="124" column="61" lean-forward="false" selection-start-line="124" selection-start-column="61" selection-end-line="124" selection-end-column="61" />
<state relative-caret-position="370">
<caret line="59" column="36" lean-forward="false" selection-start-line="59" selection-start-column="36" selection-end-line="59" selection-end-column="36" />
<folding>
<element signature="e#22#34#0" expanded="true" />
<element signature="e#4881#5172#0" expanded="false" />
<element signature="e#5529#5629#0" expanded="false" />
<element signature="e#5682#5904#0" expanded="false" />
<element signature="e#5955#6090#0" expanded="false" />
<element signature="e#6142#6633#0" expanded="false" />
<marker date="1516685047842" expanded="true" signature="4829:6633" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="226">
<caret line="53" column="37" lean-forward="false" selection-start-line="53" selection-start-column="37" selection-end-line="53" selection-end-column="37" />
<state relative-caret-position="812">
<caret line="132" column="41" lean-forward="true" selection-start-line="132" selection-start-column="41" selection-end-line="132" selection-end-column="41" />
<folding>
<element signature="e#22#34#0" expanded="true" />
<element signature="e#5786#6077#0" expanded="false" />
<element signature="e#6434#6534#0" expanded="false" />
<element signature="e#6587#6809#0" expanded="false" />
<element signature="e#6860#6995#0" expanded="false" />
<element signature="e#7047#7538#0" expanded="false" />
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
</folding>
</state>
</provider>

View File

@@ -2,6 +2,7 @@
import rospy
import os.path
import psutil
import subprocess
from system_statuses.msg import CameraStatuses, BogieStatuses, FrSkyStatus, GPSInfo, MiscStatuses, JetsonInfo
@@ -16,6 +17,13 @@ class SystemStatuses:
'/dev/rover/camera_main_navigation'
]
# filesystem paths for EMMC [0] and NVME_SSD [1]
# -- UPDATE [1] FOR JETSON --
self.file_systems_EMMC_NVMe_SSD = [
'/',
'/dev/shm'
]
rospy.init_node('SystemStatuses')
# init all publisher functions
@@ -99,8 +107,20 @@ class SystemStatuses:
self.jetson_msg.jetson_CPU = psutil.cpu_percent()
mem = psutil.virtual_memory()
self.jetson_msg.jetson_RAM = mem.percent
self.jetson_msg.jetson_EMMC = 0
self.jetson_msg.jetson_NVME_SSD = 0
self.jetson_msg.jetson_EMMC = self.__used_percent_fs(self.file_systems_EMMC_NVMe_SSD[0])
self.jetson_msg.jetson_NVME_SSD = self.__used_percent_fs(self.file_systems_EMMC_NVMe_SSD[1])
# EMMC and NVMe_SSD used % calculation
def __used_percent_fs(self, pathname):
statvfs = os.statvfs(pathname)
# percentage :: USED:
# used amount: blocks - bfree
# used%: used_amount / (used_amount + bavail)
used_available = (statvfs.f_frsize * statvfs.f_blocks / 1024) - (statvfs.f_frsize * statvfs.f_bfree / 1024.0)
used_percent = used_available / (used_available + (statvfs.f_frsize * statvfs.f_bavail / 1024.0))
# Round 4 for 2 decimal accuracy
value = 100 * round(used_percent, 4)
return value
# Check FrSky Controller Connection Status (WIP)
def __set_frsky_controller_connection_status(self):