Ignore:
Timestamp:
05/31/12 17:25:32 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Added support for the lights switches of the PMDG 737 NGX

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/pyuipc_sim.py

    r211 r212  
    2525SIM_FS2K2=6
    2626SIM_FS2K4=7
     27SIM_FSX=8
    2728
    2829#------------------------------------------------------------------------------
     
    260261        for i in range(0, Values.HOTKEY_SIZE):
    261262            self.hotkeyTable.append([0, 0, 0, 0])
     263
     264        self.pmdg_737ng_switches = 0
     265        self.pmdg_737ngx_lts_positionsw = 0
    262266
    263267    def read(self, offset, type):
     
    480484        elif offset==0x3d00:       # Name of the current aircraft
    481485            return self.aircraftName
     486        elif offset==0x6202:       # PMDG 737NG switches
     487            return self.pmdg_737ng_switches
     488        elif offset==0x6500:       # PMDG 737NGX lights position SW
     489            return self.pmdg_737ngx_lts_positionsw
    482490        else:
    483491            print "Unhandled offset: %04x" % (offset,)
     
    688696        elif offset==0x3d00:       # Name of the current aircraft
    689697            self.aircraftName = value
     698        elif offset==0x6202:       # PMDG 737NG switches
     699            self.pmdg_737ng_switches = value
     700        elif offset==0x6500:       # PMDG 737NGX lights position SW
     701            self.pmdg_737ngx_lts_positionsw = value
    690702        else:
    691703            print "Unhandled offset: %04x" % (offset,)
     
    808820CALL_READ=1
    809821CALL_WRITE=2
    810 CALL_CLOSE=3
    811 CALL_FAILOPEN=4
     822CALL_SETVERSION=3
     823CALL_CLOSE=4
     824CALL_FAILOPEN=5
    812825CALL_QUIT = 99
    813826
     
    853866                    elif call==CALL_WRITE:
    854867                        result = write(args[0])
     868                    elif call==CALL_SETVERSION:
     869                        global fs_version
     870                        fs_version = args[0]
     871                        result = None
    855872                    elif call==CALL_CLOSE:
    856873                        global opened
     
    899916        """Write the given data."""
    900917        return self._call(CALL_WRITE, data)
     918
     919    def setVersion(self, version):
     920        """Set the FS version to emulate."""
     921        return self._call(CALL_SETVERSION, int(version))
    901922
    902923    def close(self):
     
    12311252                                                      lambda value: "0x%08x" % (value,),
    12321253                                                      lambda word: long(word, 16))
     1254
     1255        self._valueHandlers["pmdg_737ng_switches"] = (0x6202, "b",
     1256                                                      lambda value: value,
     1257                                                      lambda word: int(word))
     1258
     1259        self._valueHandlers["pmdg_737ngx_lts_positionsw"] = (0x6500, "b",
     1260                                                             lambda value: value,
     1261                                                             lambda word: int(word))
     1262
    12331263    def default(self, line):
    12341264        """Handle unhandle commands."""
     
    13131343            return [key + "=" for key in self._valueHandlers if key.startswith(text)]
    13141344
     1345    def do_setversion(self, args):
     1346        """Set the version number to simulate"""
     1347        try:
     1348            value = int(args)
     1349            self._client.setVersion(value)
     1350            print "Emulating version %d" % (value,)
     1351        except Exception, e:
     1352            print >> sys.stderr, "Failed to set the version: " + str(e)
     1353
     1354    def help_setversion(self, usage = False):
     1355        """Help for the setversion command"""
     1356        if usage: print "Usage:",
     1357        print "setversion <number>"
     1358
    13151359    def do_close(self, args):
    13161360        """Close an existing connection so that FS will fail."""
     
    13191363            print "Connection closed"
    13201364        except Exception, e:
    1321             print >> sys.stderr, "Failed to close the connection: " + str(e)       
     1365            print >> sys.stderr, "Failed to close the connection: " + str(e)
    13221366       
    13231367    def do_failopen(self, args):
     
    13311375
    13321376    def help_failopen(self, usage = False):
    1333         """Help for the failopen close"""
     1377        """Help for the failopen command"""
    13341378        if usage: print "Usage:",
    13351379        print "failopen yes|no"
Note: See TracChangeset for help on using the changeset viewer.