Record fill-ups for all your cars and monitor your car’s efficiency.
Need to track business mileage? Just start auto trip and we will track all your trips in the background whenever you are on the move.
Don’t lose sight of your maintenance and services. Log your services and we will remind you when its due.
Know your vehicle's running costs and plan for your expenses.
Sign into the cloud and get easy access to all your data from anywhere and any device.
Run your reports or schedule them weekly or monthly to know more about your fill-ups , mileage and expenses.
void loop() if (digitalRead(2) == LOW) Serial.println("GEAR_TOGGLE"); delay(200);
while True: line = ser.readline().decode().strip() if line == "GEAR_TOGGLE": # Toggle landing gear (offset 0x0BEC, byte 0 = 1 for up, 0 for down) fs.write(0x0BEC, b'\x01') # Toggle event print("Gear toggled") time.sleep(0.1) Batch Reading for Performance Reading offsets one by one is slow. Use fsuipc.read_multiple() :
import fsuipc import struct fs = fsuipc.connect() altitude_meters = 3048.0 data = struct.pack('f', altitude_meters) fs.write(0x07D0, data) Enable autopilot master (1 = on, 2 bytes) fs.write(0x07DC, b'\x01\x00') fsuipc python
try: while True: # Read multiple offsets at once (efficient) lat_raw = struct.unpack('i', fsuipc.read(0x0574, 4))[0] lon_raw = struct.unpack('i', fsuipc.read(0x0578, 4))[0] alt_ft_raw = struct.unpack('i', fsuipc.read(0x0570, 4))[0] # altitude in feet ias_raw = struct.unpack('H', fsuipc.read(0x0B70, 2))[0] # *128 vs_raw = struct.unpack('h', fsuipc.read(0x07C8, 2))[0] # vertical speed * 60.48 lat = lat_raw / 1e7 lon = lon_raw / 1e7 alt_ft = alt_ft_raw ias_kts = ias_raw / 128.0 vs_fpm = vs_raw * 60.48 # convert to feet per minute writer.writerow([time.time(), lat, lon, alt_ft, ias_kts, vs_fpm]) csvfile.flush() time.sleep(1) except KeyboardInterrupt: print("Logging stopped.") fs.close() Python can read your desired heading from a joystick button or keyboard and command the autopilot.
fs.close() Writing requires a licensed copy of FSUIPC (to prevent abuse). Here’s how to set the autopilot altitude: void loop() if (digitalRead(2) == LOW) Serial
A complete offset list is available in the FSUIPC for Programmers.pdf provided with FSUIPC. import fsuipc import struct fs = fsuipc.connect() IAS offset 0x0B70 (16-bit unsigned int) ias_raw = fsuipc.read(0x0B70, 2) ias_knots = ias_raw[0] / 128.0 print(f"Indicated Airspeed: ias_knots:.1f knots") Lat/Lon (4-byte signed ints) lat_raw = struct.unpack('i', fsuipc.read(0x0574, 4))[0] lon_raw = struct.unpack('i', fsuipc.read(0x0578, 4))[0] latitude = lat_raw / 1e7 longitude = lon_raw / 1e7 print(f"Position: latitude:.5f, longitude:.5f")
Run this while your flight simulator is running. If no errors appear, you’re ready. FSUIPC communicates via offsets – memory addresses within the simulator process. Each offset corresponds to a specific variable. Here’s how to set the autopilot altitude: A
pip install pyfsuipc Note : Some projects use pyuipc or direct ctypes calls. We’ll use pyfsuipc for its simplicity. Create a quick test script to confirm connectivity:
void loop() if (digitalRead(2) == LOW) Serial.println("GEAR_TOGGLE"); delay(200);
while True: line = ser.readline().decode().strip() if line == "GEAR_TOGGLE": # Toggle landing gear (offset 0x0BEC, byte 0 = 1 for up, 0 for down) fs.write(0x0BEC, b'\x01') # Toggle event print("Gear toggled") time.sleep(0.1) Batch Reading for Performance Reading offsets one by one is slow. Use fsuipc.read_multiple() :
import fsuipc import struct fs = fsuipc.connect() altitude_meters = 3048.0 data = struct.pack('f', altitude_meters) fs.write(0x07D0, data) Enable autopilot master (1 = on, 2 bytes) fs.write(0x07DC, b'\x01\x00')
try: while True: # Read multiple offsets at once (efficient) lat_raw = struct.unpack('i', fsuipc.read(0x0574, 4))[0] lon_raw = struct.unpack('i', fsuipc.read(0x0578, 4))[0] alt_ft_raw = struct.unpack('i', fsuipc.read(0x0570, 4))[0] # altitude in feet ias_raw = struct.unpack('H', fsuipc.read(0x0B70, 2))[0] # *128 vs_raw = struct.unpack('h', fsuipc.read(0x07C8, 2))[0] # vertical speed * 60.48 lat = lat_raw / 1e7 lon = lon_raw / 1e7 alt_ft = alt_ft_raw ias_kts = ias_raw / 128.0 vs_fpm = vs_raw * 60.48 # convert to feet per minute writer.writerow([time.time(), lat, lon, alt_ft, ias_kts, vs_fpm]) csvfile.flush() time.sleep(1) except KeyboardInterrupt: print("Logging stopped.") fs.close() Python can read your desired heading from a joystick button or keyboard and command the autopilot.
fs.close() Writing requires a licensed copy of FSUIPC (to prevent abuse). Here’s how to set the autopilot altitude:
A complete offset list is available in the FSUIPC for Programmers.pdf provided with FSUIPC. import fsuipc import struct fs = fsuipc.connect() IAS offset 0x0B70 (16-bit unsigned int) ias_raw = fsuipc.read(0x0B70, 2) ias_knots = ias_raw[0] / 128.0 print(f"Indicated Airspeed: ias_knots:.1f knots") Lat/Lon (4-byte signed ints) lat_raw = struct.unpack('i', fsuipc.read(0x0574, 4))[0] lon_raw = struct.unpack('i', fsuipc.read(0x0578, 4))[0] latitude = lat_raw / 1e7 longitude = lon_raw / 1e7 print(f"Position: latitude:.5f, longitude:.5f")
Run this while your flight simulator is running. If no errors appear, you’re ready. FSUIPC communicates via offsets – memory addresses within the simulator process. Each offset corresponds to a specific variable.
pip install pyfsuipc Note : Some projects use pyuipc or direct ctypes calls. We’ll use pyfsuipc for its simplicity. Create a quick test script to confirm connectivity:
Simply Fleet is a simple and affordable software to help you track, monitor and analyse your fleet’s operations.