@@ -67,86 +67,82 @@ def __init__(self, robot_configs, topic_configs, robot_name, node=None):
6767
6868 self .msg_types = du .msg_types (self .robot_configs , self .topic_configs )
6969
70- def add_update_db_service_cb (self , req ):
70+ def add_update_db_service_cb (self , request , response ):
7171 try :
72- if not isinstance (req .topic_id , int ) or req .topic_id is None :
72+ if not isinstance (request .topic_id , int ) or request .topic_id is None :
7373 self .logger .error ("topic_id empty" )
74- return mocha_core . srv . AddUpdateDB . Response ()
75- if len (req .msg_content ) == 0 :
74+ return response
75+ if len (request .msg_content ) == 0 :
7676 self .logger .error ("msg_content empty" )
77- return mocha_core . srv . AddUpdateDB . Response ()
78- if req .topic_id >= len (self .topic_list ): # Changed > to >= for proper bounds check
79- self .logger .error (f"topic_id { req .topic_id } not in topic_list (length: { len (self .topic_list )} )" )
80- return mocha_core . srv . AddUpdateDB . Response ()
77+ return response
78+ if request .topic_id >= len (self .topic_list ): # Changed > to >= for proper bounds check
79+ self .logger .error (f"topic_id { request .topic_id } not in topic_list (length: { len (self .topic_list )} )" )
80+ return response
8181
82- topic = self .topic_list [req .topic_id ]
82+ topic = self .topic_list [request .topic_id ]
8383 priority = du .get_priority_number (topic ["msg_priority" ])
84- ts = req .timestamp
84+ ts = request .timestamp
8585 # ROS2 builtin_interfaces/Time uses 'sec' and 'nanosec' fields
8686 ts = rclpy .time .Time (seconds = ts .sec , nanoseconds = ts .nanosec )
8787
8888 # Convert array to bytes if needed (ROS2 service messages use array)
89- msg_data = req .msg_content
89+ msg_data = request .msg_content
9090 if hasattr (msg_data , 'tobytes' ):
9191 msg_data = msg_data .tobytes ()
9292 elif isinstance (msg_data , (list , tuple )):
9393 msg_data = bytes (msg_data )
9494
9595 dbm = database .DBMessage (self .robot_number ,
96- req .topic_id ,
97- dtype = self .msg_types [self .robot_number ][req .topic_id ]["dtype" ],
96+ request .topic_id ,
97+ dtype = self .msg_types [self .robot_number ][request .topic_id ]["dtype" ],
9898 priority = priority ,
9999 ts = ts ,
100100 data = msg_data )
101101
102102 header = self .dbl .add_modify_data (dbm )
103- response = mocha_core .srv .AddUpdateDB .Response ()
104103 response .new_header = header
105104 return response
106105 except Exception as e :
107106 self .logger .error (f"Exception in add_update_db_service_cb: { e } " )
108- return mocha_core . srv . AddUpdateDB . Response ()
107+ return response
109108
110- def get_data_hash_db_service_cb (self , req ):
109+ def get_data_hash_db_service_cb (self , request , response ):
111110 try :
112- if req .msg_header is None or len (req .msg_header ) == 0 :
111+ if request .msg_header is None or len (request .msg_header ) == 0 :
113112 self .logger .error ("msg_header empty" )
114- return mocha_core . srv . GetDataHeaderDB . Response ()
113+ return response
115114
116115 # Convert array to bytes if needed (ROS2 service messages use array)
117- header_data = req .msg_header
116+ header_data = request .msg_header
118117 if hasattr (header_data , 'tobytes' ):
119118 header_data = header_data .tobytes ()
120119 elif isinstance (header_data , (list , tuple )):
121120 header_data = bytes (header_data )
122121
123122 dbm = self .dbl .find_header (header_data )
124123
125- response = mocha_core .srv .GetDataHeaderDB .Response ()
126124 response .robot_id = dbm .robot_id
127125 response .topic_id = dbm .topic_id
128126 response .timestamp = dbm .ts
129127 response .msg_content = dbm .data
130128 return response
131129 except Exception as e :
132130 self .logger .error (f"Exception in get_data_hash_db_service_cb: { e } " )
133- return mocha_core . srv . GetDataHeaderDB . Response ()
131+ return response
134132
135- def select_db_service_cb (self , req ):
133+ def select_db_service_cb (self , request , response ):
136134 try :
137135 # TODO Implement filtering
138- response = mocha_core .srv .SelectDB .Response ()
139136
140137 # Note: robot_id and topic_id are uint8 in ROS2, so they can't be None
141138 # We can add range validation if needed, but for now just proceed
142139
143- list_headers = self .dbl .get_header_list (req .robot_id )
140+ list_headers = self .dbl .get_header_list (request .robot_id )
144141
145142 response .headers = du .serialize_headers (list_headers )
146143 return response
147144 except Exception as e :
148145 self .logger .error (f"Exception in select_db_service_cb: { e } " )
149- response = mocha_core .srv .SelectDB .Response ()
150146 response .headers = b''
151147 return response
152148
0 commit comments