def send_my_gps_info_15s(route_std_list): url = "/api/gps/stn" #현재 위치 if bus_id != "": pos_x, pos_y = hw.busGps(bus_id) else: pos_x, pos_y = hw.gps() params = {"pos_y": pos_y, "pos_x": pos_x} #다음 정류장 self.next_stn_id = self.route_std_list[self.stn_num_to_dest - self.std_left_cnt]['stn_id'] #Api 요청 res = requests.post(host + url, data=json.dumps(params)) stn_info_list = res.json() #자신과 가장 가까운 6개의 정류장 리스트 : stn_info_list if stn_info_list[0]['stn_id'] == next_stn_id: #가장 가까운 정류장이 다음 정류장으로 바뀜 std_left_cnt -= 1 if self.std_left_cnt <= 10 and self.std_left_cnt >= 0: #점자 버튼 안내 시작 STATE = "ARRIVING" # 점자 버튼 바꾸기 con.control(self.std_left_cnt) elif self.std_left_cnt < 0: print("system off") return self.next_stn_id = self.route_std_list[self.stn_num_to_dest - self.std_left_cnt]['stn_id'] print("next station:" + self.next_stn_id) print("next station name" + self.route_std_list[self.stn_num_to_dest - self.std_left_cnt]['stn_name']) else: print("next station name" + self.route_std_list[self.stn_num_to_dest - self.std_left_cnt]['stn_name']) pass print("15s job current time : {}".format(time.ctime()))
def switch_done_callback(channel): global STATE global USER_ID global SELECTED_STN_ID global SELECTED_STN_NAME global SELECTED_ROUTE_NAME global CURRENT_STN_NAME, CURRNET_STN_ID print("STATE:" + STATE) # 승차 정류장 설정 if STATE == "DEACTIVE": # GPS보내기 pos_x, pos_y = hw.gps() dict_data = dict() dict_data['pos_x'] = pos_x dict_data['pos_y'] = pos_y url = host + '/api/gps/stn' res = requests.post(url, data=json.dumps(dict_data)) CURRENT_STN_NAME = res.json()[0]['stn_name'] CURRENT_STN_ID = res.json()[0]['stn_id'] print("승차 할 정류소가 \'" + CURRENT_STN_NAME + "\'가 맞습니까?\n") #tts.tts_input("승차할 정류소가 "+SELECTED_STN_NAME+"가 맞습니까?") #TO DO : 승차 정류소가 맞다면 save, 아니면 pre 눌러서 분기--> 그 이후에 상태 바꾸기 STATE = "DEACTIVE_CHK" # 승차 정류장 설정 확인 elif STATE == "DEACTIVE_CHK": print("승차 정류장 설정 완료") #tts.tts_input("승차 정류장 설정이 완료되었습니다.") print("노선 번호를 입력하세요") STATE = "ROUTE_NAME" # 노선 입력 elif STATE == "ROUTE_NAME": if SELECTED_ROUTE_NAME != "": print("승차 노선이 " + SELECTED_ROUTE_NAME + "가 맞습니까?\n") #tts.tts_input("승차 노선이 "+SELECTED_ROUTE_NAME+"가 맞습니까?") STATE = "ROUTE_NAME_CHK" else: print("입력된 노선이 없습니다") # 노선 입력 확인 elif STATE == "ROUTE_NAME_CHK": print("노선 설정 완료") #tts.tts_input("노선 설정이 완료되었습니다.") STATE = "STN_NAME" print("하차역을 설정하세요") # 하차벨 예약 elif STATE == "STN_NAME": if SELECTED_STN_ID == "" or SELECTED_ROUTE_NAME == "": STATE = "STN_NAME" print("유효하지 않은 역 또는 노선") return # else: # #하차벨 예약 중 누름 # tts.tts_input("성수역") dict_data = dict() dict_data['stn_id'] = SELECTED_STN_ID dict_data['route_nm'] = SELECTED_ROUTE_NAME url = host + '/api/route-station-chk' data = requests.post(url, data=json.dumps(dict_data)) if data.status_code != 200: print("해당 역이 노선에 없습니다.") print("하차역을 설정하세요") return print("status code : " + str(data.status_code) + "\n") print("노선 " + SELECTED_ROUTE_NAME + " 과 정류장 이름 " + SELECTED_STN_ID + " 가 맞습니까? ") STATE = "STN_NAME_CHK"
def switch_done_callback(self, channel): print("done-state:" + self.state) # 승차 정류장 설정 if self.state == "DEACTIVE": # GPS보내기 pos_x, pos_y = hw.gps() dict_data = dict() dict_data['pos_x'] = pos_x dict_data['pos_y'] = pos_y url = host + '/api/gps/stn' res = requests.post(url, data=json.dumps(dict_data)) self.current_stn_name = res.json()[0]['stn_name'] self.current_stn_id = res.json()[0]['stn_id'] print("승차 할 정류소가 \'" + self.current_stn_name + "\'가 맞습니까?\n") #tts.tts_input("승차할 정류소가 "+selected_stn_name+"가 맞습니까?") # TODO : 승차 정류소가 맞다면 save, 아니면 pre 눌러서 분기--> 그 이후에 상태 바꾸기 self.state = "DEACTIVE_CHK" # 승차 정류장 설정 확인 elif self.state == "DEACTIVE_CHK": print("승차 정류장 설정 완료") #tts.tts_input("승차 정류장 설정이 완료되었습니다.") print("노선 번호를 입력하세요") self.state = "ROUTE_NAME" # 노선 입력 elif self.state == "ROUTE_NAME": if self.selected_route_name != "": print("승차 노선이 " + self.selected_route_name + "가 맞습니까?\n") #tts.tts_input("승차 노선이 "+selected_route_name+"가 맞습니까?") self.state = "ROUTE_NAME_CHK" else: print("입력된 노선이 없습니다") # 노선 입력 확인 elif self.state == "ROUTE_NAME_CHK": print("노선 설정 완료") #tts.tts_input("노선 설정이 완료되었습니다.") self.state = "STN_NAME" print("하차역을 설정하세요") bs.selectStation(self.selected_route_name, self.current_stn_name) # 하차벨 예약 elif self.state == "STN_NAME": self.selected_stn_name = bs.curr_stop self.selected_stn_id = bs.bus_stop_id[bs.ind] print("buttonClass" + str(self.selected_stn_name) + str(self.selected_stn_id)) if self.selected_stn_id == "" or self.selected_route_name == "": self.state = "STN_NAME" print("유효하지 않은 역 또는 노선") return # else: # #하차벨 예약 중 누름 # tts.tts_input("성수역") dict_data = dict() dict_data['stn_id'] = self.selected_stn_id dict_data['route_nm'] = self.selected_route_name url = host + '/api/route-station-chk' data = requests.post(url, data=json.dumps(dict_data)) if data.status_code != 200: print("해당 역이 노선에 없습니다.") print("하차역을 설정하세요") return print("status code : " + str(data.status_code) + "\n") print("노선 " + self.selected_route_name + " 과 정류장 이름 " + self.selected_stn_id + " 가 맞습니까? ") self.state = "STN_NAME_CHK" elif self.state == "STN_NAME_CHK": dict_data = dict() dict_data['stn_id'] = self.selected_stn_id dict_data['route_nm'] = self.selected_route_name dict_data['user_id'] = self.userId url = host + '/buzzer/register' data = requests.post(url, data=json.jumps(dict_data)) if data.status_code == 200: print("예약 성공!") else: print("예약 실패") return