Changeset 212:fab302d5b7f6
- Timestamp:
- 05/31/12 17:25:32 (13 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- src/mlx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/fsuipc.py
r209 r212 343 343 pyuipc.fs_version) 344 344 if not autoReconnection: 345 fsType = const.SIM_MSFSX \ 346 if pyuipc.fs_version == pyuipc.SIM_FSX \ 347 else const.SIM_MSFS9 348 345 349 Handler._callSafe(lambda: 346 self._connectionListener.connected( const.SIM_MSFS9,350 self._connectionListener.connected(fsType, 347 351 description)) 348 352 self._connected = True … … 531 535 from the simulator or was calculated by the adapter. The other data 532 536 are self-explanatory and expressed in their 'natural' units.""" 537 self._fsType = None 533 538 self._aircraft = None 534 539 … … 749 754 """Called when a connection has been established to the flight 750 755 simulator of the given type.""" 756 self._fsType = fsType 751 757 with self._hotkeyLock: 752 758 if self._hotkeys is not None: … … 892 898 """Start monitoring with the current aircraft model.""" 893 899 data = Simulator.normalData[:] 894 self._aircraftModel.addMonitoringData(data )900 self._aircraftModel.addMonitoringData(data, self._fsType) 895 901 896 902 self._normalRequestID = \ … … 1239 1245 self._addOffsetWithIndexMember(dest, offset, type, prefix + name) 1240 1246 1241 def addMonitoringData(self, data ):1247 def addMonitoringData(self, data, fsType): 1242 1248 """Add the model-specific monitoring data to the given array.""" 1243 1249 self._addDataWithIndexMembers(data, "_monidx_", … … 1367 1373 return True 1368 1374 1369 def addMonitoringData(self, data ):1375 def addMonitoringData(self, data, fsType): 1370 1376 """Add the model-specific monitoring data to the given array.""" 1371 super(GenericAircraftModel, self).addMonitoringData(data )1377 super(GenericAircraftModel, self).addMonitoringData(data, fsType) 1372 1378 1373 1379 self._addOffsetWithIndexMember(data, 0x0af4, "H", "_monidx_fuelWeight") … … 1464 1470 def name(self): 1465 1471 """Get the name for this aircraft model.""" 1466 return "FSUIPC/PMDG Boeing 737NG "1467 1468 def addMonitoringData(self, data ):1472 return "FSUIPC/PMDG Boeing 737NG(X)" 1473 1474 def addMonitoringData(self, data, fsType): 1469 1475 """Add the model-specific monitoring data to the given array.""" 1470 super(PMDGBoeing737NGModel, self).addMonitoringData(data) 1476 self._fsType = fsType 1477 1478 super(PMDGBoeing737NGModel, self).addMonitoringData(data, fsType) 1471 1479 1472 1480 self._addOffsetWithIndexMember(data, 0x6202, "b", "_pmdgidx_switches") 1481 1482 if fsType==const.SIM_MSFSX: 1483 print "FSX detected, adding position lights switch offset" 1484 self._addOffsetWithIndexMember(data, 0x6500, "b", 1485 "_pmdgidx_lts_positionsw") 1473 1486 1474 1487 def getAircraftState(self, aircraft, timestamp, data): … … 1481 1494 if data[self._pmdgidx_switches]&0x01==0x01: 1482 1495 state.altimeter = 1013.25 1496 1497 if self._fsType==const.SIM_MSFSX: 1498 state.strobeLightsOn = data[self._pmdgidx_lts_positionsw]==0x02 1483 1499 1484 1500 return state -
src/mlx/pyuipc_sim.py
r211 r212 25 25 SIM_FS2K2=6 26 26 SIM_FS2K4=7 27 SIM_FSX=8 27 28 28 29 #------------------------------------------------------------------------------ … … 260 261 for i in range(0, Values.HOTKEY_SIZE): 261 262 self.hotkeyTable.append([0, 0, 0, 0]) 263 264 self.pmdg_737ng_switches = 0 265 self.pmdg_737ngx_lts_positionsw = 0 262 266 263 267 def read(self, offset, type): … … 480 484 elif offset==0x3d00: # Name of the current aircraft 481 485 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 482 490 else: 483 491 print "Unhandled offset: %04x" % (offset,) … … 688 696 elif offset==0x3d00: # Name of the current aircraft 689 697 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 690 702 else: 691 703 print "Unhandled offset: %04x" % (offset,) … … 808 820 CALL_READ=1 809 821 CALL_WRITE=2 810 CALL_CLOSE=3 811 CALL_FAILOPEN=4 822 CALL_SETVERSION=3 823 CALL_CLOSE=4 824 CALL_FAILOPEN=5 812 825 CALL_QUIT = 99 813 826 … … 853 866 elif call==CALL_WRITE: 854 867 result = write(args[0]) 868 elif call==CALL_SETVERSION: 869 global fs_version 870 fs_version = args[0] 871 result = None 855 872 elif call==CALL_CLOSE: 856 873 global opened … … 899 916 """Write the given data.""" 900 917 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)) 901 922 902 923 def close(self): … … 1231 1252 lambda value: "0x%08x" % (value,), 1232 1253 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 1233 1263 def default(self, line): 1234 1264 """Handle unhandle commands.""" … … 1313 1343 return [key + "=" for key in self._valueHandlers if key.startswith(text)] 1314 1344 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 1315 1359 def do_close(self, args): 1316 1360 """Close an existing connection so that FS will fail.""" … … 1319 1363 print "Connection closed" 1320 1364 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) 1322 1366 1323 1367 def do_failopen(self, args): … … 1331 1375 1332 1376 def help_failopen(self, usage = False): 1333 """Help for the failopen c lose"""1377 """Help for the failopen command""" 1334 1378 if usage: print "Usage:", 1335 1379 print "failopen yes|no"
Note:
See TracChangeset
for help on using the changeset viewer.