Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions python/conf.d/reset,json
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checke le nom du fichier

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"pal": [
"trajman",
"actuators",
"robot",
"ai"
],
"pmi": [
"trajman",
"actuators",
"robot",
"ai"
],
"beacon": [
"config",
"match"
],
"basket": [
"basket"
]
}
2 changes: 1 addition & 1 deletion python/evolutek/lib/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
hostname = socket.gethostname()

# Check if the machine is not on a Rpi (Robot, Beacon)
if hostname not in ['pal', 'pmi', 'beacon']:
if hostname not in ['pal', 'pmi', 'beacon', 'basket']:

# Set the simulation flag
make_setting('SIMULATION', True, 'evolutek', 'simulation', 'SIMULATION')
Expand Down
67 changes: 67 additions & 0 deletions python/evolutek/services/reset.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import json
from os import system
from time import sleep

from cellaserv.service import Service

from evolutek.lib.gpio.gpio_factory import GpioType, create_gpio
from evolutek.lib.gpio.gpio import Edge
from evolutek.lib.settings import ROBOT

FILEPATH = "/etc/conf.d/reset.json"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gaffe à la virgule


#TODO :
# - Get status

class Reset(Service):

def __init__(self):

self.services = []
if not self.parse_config():
raise Exception('Error during parsing')

self.reset = create_gpio(21, 'reset', dir=False, edge=Edge.RISING, type=GpioType.RPI)
self.reset.auto_refresh(refresh=0.5, callback=self._reset)
self.reset_soft = create_gpio(26, 'reset_soft', dir=True, default_value=False, type=GpioType.RPI)

super().__init__(ROBOT)

def parse_config(self):
data = None
try:
with open(FILEPATH, 'r') as config:
data = config.read()
except Exception as e:
print('[RESET] Failed to read file: %s' % str(e))
return False

config = json.loads(data)
try:
self.services = config[ROBOT]
except Exception as e:
print('[RESET] Failed to get services: %s' % str(e))
return False

return True

@Service.event('reset-%s' % ROBOT)
@Service.event('reset-all')
@Service.action()
def reset(self):
print('[RESET] Toggling software reset')
self.reset_soft.write(True)
sleep(1)
self.reset_soft.write(False)

def _reset(self):
print('[RESET] Resetting all services')
for service in self.services:
system('sudo systemctl restart %s' % service)

def main():
reset = Reset()
reset.run()

if __name__ == '__main__':
main()
37 changes: 0 additions & 37 deletions python/evolutek/utils/service_reset.py

This file was deleted.

3 changes: 1 addition & 2 deletions python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ def run(self):
'match = evolutek.services.match:main',
'robot = evolutek.services.robot:main',
'ai = evolutek.services.ai:main',
# Utils
'reset = evolutek.utils.service_reset:main',
'reset = evolutek.services.reset:main',
],
},
)