* add C027_Support fork
Fork of C027_Support by
Diff: MDM.h
- Revision:
- 136:8dc8f48275fc
- Parent:
- 135:cbccf4052d45
- Child:
- 137:6a7a5c4f35f6
diff -r cbccf4052d45 -r 8dc8f48275fc MDM.h --- a/MDM.h Thu Jan 21 15:59:42 2016 +0000 +++ b/MDM.h Fri Jan 22 15:28:39 2016 +0000 @@ -72,21 +72,25 @@ unsigned int ci; //!< Cell ID in hexadecimal format (2 to 4 bytes in hex) CopsMode regStatus; //!< Cops mode } NetStatus; + typedef enum { CELL_LAST = 0, CELL_GNSS, CELL_LOCATE, CELL_HYBRID} CellSensType; + typedef enum { CELL_DETAILED = 1, CELL_MULTIHYP = 2} CellRespType; + #define CELL_MAX_HYP (16 + 1) + int _locRcvPos; //!< Received positions + int _locExpPos; //!< Expected positions //! Cell Locate Data typedef struct { bool validData; //!< Flag for indicating if data is valid struct tm time; //!< GPS Timestamp float longitude; //!< Estimated longitude, in degrees - float latitue; //!< Estimated latitude, in degrees + float latitude; //!< Estimated latitude, in degrees int altitutude; //!< Estimated altitude, in meters^2 int uncertainty; //!< Maximum possible error, in meters int speed; //!< Speed over ground m/s^2 int direction; //!< Course over ground in degrees int verticalAcc; //!< Vertical accuracy, in meters^2 - int sensorUsed; //!< Sensor used for last calculation + CellSensType sensor; //!< Sensor used for last calculation int svUsed; //!< number of satellite used - }CellLocData; - + }CellLocData; //! An IP v4 address typedef uint32_t IP; #define NOIP ((MDMParser::IP)0) //!< No IP address @@ -440,10 +444,10 @@ int infoFile(const char* filename); // ---------------------------------------------------------------- - // Cell Locate + // CellLocate // ---------------------------------------------------------------- - /** Configures CellLocate Http Aiding server + /** Configures CellLocate Tcp Aiding server \server_1 Host name of the primary MGA server \server_2 Host name of the secondary MGA server \token Authentication Token for MGA server access @@ -451,7 +455,7 @@ \period The number of weeks into the future the Offline data for u-blox M8 \resolution Resolution of offline data for u-blox M8: 1 everyday, 0 every other day */ - int cellLocSrvHttp(const char* token, const char* server_1 = "cell-live1.services.u-blox.com", \ + int cellLocSrvTcp(const char* token, const char* server_1 = "cell-live1.services.u-blox.com", \ const char* server_2 = "cell-live2.services.u-blox.com", int days = 14, int period = 4, int resolution = 1); /** Configures CellLocate Udp Aiding server @@ -466,28 +470,38 @@ /** Configures CellLocate URCs in the case of +ULOC operations \mode Urc configuration: 0 disabled, 1 enabled */ - int cellLocUnsolIndication(int mode); + int cellLocUnsol(int mode); /** Configures CellLocate location sensor \scanMode Network scan mode: 0 normal, 1 deep scan */ - int cellLocConfigSensor(int scanMode); + int cellLocConfig(int scanMode); /** Request CellLocate This function is not blocking, the result has to be retrived using cellLocGet - \cb Call back function called when position is available - \sensor Sensor selection: 0: use last fix and stop GNSS receiver, 1: use GNSS, 2: CellLocate, 3: Hybrid + \sensor Sensor selection: \timeout Timeout period in seconds (1 - 999) \accuracy Target accuracy in meters (1 - 999999) - \numHypotesis Maximum desired number of responses from CellLocate® (up to 16) + \type + \hypotesis Maximum desired number of responses from CellLocate® (up to 16) */ - int cellLocRequest(int sensor, int timeout, int accuracy, int numHypotesis =1); + int cellLocRequest(CellSensType sensor, int timeout, int accuracy, CellRespType type = CELL_DETAILED,int hypotesis = 1); - /** Check if a position is available + /** Get a position record \data pointer to a CellLocData struct where the location will be copied in - \return 1 if data is available, 0 otherwise + \index of the position to retrive + \return 1 if data has been retrived and copied, 0 otherwise */ - int cellLocGet(CellLocData *data); + int cellLocGetData(CellLocData *data, int index =0); + + /** Get number of position records received + \return number of position received + */ + int cellLocGetRes(); + /** Get expected number of position to be received + \return number of expected position to be received + */ + int cellLocGetExpRes(); // ---------------------------------------------------------------- // DEBUG/DUMP status to standard out (printf) @@ -724,7 +738,7 @@ DevStatus _dev; //!< collected device information NetStatus _net; //!< collected network information IP _ip; //!< assigned ip address - CellLocData _loc; //!< CellLocate data + CellLocData _loc[CELL_MAX_HYP]; //!< CellLocate data // management struture for sockets typedef struct { int handle; int timeout_ms; volatile bool connected; volatile int pending; } SockCtrl; // LISA-C has 6 TCP and 6 UDP sockets