Advanced Drone System

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille
Home Hardware Drivers HTS-Navi

Driver Hitec HTS-Navi

Envoyer Imprimer PDF
Index de l'article
Driver Hitec HTS-Navi
Captures d'écrans
API internes
Toutes les pages

Sur les radios de dernière génération, les fonctions de télémétries sont devenues monnaie courante. Des marques telles que Hitec, Spektrum, FrSky, et même Futaba avec la 18MZ s'y sont mis.

Je vous propose donc un driver Windows permettant de remonter l'intégralité de ces informations via la plateforme Sensors de Windows 7 ou  les API IOCTL de windows.

 

A ma connaissance, seul Hitec propose une interface USB avec le HTS-Navi.
Tout comme Hitec, Spektrum fourni aussi un équivalent pour iPhone, mais la connectique employée restreint sont utilisation.

Ce driver est principalement destiné aux développeurs en herbe. Il peut être utilisé dans le cadre du projet ADS, à condition toutefois d'y adjoindre les capteurs nécessaire à la mise en oeuvre d'une centrale inertielle.

La procédure d'installation est disponible ici.

 


 

 

 


Voici la définition des API internes au driver:


unit HTSNavi.HTSNavi;
interface
Uses
  Windows;
Const
  CLASS_HTSNaviDriver: TGUID = '{C694385E-F46D-43A2-9377-6E65ECE838D7}';
  HTSNaviDeviceIdentifier      = 'USB\VID_1E1A&PID_0029';
  HTSNaviDeviceIdentifier_Rev1 = HTSNaviDeviceIdentifier + '&REV_0001';
  MAX_GPS_SENSOR      = 1;
  MAX_TEMP_SENSOR     = 4;
  MAX_RPM_SENSOR      = 2;
  MAX_CURRENT_SENSOR  = 1;
  MAX_VOLTAGE_SENSOR  = 1;
  MAX_FUEL_SENSOR     = 1;
Var
  //IOCTL for Driver (subject to changes)
  IOCTL_HTSNAVI_LINK: DWORD;
  IOCTL_HTSNAVI_UPDATE: DWORD;
  IOCTL_HTSNAVI_GET_DATA: DWORD;
  IOCTL_HTSNAVI_GET_UPDATERATE: DWORD;
  IOCTL_HTSNAVI_SET_UPDATERATE: DWORD;
  IOCTL_HTSNAVI_SETUP_DEVICE: DWORD;
  IOCTL_HTSNAVI_GET_CONFIG_DESCRIPTOR: DWORD;
Type
  THTSNaviGPSData = Record
    Time: TSystemTime; //UTC
    Level: UCHAR; //%
    Longitude, Latitude: Double; //°
    Altitude: Single; //m
    Speed: Single; //km/h
    Heading: Single; //°
  End;
  THTSNaviSensorData = Record
    Connected: BOOL;
    RxVoltage: Single; //V
    GPS: Array[0..MAX_GPS_SENSOR - 1] of THTSNaviGPSData;
    RPM: Array[0..MAX_RPM_SENSOR - 1] of WORD; // 1/10
    Temp: Array[0..MAX_TEMP_SENSOR - 1] of SHORT; //°C
    FuelLevel: Array[0..MAX_FUEL_SENSOR - 1] of UCHAR; //%
    Current: Array[0..MAX_CURRENT_SENSOR - 1] of Single; //A
    Voltage: Array[0..MAX_VOLTAGE_SENSOR - 1] of Single; //V
  End;
implementation
Uses
  JwaWinIoctl;
Const
  IOCTL_HTSNAVI             = $8000;
  IOCTL_HTSNAVI_INDEX       = $800;
Initialization
  IOCTL_HTSNAVI_LINK                    := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 1, METHOD_BUFFERED, FILE_WRITE_ACCESS);
  IOCTL_HTSNAVI_UPDATE                  := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 2, METHOD_BUFFERED, FILE_READ_ACCESS);
  IOCTL_HTSNAVI_GET_DATA                := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 3, METHOD_BUFFERED, FILE_READ_ACCESS);
  IOCTL_HTSNAVI_GET_UPDATERATE          := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 4, METHOD_BUFFERED, FILE_READ_ACCESS);
  IOCTL_HTSNAVI_SET_UPDATERATE          := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 5, METHOD_BUFFERED, FILE_WRITE_ACCESS);
  IOCTL_HTSNAVI_SETUP_DEVICE            := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 6, METHOD_BUFFERED, FILE_READ_ACCESS Or FILE_WRITE_ACCESS);
  IOCTL_HTSNAVI_GET_CONFIG_DESCRIPTOR   := CTL_CODE(IOCTL_HTSNAVI, IOCTL_HTSNAVI_INDEX + 7, METHOD_BUFFERED, FILE_READ_ACCESS);
end.

Le code source est disponible sur la page des téléchargement.


 


Flash info

La version 1.3 du driver Hitec est sortie. Cette version inclue principalement la gestion des nouveaux capteur de la BlueStation, ainsi que divers correctifs.
Au passage, j'en ai profité pour mettre à jour SensorUtiliy pour la prise en compte des capteurs suivants:

  • RPM
  • Ampèremètre
  • Altimètre
  • Fuel

Vous pouvez la télécharger à l'adresse suivante:

https://sourceforge.net/projects/htsnavi/files/

shot044.jpg