Пример #1
0
def main():

    fg = FlightGear('localhost', 5400)

    # Wait five seconds for simulator to settle down
    while True:
        if fg['/sim/time/elapsed-sec'] > 5.0:
            break
        time.sleep(5.0)
        print(fg['/sim/time/elapsed-sec'])

    # Switch to external view for for 'walk around'.
    # fg.view_next()
    while True:
        try:
            roll = fg['/orientation/roll-deg']
            pitch = fg['/orientation/pitch-deg']

            roll = roll + 90
            pitch = pitch + 90

            # Reserve start 0xFF for start byte
            r_num = int(roll + 1 if roll == 0xFF else roll)
            p_num = int(pitch + 1 if pitch == 0xFF else pitch)

            p_num = 180 - p_num  # Invert Pitch

            r_lsb = chr(int(r_num & 0xFF))
            r_msb = chr(int(r_num >> 8))
            p_lsb = chr(int(p_num & 0xFF))
            p_msb = chr(int(p_num >> 8))

            ser.write(chr(0xFF))
            ser.write(r_lsb)
            ser.write(r_msb)
            ser.write(p_lsb)
            ser.write(p_msb)

            print(ord(r_lsb), ord(r_msb), ord(p_lsb), ord(p_msb))

            print(ser.readline())
        except Exception as e:
            print(str(e))

    fg.quit()
    ser.close()
Пример #2
0
def main():
    fg = FlightGear('127.0.0.1', 5500)

    # Wait five seconds for simulator to settle down
    while 1:
        if fg['/sim/time/elapsed-sec'] > 5:
            break
        time.sleep(1.0)
        
    get_node(fg, "/controls")

    """
    For each branch,
        get details of the branch.
    
    """


    fg.quit()
Пример #3
0
def main():
    fg = FlightGear('localhost', 5500)

    # Wait five seconds for simulator to settle down
    while 1:
        if fg['/sim/time/elapsed-sec'] > 5:
            break
        time.sleep(1.0)
        print(fg['/sim/time/elapsed-sec'])

    heading = fg['/orientation/heading-deg']

    # Switch to external view for for 'walk around'.
    fg.view_next()

    fg['/sim/current-view/goal-heading-offset-deg'] = 180.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 180.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 90.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 90.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 0.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 0.0)

    time.sleep(2.0)

    # Switch back to cockpit view
    fg.view_prev()

    time.sleep(2.0)

    # Flaps to take off position
    fg['/controls/flaps'] = 0.34
    #fg.wait_for_prop_eq('/surface-positions/flap-pos-norm', 0.34)

    print(fg['/sim/position/altitude-agl-ft'])

    print('Initializing aircraft at desired Lat, Lon and Alt')
    fg['/sim/aircraft'] = 'Cessna 172P'
    fg['/position/longitude-deg'] = '-70.9993'
    fg['/position/latitude-deg'] = '42.3769'
    fg['/position/altitude-ft '] = '2200'
    fg['/devices/status/keyboard/event/key '] = '112'
    fg['/devices/status/keyboard/event/pressed '] = 'true'
    time.sleep(2.0)

    print('Aircraft Simulation initialized')
    print(fg['/sim/position/altitude-ft'])
    fg.quit()
Пример #4
0
 def initialize(self):
     #os.chdir(r'C:\Program Files\FlightGear 2017.2.1\bin')
     #os.system('fgfs --telnet=5500 --aircraft=easystar --disable-sound --enable-hud --lon='+repr(lon)+'--lat='+repr(lat)+'--altitude='+repr(alt))
     print('Waiting for simulator connection...')
     self.fg = FlightGear(self.localhost, self.port)
     print('Initializing aircraft ')
     while self.fg['/sim/initialized'] < 1:
         time.sleep(0.1)
     self.fg['/sim/freeze/clock']='true'
     self.starttime = (self.fg['/sim/time/elapsed-sec'])
     #self._pausesim_()
     self.fg['/sim/reset-on-crash']= 'false'
     print('Aircraft Simulation initialized:'+repr(self.fg['/sim/position-finalized']))
     self.state_vector = self._getstatefromsimulation_()
     self.trajectory = AileronRoll(self.state_vector[3],self.state_vector[6],self.state_vector[7],self.state_vector[11])
     print(self.state_vector)
Пример #5
0
def main():
    fg = FlightGear('localhost', 5500)

    # Wait five seconds for simulator to settle down
    while 1:
        if fg['/sim/time/elapsed-sec'] > 5:
            break
        time.sleep(1.0)
        print(fg['/sim/time/elapsed-sec'])

    # parking brake on
    fg['/controls/parking-brake'] = 1

    # heading = fg['/orientation/heading-deg']

    # Switch to external view for for 'walk around'.
    fg.view_next()

    fg['/sim/current-view/goal-heading-offset-deg'] = 180.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 180.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 90.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 90.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 0.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 0.0)

    time.sleep(2.0)

    # Switch back to cockpit view
    fg.view_prev()

    time.sleep(2.0)

    # Flaps to take off position
    fg['/controls/flaps'] = 0.34
    #fg.wait_for_prop_eq('/surface-positions/flap-pos-norm', 0.34)

    fg.quit()
Пример #6
0
def main():
    fg = FlightGear('localhost', 5500)

    # Wait five seconds for simulator to settle down
    while 1:
        if fg['/sim/time/elapsed-sec'] > 5:
            break
        time.sleep(1.0)
        print fg['/sim/time/elapsed-sec']


    # parking brake on
    fg['/controls/parking-brake'] = 1

    heading = fg['/orientation/heading-deg']

    # Switch to external view for for 'walk around'.
    fg.view_next()

    fg['/sim/current-view/goal-heading-offset-deg'] = 180.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 180.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 90.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 90.0)

    fg['/sim/current-view/goal-heading-offset-deg'] = 0.0
    #fg.wait_for_prop_eq('/sim/current-view/heading-offset-deg', 0.0)

    time.sleep(2.0)

    # Switch back to cockpit view
    fg.view_prev()

    time.sleep(2.0)

    # Flaps to take off position
    fg['/controls/flaps'] = 0.34
    #fg.wait_for_prop_eq('/surface-positions/flap-pos-norm', 0.34)

    fg.quit()
Пример #7
0
        page.update_fields()
        self.update()
        self.after_id = self.after( 1000, lambda self=self: self.update_page() )

def main():
    if len(sys.argv) != 3:
        print 'Usage: %s host port' % sys.argv[0]
        sys.exit(1)

    host = sys.argv[1]
    try:
        port = int( sys.argv[2] )
    except ValueError, msg:
        print 'Error: expected a number for port'
        sys.exit(1)
    
    fgfs = None
    try:
        fgfs = FlightGear( host, port )
    except socket.error, msg:
        print 'Error connecting to flightgear:', msg[1]
        sys.exit(1)
    
    root = Tix.Tk()
    app = FGFSDemo( fgfs, root )
    app.mainloop()

if __name__ == '__main__':
    main()