예제 #1
0
    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()))
예제 #2
0
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"
예제 #3
0
    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