def run(self): stream = self.grpc_client.stub.currentFrame(messages.Credit(api_token=self.grpc_client.api_token)) for response in stream: if response.frame > self.last_frame: self.last_frame = response.frame refresh_obs = RefreshObservation(self.grpc_client, self.need_human_ob) refresh_obs.start()
def get_action_space(self): response = self.stub.actionSpace( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("get_action_space response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\n") return response else: if self.debug: self.log_file.write("get_action_space error:can't get response." + "\n") sys.exit('Error when get action space')
def submit_reincarnation(self): response = self.stub.reincarnation( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("submit_reincarnation response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\n") return response else: if self.debug: self.log_file.write("submit_reincarnation error:can't get response." + "\n") sys.exit('Error when submit reincarnation')
def leave_room(self): response = self.stub.leaveRoom( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("leave_room response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\n") return response else: if self.debug: self.log_file.write("leave_room error:can't get response." + "\n") sys.exit('Error when leave room')
def get_system_info(self): response = self.stub.systemInfo( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("get_system_info response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "framePeriod:" + str(response.frame_period) + "\n") return response else: if self.debug: self.log_file.write("get_system_info error:can't get response." + "\n") sys.exit('Error when get system info')
def get_observations(self): response = self.stub.observation( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("get_observation response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "frame_index" + str(response.frame_index) + "\n") return response else: if self.debug: self.log_file.write("get_observation error:can't get response." + "\n") sys.exit('Error when get observation')
def get_frame_index(self): response = self.stub.currentFrame( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("get_frame_index response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "frame:" + str(response.frame_index) + "\n") return response else: if self.debug: self.log_file.write("get_system_info error:can't get response." + "\n") sys.exit('Error when get frame index')
def run(self): global frame_index, human_observation, location_observation, \ immutable_element_observation, mutable_element_observation, bodies_observation, \ asset_ownership_observation, self_asset_observation, self_status_observation,\ pointer_observation, observation_state, score_inform, kill_inform, heath_inform stream = self.grpc_client.stub.observationWithInfo(messages.Credit(api_token=self.grpc_client.api_token)) for response in stream: if response.frame_index > frame_index: frame_lock.acquire_write() frame_index = response.frame_index frame_lock.release() inform_lock.acquire_write() score_inform = response.score kill_inform = response.kills heath_inform = response.heath inform_lock.release() layered_observation = response.layered_observation """to np array""" location = to_np_array(layered_observation.location) immutable_element = to_np_array(layered_observation.immutable_element) mutable_element = to_np_array(layered_observation.mutable_element) bodies = to_np_array(layered_observation.bodies) asset_ownership = to_np_array(layered_observation.asset_ownership) self_asset = to_np_array(layered_observation.self_asset) self_status = to_np_array(layered_observation.self_status) pointer = to_np_array(layered_observation.pointer) human = None if self.need_human_ob: human = to_np_array(response.humanObservation) """write""" observation_lock.acquire_write() observation_state = response.state location_observation = location immutable_element_observation = immutable_element mutable_element_observation = mutable_element bodies_observation = bodies asset_ownership_observation = asset_ownership self_asset_observation = self_asset self_status_observation = self_status pointer_observation = pointer human_observation = human observation_lock.release()
def join_room(self, room_id, password): response = self.stub.joinRoom( messages.JoinRoomReq( credit=messages.Credit(api_token=self.api_token), password=password, room_id=room_id ) ) if response: if self.debug: self.log_file.write("join_room response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\n") return response else: if self.debug: self.log_file.write("join_room error:can't get response." + "\n") sys.exit('Error when join room')
def get_inform(self): response = self.stub.inform( messages.Credit(api_token=self.api_token) ) if response: if self.debug: self.log_file.write("get_inform response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "score:" + str(response.score) + "\t" + "kills:" + str(response.kills) + "\t" + "heath:" + str(response.heath) + "\t" + "frame_index:" + str(response.frame_index) + "\n") return response else: if self.debug: self.log_file.write("get_inform error:can't get response." + "\n") sys.exit('Error when get inform')
def create_room(self, password): start_time = int(round(time.time() * 1000)) response = self.stub.createRoom( messages.CreateRoomReq( credit=messages.Credit(api_token=self.api_token), password=password) ) if response: if self.debug: self.log_file.write("create_room response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "room_id:" + str(response.room_id) + "\n") print("create_room:" + str(int(round(time.time() * 1000)) - start_time)) return response else: if self.debug: self.log_file.write("create_room error:can't get response." + "\n") sys.exit('Error when create room')
def submit_action(self, move, swing, fire, apply): response = self.stub.action( messages.ActionReq( move=move, swing=swing, fire=fire, apply=apply, credit=messages.Credit(api_token=self.api_token) ) ) if response: if self.debug: self.log_file.write("submit_action response," + "\t" + "errCode:" + str(response.err_code) + "\t" + "msg:" + str(response.msg) + "\t" + "state:" + str(response.state) + "\t" + "frame_index" + str(response.frame_index) + "\n") return response else: if self.debug: self.log_file.write("submit_action error:can't get response." + "\n") sys.exit('Error when submit action')