mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 18:21:15 +00:00
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:
@@ -1,4 +1,4 @@
|
|||||||
float64 jetson_CPU
|
float64 jetson_CPU
|
||||||
float64 jetson_RAM
|
float64 jetson_RAM
|
||||||
int8 jetson_EMMC
|
float64 jetson_EMMC
|
||||||
int8 jetson_NVME_SSD
|
float64 jetson_NVME_SSD
|
||||||
103
rover/system_statuses/scripts/.idea/workspace.xml
generated
103
rover/system_statuses/scripts/.idea/workspace.xml
generated
@@ -11,29 +11,29 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="525">
|
<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">
|
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="2808">
|
<state relative-caret-position="812">
|
||||||
<caret line="124" column="61" lean-forward="false" selection-start-line="124" selection-start-column="61" selection-end-line="124" selection-end-column="61" />
|
<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>
|
<folding>
|
||||||
<element signature="e#22#34#0" expanded="true" />
|
<element signature="e#22#34#0" expanded="true" />
|
||||||
<element signature="e#4881#5172#0" expanded="false" />
|
<element signature="e#5786#6077#0" expanded="false" />
|
||||||
<element signature="e#5529#5629#0" expanded="false" />
|
<element signature="e#6434#6534#0" expanded="false" />
|
||||||
<element signature="e#5682#5904#0" expanded="false" />
|
<element signature="e#6587#6809#0" expanded="false" />
|
||||||
<element signature="e#5955#6090#0" expanded="false" />
|
<element signature="e#6860#6995#0" expanded="false" />
|
||||||
<element signature="e#6142#6633#0" expanded="false" />
|
<element signature="e#7047#7538#0" expanded="false" />
|
||||||
<marker date="1516685047842" expanded="true" signature="4829:6633" ph="..." />
|
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</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">
|
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="226">
|
<state relative-caret-position="370">
|
||||||
<caret line="53" column="37" lean-forward="false" selection-start-line="53" selection-start-column="37" selection-end-line="53" selection-end-column="37" />
|
<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>
|
<folding>
|
||||||
<element signature="e#22#34#0" expanded="true" />
|
<element signature="e#22#34#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -56,8 +56,8 @@
|
|||||||
<option value="$PROJECT_DIR$/system_statuses.py" />
|
<option value="$PROJECT_DIR$/system_statuses.py" />
|
||||||
<option value="$PROJECT_DIR$/node_statuses.py" />
|
<option value="$PROJECT_DIR$/node_statuses.py" />
|
||||||
<option value="$PROJECT_DIR$/camera_2_updater.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$/rover_statuses.py" />
|
||||||
|
<option value="$PROJECT_DIR$/system_statuses_node.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -68,10 +68,10 @@
|
|||||||
<sorting>DEFINITION_ORDER</sorting>
|
<sorting>DEFINITION_ORDER</sorting>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectFrameBounds">
|
<component name="ProjectFrameBounds">
|
||||||
<option name="x" value="978" />
|
<option name="x" value="413" />
|
||||||
<option name="y" value="470" />
|
<option name="y" value="52" />
|
||||||
<option name="width" value="1735" />
|
<option name="width" value="2300" />
|
||||||
<option name="height" value="1107" />
|
<option name="height" value="1525" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectView">
|
<component name="ProjectView">
|
||||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||||
@@ -88,7 +88,6 @@
|
|||||||
<foldersAlwaysOnTop value="true" />
|
<foldersAlwaysOnTop value="true" />
|
||||||
</navigator>
|
</navigator>
|
||||||
<panes>
|
<panes>
|
||||||
<pane id="Scratches" />
|
|
||||||
<pane id="ProjectPane">
|
<pane id="ProjectPane">
|
||||||
<subPane>
|
<subPane>
|
||||||
<expand>
|
<expand>
|
||||||
@@ -100,6 +99,7 @@
|
|||||||
<select />
|
<select />
|
||||||
</subPane>
|
</subPane>
|
||||||
</pane>
|
</pane>
|
||||||
|
<pane id="Scratches" />
|
||||||
<pane id="Scope" />
|
<pane id="Scope" />
|
||||||
</panes>
|
</panes>
|
||||||
</component>
|
</component>
|
||||||
@@ -137,8 +137,7 @@
|
|||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="978" y="470" width="1735" height="1107" extended-state="0" />
|
<frame x="413" y="52" width="2300" height="1525" extended-state="0" />
|
||||||
<editor active="true" />
|
|
||||||
<layout>
|
<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="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" />
|
<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="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="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="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="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="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" />
|
<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 />
|
<watches-manager />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<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">
|
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<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" />
|
<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>
|
<folding>
|
||||||
<element signature="e#22#34#0" expanded="true" />
|
<element signature="e#22#34#0" expanded="true" />
|
||||||
<element signature="e#4881#5172#0" expanded="false" />
|
<element signature="e#5786#6077#0" expanded="false" />
|
||||||
<element signature="e#5529#5629#0" expanded="false" />
|
<element signature="e#6434#6534#0" expanded="false" />
|
||||||
<element signature="e#5682#5904#0" expanded="false" />
|
<element signature="e#6587#6809#0" expanded="false" />
|
||||||
<element signature="e#5955#6090#0" expanded="false" />
|
<element signature="e#6860#6995#0" expanded="false" />
|
||||||
<element signature="e#6142#6633#0" expanded="false" />
|
<element signature="e#7047#7538#0" expanded="false" />
|
||||||
<marker date="1516685047842" expanded="true" signature="4829:6633" ph="..." />
|
<marker date="1517095289793" expanded="true" signature="5734:7538" ph="..." />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -210,28 +235,28 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</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">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="2808">
|
<state relative-caret-position="370">
|
||||||
<caret line="124" column="61" lean-forward="false" selection-start-line="124" selection-start-column="61" selection-end-line="124" selection-end-column="61" />
|
<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>
|
<folding>
|
||||||
<element signature="e#22#34#0" expanded="true" />
|
<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>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</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">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="226">
|
<state relative-caret-position="812">
|
||||||
<caret line="53" column="37" lean-forward="false" selection-start-line="53" selection-start-column="37" selection-end-line="53" selection-end-column="37" />
|
<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>
|
<folding>
|
||||||
<element signature="e#22#34#0" expanded="true" />
|
<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>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import rospy
|
import rospy
|
||||||
import os.path
|
import os.path
|
||||||
import psutil
|
import psutil
|
||||||
|
import subprocess
|
||||||
from system_statuses.msg import CameraStatuses, BogieStatuses, FrSkyStatus, GPSInfo, MiscStatuses, JetsonInfo
|
from system_statuses.msg import CameraStatuses, BogieStatuses, FrSkyStatus, GPSInfo, MiscStatuses, JetsonInfo
|
||||||
|
|
||||||
|
|
||||||
@@ -16,6 +17,13 @@ class SystemStatuses:
|
|||||||
'/dev/rover/camera_main_navigation'
|
'/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')
|
rospy.init_node('SystemStatuses')
|
||||||
|
|
||||||
# init all publisher functions
|
# init all publisher functions
|
||||||
@@ -99,8 +107,20 @@ class SystemStatuses:
|
|||||||
self.jetson_msg.jetson_CPU = psutil.cpu_percent()
|
self.jetson_msg.jetson_CPU = psutil.cpu_percent()
|
||||||
mem = psutil.virtual_memory()
|
mem = psutil.virtual_memory()
|
||||||
self.jetson_msg.jetson_RAM = mem.percent
|
self.jetson_msg.jetson_RAM = mem.percent
|
||||||
self.jetson_msg.jetson_EMMC = 0
|
self.jetson_msg.jetson_EMMC = self.__used_percent_fs(self.file_systems_EMMC_NVMe_SSD[0])
|
||||||
self.jetson_msg.jetson_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)
|
# Check FrSky Controller Connection Status (WIP)
|
||||||
def __set_frsky_controller_connection_status(self):
|
def __set_frsky_controller_connection_status(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user