board.py
Go to the documentation of this file.
1 from enum import Enum
2 from typing import Optional
3 
4 import rospy
5 import rosservice
6 
7 from std_srvs.srv import Trigger
8 
9 
10 class BoardType(Enum):
11  LEOCORE = "leocore"
12  CORE2 = "core2"
13 
14  def __str__(self):
15  return self.value
16 
17 
18 def determine_board() -> Optional[BoardType]:
19  services = rosservice.get_service_list()
20 
21  if rospy.resolve_name("firmware/get_board_type") in services:
22  get_board_type = rospy.ServiceProxy("firmware/get_board_type", Trigger)
23  type_str = get_board_type().message
24  if type_str == str(BoardType.CORE2):
25  return BoardType.CORE2
26  if type_str == str(BoardType.LEOCORE):
27  return BoardType.LEOCORE
28 
29  # Support legacy firmware
30  if rospy.resolve_name("core2/get_firmware_version") in services:
31  return BoardType.CORE2
32 
33  return None
34 
35 
37  services = rosservice.get_service_list()
38 
39  if rospy.resolve_name("firmware/get_firmware_version") in services:
40  get_firmware_version = rospy.ServiceProxy(
41  "firmware/get_firmware_version", Trigger
42  )
43  # Support legacy firmware
44  elif rospy.resolve_name("core2/get_firmware_version") in services:
45  get_firmware_version = rospy.ServiceProxy("core2/get_firmware_version", Trigger)
46  else:
47  return "<unknown>"
48 
49  return get_firmware_version().message
leo_fw.board.BoardType.__str__
def __str__(self)
Definition: board.py:14
leo_fw.board.determine_board
Optional[BoardType] determine_board()
Definition: board.py:18
leo_fw.board.BoardType
Definition: board.py:10
leo_fw.board.check_firmware_version
str check_firmware_version()
Definition: board.py:36


leo_fw
Author(s): Błażej Sowa , Aleksander Szymański
autogenerated on Sat Jul 6 2024 03:05:11