Example #1
0
 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()
Example #2
0
 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')
Example #3
0
 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')
Example #4
0
 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')
Example #5
0
 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')
Example #6
0
 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')
Example #7
0
 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')
Example #8
0
    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()
Example #9
0
 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')
Example #10
0
 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')
Example #11
0
 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')
Example #12
0
 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')