├── FMXXXX_Parser ├── AVLObjects.class.php ├── GPSElement.class.php ├── IO.class.php ├── IOElement.class.php ├── Parser.class.php └── constants.php ├── README.md ├── doc └── html │ ├── _a_v_l_objects_8class_8php.html │ ├── _g_p_s_element_8class_8php.html │ ├── _i_o_8class_8php.html │ ├── _i_o_element_8class_8php.html │ ├── _parser_8class_8php.html │ ├── annotated.html │ ├── bc_s.png │ ├── class_a_v_l_data.html │ ├── class_a_v_l_data_array.html │ ├── class_a_v_l_packet.html │ ├── class_g_p_s_element.html │ ├── class_i_o.html │ ├── class_i_o_element.html │ ├── class_parser.html │ ├── classes.html │ ├── closed.png │ ├── constants_8php.html │ ├── doxygen.css │ ├── doxygen.png │ ├── files.html │ ├── ftv2blank.png │ ├── ftv2doc.png │ ├── ftv2folderclosed.png │ ├── ftv2folderopen.png │ ├── ftv2lastnode.png │ ├── ftv2link.png │ ├── ftv2mlastnode.png │ ├── ftv2mnode.png │ ├── ftv2node.png │ ├── ftv2plastnode.png │ ├── ftv2pnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── functions.html │ ├── functions_func.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_enum.html │ ├── index.html │ ├── installdox │ ├── jquery.js │ ├── nav_f.png │ ├── nav_h.png │ ├── navtree.css │ ├── navtree.js │ ├── open.png │ ├── pages.html │ ├── resize.js │ ├── search │ ├── all_24.html │ ├── all_5f.html │ ├── all_61.html │ ├── all_63.html │ ├── all_67.html │ ├── all_69.html │ ├── all_6c.html │ ├── all_70.html │ ├── all_73.html │ ├── classes_61.html │ ├── classes_67.html │ ├── classes_69.html │ ├── classes_70.html │ ├── close.png │ ├── enums_6c.html │ ├── files_61.html │ ├── files_63.html │ ├── files_67.html │ ├── files_69.html │ ├── files_70.html │ ├── functions_5f.html │ ├── functions_61.html │ ├── functions_67.html │ ├── functions_69.html │ ├── functions_70.html │ ├── functions_73.html │ ├── mag_sel.png │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── variables_24.html │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ └── todo.html └── test.php /FMXXXX_Parser/AVLObjects.class.php: -------------------------------------------------------------------------------- 1 | avl_data_array = new AVLDataArray(); 52 | } 53 | 54 | /** 55 | * Get the data length value converted in integer. 56 | * 57 | * @return int Return the data length value converted in integer 58 | */ 59 | public function getDataLength() 60 | { 61 | return hexdec($this->_data_length); 62 | } 63 | 64 | /** 65 | * Setter for the data_length attribute. 66 | * Note: The value must be in Hexadecimal. 67 | * 68 | * @param string $val The data length value in Hex base (16) 69 | */ 70 | public function setDataLength($val) 71 | { 72 | $this->_data_length = $val; 73 | } 74 | 75 | /** 76 | * Get the CRC field converted in integer. 77 | * 78 | * @return int Return the CRC field converted in integer 79 | */ 80 | public function getCRC() 81 | { 82 | return hexdec($this->_crc); 83 | } 84 | 85 | /** 86 | * Setter for the CRC attribute. 87 | * Note: The value must be in Hexadecimal. 88 | * 89 | * @param string $val The CRC value in Hex base (16) 90 | */ 91 | public function setCRC($val) 92 | { 93 | $this->_crc = $val; 94 | } 95 | } 96 | 97 | /** 98 | * AVL Data Array for Teltonika's FMXXXX GPS device. 99 | * 100 | * @author Thierno Ib. Barry 101 | * @date 26 Feb 2011 102 | * @see Teltonika FMXXXX Protocols 103 | * @license GNU/LGPL v2.1 104 | */ 105 | 106 | /** 107 | * @todo Add getters to get Hex values (getHexVaribleName)\n 108 | * Example: getHexDataLength() 109 | */ 110 | class AVLDataArray 111 | { 112 | /** 113 | * Codec ID 114 | */ 115 | private $_codec_id; 116 | 117 | /** 118 | * Number of Data in the AVL Data Array 119 | */ 120 | private $_nb_data; 121 | 122 | /** 123 | * Array of AVLData 124 | */ 125 | private $_avl_datas; 126 | 127 | /** 128 | * Constructor. 129 | * 130 | * @param array $args Constructor arguments 131 | */ 132 | public function __construct($args = array()) 133 | { 134 | $this->_avl_datas = array(); 135 | } 136 | 137 | /** 138 | * Get the codec id value converted in integer. 139 | * 140 | * @return int Return the codec id value converted in integer 141 | */ 142 | public function getCodecID() 143 | { 144 | return hexdec($this->_codec_id); 145 | } 146 | 147 | /** 148 | * Get the number of data in the AVLDataArray converted in integer. 149 | * 150 | * @return int Return the number data value converted in integer 151 | */ 152 | public function getNbData() 153 | { 154 | return hexdec($this->_nb_data); 155 | } 156 | 157 | /** 158 | * Get the array of AVLData. 159 | * 160 | * @return array Return an array of AVLData 161 | */ 162 | public function getAVLDatas() 163 | { 164 | return $this->_avl_datas; 165 | } 166 | 167 | /** 168 | * Setter for the codec id attribute. 169 | * Note: The value must be in Hexadecimal. 170 | * 171 | * @param string $val The Codec ID value in Hex base (16) 172 | */ 173 | public function setCodecID($val) 174 | { 175 | $this->_codec_id = $val; 176 | } 177 | 178 | /** 179 | * Setter for the number of data. 180 | * Note: The value must be in Hexadecimal. 181 | * 182 | * @param string $val The number of data value in Hex base (16) 183 | */ 184 | public function setNbData($val) 185 | { 186 | $this->_nb_data = $val; 187 | } 188 | 189 | /** 190 | * Add a new AVLData into the array of AVLs Data. 191 | * 192 | * @param AVLData $avl_data The new AVL Data which will add into 193 | */ 194 | public function addAVLData($avl_data) 195 | { 196 | $this->_avl_datas[] = $avl_data; 197 | } 198 | } 199 | 200 | /** 201 | * AVL Data for Teltonika's FMXXXX GPS device. 202 | * 203 | * @author Thierno Ib. Barry 204 | * @date 26 Feb 2011 205 | * @see Teltonika FMXXXX Protocols 206 | * @license GNU/LGPL v2.1 207 | */ 208 | 209 | /** 210 | * @todo Add getters to get Hex values (getHexVaribleName). 211 | * Example: getHexTimestamp() 212 | */ 213 | class AVLData 214 | { 215 | /** 216 | * Timestamp - Difference, in milliseconds, 217 | * between the current time and midnight, January 1, 1970 UTC 218 | */ 219 | private $_timestamp; 220 | 221 | /** 222 | * Priority of the AVL Data. 223 | * It must be an Hex value between [0x00 - 0x03] 224 | */ 225 | private $_priority; 226 | 227 | /** 228 | * Priorities name. It's a array as array(priority => priority_name) 229 | */ 230 | private $_str_priority; 231 | 232 | /** 233 | * GPSElement container. 234 | * 235 | * @access public 236 | */ 237 | public $gps_element; 238 | 239 | /** 240 | * IOElement container. 241 | * 242 | * @access public 243 | */ 244 | public $io_element; 245 | 246 | /** 247 | * Constructor. 248 | * 249 | * @param array $args Constructor arguments 250 | */ 251 | public function __construct($args = array()) 252 | { 253 | $this->gps_element = new GPSElement(); 254 | $this->io_element = new IOElement(); 255 | $this->_str_priority = array( 256 | 0 => 'Low', 257 | 1 => 'High', 258 | 2 => 'Panic', 259 | 3 => 'Security' 260 | ); 261 | } 262 | 263 | /** 264 | * Get timestamp value converted in integer. 265 | * 266 | * @return int Return the timestamp value converted in integer 267 | */ 268 | public function getTimestamp() 269 | { 270 | return hexdec($this->_timestamp); 271 | } 272 | 273 | /** 274 | * Get the timestamp value converted in string by php date function. 275 | * 276 | * @see Php manual for dateformat. 277 | * 278 | * @param string $date_format A valid php dateformat 279 | * @return string Return the latitude value converted in valid date string 280 | */ 281 | public function getStrTimestamp($date_format = '') 282 | { 283 | /** 284 | * @todo Find out a valid dateformat to put in default. 285 | * @todo Return timestamp in accordance to the given date format. 286 | */ 287 | } 288 | 289 | /** 290 | * Get the priority value converted in integer. 291 | * 292 | * @return int Return the priority value converted in integer 293 | */ 294 | public function getPriority() 295 | { 296 | return hexdec($this->_priority); 297 | } 298 | 299 | /** 300 | * Setter for the timestamp attribute. 301 | * Note: The value must be in Hexadecimal. 302 | * 303 | * @param string $val The timestamp value in Hex base (16) 304 | */ 305 | public function setTimestamp($val) 306 | { 307 | $this->_timestamp = $val; 308 | } 309 | 310 | /** 311 | * Setter for the priority attribute. 312 | * Note: The value must be in Hexadecimal. 313 | * 314 | * @param string $val The priority value in Hex base (16) 315 | */ 316 | public function setPriority($val) 317 | { 318 | $this->_priority = $val; 319 | 320 | } 321 | 322 | /** 323 | * Get the priority name. 324 | * 325 | * @return string Return the priority short name: Low, High, Panic or Security. 326 | */ 327 | public function getStrPriority() 328 | { 329 | return $this->_str_priority[$this->getPriority()]; 330 | } 331 | } 332 | ?> -------------------------------------------------------------------------------- /FMXXXX_Parser/GPSElement.class.php: -------------------------------------------------------------------------------- 1 | _longitude, 16, 2); 65 | } 66 | 67 | /** 68 | * Get altitude value converted in integer 69 | * 70 | * @return int Return the altitude value converted in integer 71 | */ 72 | public function getAltitude() 73 | { 74 | return hexdec($this->_altitude); 75 | } 76 | 77 | /** 78 | * Get angle value converted in integer 79 | * 80 | * @return int Return the angle value converted in integer 81 | */ 82 | public function getAngle() 83 | { 84 | return hexdec($this->_angle); 85 | } 86 | 87 | /** 88 | * Get satellites number converted in integer 89 | * 90 | * @return int Return the satellites number converted in integer 91 | */ 92 | public function getSatellites() 93 | { 94 | return hexdec($this->_satellites); 95 | } 96 | 97 | /** 98 | * Get speed value converted in integer (kmph or mph) 99 | * 100 | * @param string $unit The unit in which the speed have to be converted 101 | * The unit must be: 102 | * + kpmh -> Km/h 103 | * + mph -> Milles/h 104 | * @return int Return the speed value converted in integer 105 | */ 106 | public function getSpeed($unit = 'kmph') 107 | { 108 | /** 109 | * @todo Conversion in Km/h or Milles/h 110 | */ 111 | $speed = hexdec($this->_speed); 112 | switch ($unit) { 113 | case 'kpmh': 114 | 115 | break; 116 | case 'mph': 117 | 118 | break; 119 | } 120 | return $speed; 121 | } 122 | 123 | /** 124 | * Setter for latitude attribute. 125 | * Note: The value must be in Hexadecimal. 126 | * 127 | * @param string $val The latitude value in Hex base (16) 128 | */ 129 | public function setLatitude($val) 130 | { 131 | $this->_latitude = $val; 132 | } 133 | 134 | /** 135 | * Setter for longitude attribute. 136 | * Note: The value must be in Hexadecimal. 137 | * 138 | * @param string $val The longitude value in Hex base (16) 139 | */ 140 | public function setLongitude($val) 141 | { 142 | $this->_longitude = $val; 143 | } 144 | 145 | /** 146 | * Setter for altitude attribute. 147 | * Note: The value must be in Hexadecimal. 148 | * 149 | * @param string $val The altitude value in Hex base (16) 150 | */ 151 | public function setAltitude($val) 152 | { 153 | $this->_altitude = $val; 154 | } 155 | 156 | /** 157 | * Setter for angle attribute. 158 | * Note: The value must be in Hexadecimal. 159 | * 160 | * @param string $val The angle value in Hex base (16) 161 | */ 162 | public function setAngle($val) 163 | { 164 | $this->_angle = $val; 165 | } 166 | 167 | /** 168 | * Setter for satellites attribute. 169 | * Note: The value must be in Hexadecimal. 170 | * 171 | * @param string $val The satellites value in Hex base (16) 172 | */ 173 | public function setSatellites($val) 174 | { 175 | $this->_satellites = $val; 176 | } 177 | 178 | /** 179 | * Setter for speed attribute. 180 | * Note: The value must be in Hexadecimal. 181 | * 182 | * @param string $val The speed value in Hex base (16) 183 | */ 184 | public function setSpeed($val) 185 | { 186 | $this->_speed = $val; 187 | } 188 | 189 | /** 190 | * Check if the GPSElement is valid or not. 191 | * Note: The GPSElement is valid only if the speed is different of 0. 192 | * 193 | * @see FMXXXX protocols for more informations 194 | * 195 | * @return boolean Return true if the GPS Element is valid and false if not. 196 | */ 197 | public function isValid() 198 | { 199 | return $this->getSpeed() != 0; 200 | } 201 | } 202 | ?> -------------------------------------------------------------------------------- /FMXXXX_Parser/IO.class.php: -------------------------------------------------------------------------------- 1 | IO Value) 26 | */ 27 | private $_events; 28 | 29 | /** 30 | * Constructor 31 | * 32 | * @param array $nb_io The number of a IO's type 33 | */ 34 | public function __construct($nb_io = null) 35 | { 36 | $this->_nb_io = $nb_io; 37 | $this->_events = array(); 38 | } 39 | 40 | /** 41 | * Get the number of IO value converted in integer. 42 | * 43 | * @return int Return the number of IO converted in integer 44 | */ 45 | public function getNbIO() 46 | { 47 | return hexdec($this->_nb_io); 48 | } 49 | 50 | /** 51 | * Get the IO's events each converted in integer. 52 | * 53 | * @see FMXXXX protocols for more informations about the IO's formation 54 | * 55 | * @return array Return IO's events array as array(io_id => io_value) 56 | */ 57 | public function getEvents() 58 | { 59 | $ret = array(); 60 | foreach ($this->_events as $id => $value) { 61 | $ret[hexdec($id)] = hexdec($value); 62 | } 63 | return $ret; 64 | } 65 | 66 | /** 67 | * Add a new event into events array. 68 | * Note: Both of the parameters must be an Hexadecimal value 69 | * 70 | * @param string $id The IO ID which generated the event. 71 | * @param string $val The IO value of the generated event. 72 | */ 73 | public function addEvent($id, $val) 74 | { 75 | $this->_events[$id] = $val; 76 | } 77 | 78 | /** 79 | * Setter for the number of IO. 80 | * Note: The value must be in Hexadecimal. 81 | * 82 | * @param string $val The number of IO value in Hex base (16) 83 | */ 84 | public function setNbIO($val) 85 | { 86 | $this->_nb_io = $val; 87 | } 88 | } 89 | ?> -------------------------------------------------------------------------------- /FMXXXX_Parser/IOElement.class.php: -------------------------------------------------------------------------------- 1 | io) 31 | * 32 | * @see __constructor 33 | */ 34 | private $_io_array; 35 | 36 | /** 37 | * Constructor 38 | * 39 | * @param array $args Constructor arguments 40 | */ 41 | public function __construct($args = array()) 42 | { 43 | $this->_io_array = array( 44 | 1 => null, # IO of 1 byte 45 | 2 => null, # IO of 2 bytes 46 | 4 => null, # IO of 4 bytes 47 | 8 => null # IO of 8 bytes 48 | ); 49 | } 50 | 51 | /** 52 | * Get the Event IO ID value converted in integer. 53 | * 54 | * @return int Return the Event IO ID converted in integer 55 | */ 56 | public function getEventIOID() 57 | { 58 | return hexdec($this->_event_io_id); 59 | } 60 | 61 | /** 62 | * Get the number of IO value converted in integer. 63 | * Total number of properties coming with record. 64 | * 65 | * @return int Return the number total of IO converted in integer 66 | */ 67 | public function getTotalIO() 68 | { 69 | return hexdec($this->_nb_total_io); 70 | } 71 | 72 | /** 73 | * Setter for the Event IO ID. 74 | * Note: The value must be in Hexadecimal. 75 | * 76 | * @param string $val The Event IO ID value in Hex base (16) 77 | */ 78 | public function setEventIOID($val) 79 | { 80 | $this->_event_io_id = $val; 81 | } 82 | 83 | /** 84 | * Setter for the number of IO. 85 | * Note: The value must be in Hexadecimal. 86 | * 87 | * @param string $val The number of IO value in Hex base (16) 88 | */ 89 | public function setTotalIO($val) 90 | { 91 | $this->_nb_total_io = $val; 92 | } 93 | 94 | /** 95 | * Get IO. 96 | * 97 | * @param int $size The length (type) of IO's property which is wanted. 98 | * @return IO Return wanted IO or false if the given size doesn't exist 99 | */ 100 | public function getIO($size) 101 | { 102 | if (array_key_exists($size, count($this->_io_array))) { 103 | return $this->_io_array[$size]; 104 | } 105 | return false; 106 | } 107 | 108 | /** 109 | * Get all IOs. 110 | * 111 | * @return array Return an array of all IOs 112 | */ 113 | public function getAllIO() 114 | { 115 | return $this->_io_array; 116 | } 117 | 118 | /** 119 | * Setter for a type of IO. 120 | * Note: Both of the parameters must be an Hexadecimal value 121 | * 122 | * @param int $size The length (type) of IO's property which is wanted to add. 123 | * @param IO $io IO object 124 | */ 125 | public function setIO($size, $io) 126 | { 127 | if (array_key_exists($size, $this->_io_array)) { 128 | $this->_io_array[$size] = $io; 129 | } 130 | } 131 | 132 | /** 133 | * Check if data is acquired on event or not 134 | * 135 | * @return boolean Return true if data is acquired on event and false if not 136 | */ 137 | public function isOnEvent() 138 | { 139 | return $this->getEventIOID() != 0; 140 | } 141 | } 142 | ?> -------------------------------------------------------------------------------- /FMXXXX_Parser/Parser.class.php: -------------------------------------------------------------------------------- 1 | _raw_data = str_replace(array(" ", "\n"), array("",""), $raw_data); 65 | $this->_is_binary = $is_binary; 66 | if ($this->_is_binary) { 67 | $this->_offset = 8; 68 | } else { 69 | $this->_offset = 2; 70 | } 71 | $this->_avl_packet = new AVLPacket(); 72 | $this->_decapsulate(); 73 | } 74 | 75 | /** 76 | * Decapsulate a AVLPacket from TCP header, data length and CRC 77 | * Notice that, they are no spaces among bytes. 78 | */ 79 | private function _decapsulate($data = '') 80 | { 81 | if (empty($data)) { 82 | $data = $this->_raw_data; 83 | } else { 84 | $data = str_replace(array(" ", "\n"), array("",""), $data); 85 | } 86 | $start = $this->_offset * LENGTH_FOUR_ZEROS; 87 | $length = $this->_offset * LENGTH_DATA_LENGTH; 88 | $this->_avl_packet->setDataLength(substr($data, $start, $length)); 89 | 90 | $start += $length; 91 | $length = $this->_offset * $this->_avl_packet->getDataLength(); 92 | $this->_avl_packet->data = substr($data, $start, $length); 93 | 94 | $start += $length; 95 | $length = $this->_offset * LENGTH_CRC; 96 | $this->_avl_packet->setCRC(substr($data, $start, $length)); 97 | } 98 | 99 | /** 100 | * Parse a decapsulated data 101 | * 102 | * @param string $data The raw data which will parse. 103 | * @return AVLDataArray 104 | */ 105 | public function parse($data = '') 106 | { 107 | if (empty($data)) { 108 | $data = $this->_avl_packet->data; 109 | } else { 110 | $data = str_replace(array(" ", "\n"), array("",""), $data); 111 | } 112 | // Parsing of codec id 113 | $start = 0; 114 | $length = $this->_offset * LENGTH_CODEC_ID; 115 | $this->_avl_packet->avl_data_array->setCodecID(substr($data, $start, $length)); 116 | 117 | // Parsing of number of data 118 | $start += $length; 119 | $length = $this->_offset * LENGTH_NUMBER_OF_DATA; 120 | $this->_avl_packet->avl_data_array->setNbData(substr($data, $start, $length)); 121 | 122 | // Parsing of AVL Data Array. It consist of AVL Data objects 123 | for ($i = 0; $i < $this->_avl_packet->avl_data_array->getNbData(); $i++) { 124 | $avl_data = new AVLData(); 125 | 126 | // Parsing of Timestamp 127 | $start += $length; 128 | $length = $this->_offset * LENGTH_TIMESTAMP; 129 | $avl_data->setTimestamp(substr($data, $start, $length)); 130 | 131 | // Parsing of Priority 132 | $start += $length; 133 | $length = $this->_offset * LENGTH_PRIORITY; 134 | $avl_data->setPriority(substr($data, $start, $length)); 135 | 136 | // Parsing of GPS Element 137 | // Longitude 138 | $start += $length; 139 | $length = $this->_offset * LENGTH_GPS_LONGITUDE; 140 | $avl_data->gps_element->setLongitude(substr($data, $start, $length)); 141 | 142 | // Latitude 143 | $start += $length; 144 | $length = $this->_offset * LENGTH_GPS_LATITUDE; 145 | $avl_data->gps_element->setLatitude(substr($data, $start, $length)); 146 | 147 | // Altitude 148 | $start += $length; 149 | $length = $this->_offset * LENGTH_GPS_ALTITUDE; 150 | $avl_data->gps_element->setAltitude(substr($data, $start, $length)); 151 | 152 | // Angle 153 | $start += $length; 154 | $length = $this->_offset * LENGTH_GPS_ANGLE; 155 | $avl_data->gps_element->setAngle(substr($data, $start, $length)); 156 | 157 | // Satellites 158 | $start += $length; 159 | $length = $this->_offset * LENGTH_GPS_SATELLITES; 160 | $avl_data->gps_element->setSatellites(substr($data, $start, $length)); 161 | 162 | // Speed 163 | $start += $length; 164 | $length = $this->_offset * LENGTH_GPS_SPEED; 165 | $avl_data->gps_element->setSpeed(substr($data, $start, $length)); 166 | 167 | // Parsing of IO Element 168 | // IO Event ID 169 | $start += $length; 170 | $length = $this->_offset * LENGTH_IO_EVENT_IO_ID; 171 | $avl_data->io_element->setEventIOID(substr($data, $start, $length)); 172 | 173 | // Number Total of IO 174 | $start += $length; 175 | $length = $this->_offset * LENGTH_IO_N; 176 | $avl_data->io_element->setTotalIO(substr($data, $start, $length)); 177 | 178 | foreach ($avl_data->io_element->getAllIO() as $size => $io) { 179 | $start += $length; 180 | $length = $this->_offset * LENGTH_IO_N; 181 | // Set up new IO object 182 | $io = new IO(substr($data, $start, $length)); 183 | $nb_io = $io->getNbIO(); 184 | 185 | // Seeking for IO[$size] IDs and Values 186 | for ($k = 0; $k < $nb_io; $k++) { 187 | $start += $length; 188 | $length = $this->_offset * LENGTH_IO_ID; 189 | $io_id = substr($data, $start, $length); 190 | 191 | $start += $length; 192 | $length = $this->_offset * LENGTH_IO_VALUE * $size; 193 | $io_value = substr($data, $start, $length); 194 | 195 | $io->addEvent($io_id, $io_value); 196 | } 197 | $avl_data->io_element->setIO($size, $io); 198 | } 199 | $this->_avl_packet->avl_data_array->addAVLData($avl_data); 200 | } 201 | 202 | return $this->_avl_packet->avl_data_array; 203 | } 204 | 205 | /** 206 | * Getter for AVL Packet 207 | * 208 | * @return AVLPacket 209 | */ 210 | public function getAVLPacket() 211 | { 212 | return $this->_avl_packet; 213 | } 214 | } 215 | ?> -------------------------------------------------------------------------------- /FMXXXX_Parser/constants.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | FMXXXX Parser 2 | ============= 3 | 4 | Simple Parser interface for [Teltonika's FMXXXX GPS device](http://www.teltonika.lt/en/pages/view/?id=10) in PHP. 5 | 6 | To use this library: 7 | + copy the FMXXXX_Parser directory into the working space 8 | + Include the Parser.class.php into your php application 9 | + Enjoy ;) 10 | 11 | licence GNU/GPL V2.1 -------------------------------------------------------------------------------- /doc/html/_a_v_l_objects_8class_8php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: FMXXXX_Parser/AVLObjects.class.php File Reference 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 | 69 |
70 |

FMXXXX_Parser/AVLObjects.class.php File Reference

71 |
72 |
73 | 74 | 76 | 77 | 78 | 79 |

75 | Data Structures

class  AVLPacket
class  AVLDataArray
class  AVLData
80 |
81 |
82 | 90 | 91 | 96 | 97 | 98 |
99 | 102 |
103 | 104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /doc/html/_g_p_s_element_8class_8php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: FMXXXX_Parser/GPSElement.class.php File Reference 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 | 69 |
70 |

FMXXXX_Parser/GPSElement.class.php File Reference

71 |
72 |
73 | 74 | 76 | 77 |

75 | Data Structures

class  GPSElement
78 |
79 |
80 | 88 | 89 | 94 | 95 | 96 |
97 | 100 |
101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/_i_o_8class_8php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: FMXXXX_Parser/IO.class.php File Reference 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 | 69 |
70 |

FMXXXX_Parser/IO.class.php File Reference

71 |
72 |
73 | 74 | 76 | 77 |

75 | Data Structures

class  IO
78 |
79 |
80 | 88 | 89 | 94 | 95 | 96 |
97 | 100 |
101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/_i_o_element_8class_8php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: FMXXXX_Parser/IOElement.class.php File Reference 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 | 69 |
70 |

FMXXXX_Parser/IOElement.class.php File Reference

71 |
72 |
73 | 74 | 76 | 77 |

75 | Data Structures

class  IOElement
78 |
79 |
80 | 88 | 89 | 94 | 95 | 96 |
97 | 100 |
101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/_parser_8class_8php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: FMXXXX_Parser/Parser.class.php File Reference 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 | 69 |
70 |

FMXXXX_Parser/Parser.class.php File Reference

71 |
72 |
73 | 74 | 76 | 77 |

75 | Data Structures

class  Parser
78 |
79 |
80 | 88 | 89 | 94 | 95 | 96 |
97 | 100 |
101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/annotated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Data Structures 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

Data Structures

69 |
70 |
71 |
Here are the data structures with brief descriptions:
72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
AVLData
AVLDataArray
AVLPacket
GPSElement
IO
IOElement
Parser
80 |
81 |
82 | 89 | 90 | 95 | 96 | 97 |
98 | 101 |
102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Data Structure Index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

Data Structure Index

69 |
70 |
71 |
A | G | I | P
72 | 73 |
  A  
74 |
AVLPacket   GPSElement   IO   
  P  
75 |
AVLData   
  G  
76 |
  I  
77 |
IOElement   Parser   
AVLDataArray   
A | G | I | P
78 |
79 |
80 | 87 | 88 | 93 | 94 | 95 |
96 | 99 |
100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/files.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: File List 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

File List

69 |
70 |
71 |
Here is a list of all files with brief descriptions:
72 | 73 | 74 | 75 | 76 | 77 | 78 |
FMXXXX_Parser/AVLObjects.class.php
FMXXXX_Parser/constants.php
FMXXXX_Parser/GPSElement.class.php
FMXXXX_Parser/IO.class.php
FMXXXX_Parser/IOElement.class.php
FMXXXX_Parser/Parser.class.php
79 |
80 |
81 | 88 | 89 | 94 | 95 | 96 |
97 | 100 |
101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2blank.png -------------------------------------------------------------------------------- /doc/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2doc.png -------------------------------------------------------------------------------- /doc/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /doc/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2folderopen.png -------------------------------------------------------------------------------- /doc/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2lastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2link.png -------------------------------------------------------------------------------- /doc/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2mnode.png -------------------------------------------------------------------------------- /doc/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2node.png -------------------------------------------------------------------------------- /doc/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2plastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2pnode.png -------------------------------------------------------------------------------- /doc/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2splitbar.png -------------------------------------------------------------------------------- /doc/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/ftv2vertline.png -------------------------------------------------------------------------------- /doc/html/functions_vars.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Data Fields - Variables 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 | 59 |
60 |
61 | 65 |
67 |
68 |
69 | 72 |
73 |
74 |   88 |
89 |
90 | 97 | 98 | 103 | 104 | 105 |
106 | 109 |
110 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /doc/html/globals.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Globals 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 | 58 |
59 |
60 | 64 |
66 |
67 |
68 | 71 |
72 |
73 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
129 |
130 |
131 | 138 | 139 | 144 | 145 | 146 |
147 | 150 |
151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /doc/html/globals_enum.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Globals 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 | 58 |
59 |
60 | 64 |
66 |
67 |
68 | 71 |
72 |
73 |   129 |
130 |
131 | 138 | 139 | 144 | 145 | 146 |
147 | 150 |
151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /doc/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Main Page 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

FMXXXX Parser Documentation Documentation

69 |
70 | 84 |
85 | 92 | 93 | 98 | 99 | 100 |
101 | 104 |
105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /doc/html/installdox: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | %subst = ( ); 4 | $quiet = 0; 5 | 6 | while ( @ARGV ) { 7 | $_ = shift @ARGV; 8 | if ( s/^-// ) { 9 | if ( /^l(.*)/ ) { 10 | $v = ($1 eq "") ? shift @ARGV : $1; 11 | ($v =~ /\/$/) || ($v .= "/"); 12 | $_ = $v; 13 | if ( /(.+)\@(.+)/ ) { 14 | if ( exists $subst{$1} ) { 15 | $subst{$1} = $2; 16 | } else { 17 | print STDERR "Unknown tag file $1 given with option -l\n"; 18 | &usage(); 19 | } 20 | } else { 21 | print STDERR "Argument $_ is invalid for option -l\n"; 22 | &usage(); 23 | } 24 | } 25 | elsif ( /^q/ ) { 26 | $quiet = 1; 27 | } 28 | elsif ( /^\?|^h/ ) { 29 | &usage(); 30 | } 31 | else { 32 | print STDERR "Illegal option -$_\n"; 33 | &usage(); 34 | } 35 | } 36 | else { 37 | push (@files, $_ ); 38 | } 39 | } 40 | 41 | foreach $sub (keys %subst) 42 | { 43 | if ( $subst{$sub} eq "" ) 44 | { 45 | print STDERR "No substitute given for tag file `$sub'\n"; 46 | &usage(); 47 | } 48 | elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) 49 | { 50 | print "Substituting $subst{$sub} for each occurrence of tag file $sub\n"; 51 | } 52 | } 53 | 54 | if ( ! @files ) { 55 | if (opendir(D,".")) { 56 | foreach $file ( readdir(D) ) { 57 | $match = ".html"; 58 | next if ( $file =~ /^\.\.?$/ ); 59 | ($file =~ /$match/) && (push @files, $file); 60 | ($file =~ /\.svg/) && (push @files, $file); 61 | ($file =~ "navtree.js") && (push @files, $file); 62 | } 63 | closedir(D); 64 | } 65 | } 66 | 67 | if ( ! @files ) { 68 | print STDERR "Warning: No input files given and none found!\n"; 69 | } 70 | 71 | foreach $f (@files) 72 | { 73 | if ( ! $quiet ) { 74 | print "Editing: $f...\n"; 75 | } 76 | $oldf = $f; 77 | $f .= ".bak"; 78 | unless (rename $oldf,$f) { 79 | print STDERR "Error: cannot rename file $oldf\n"; 80 | exit 1; 81 | } 82 | if (open(F,"<$f")) { 83 | unless (open(G,">$oldf")) { 84 | print STDERR "Error: opening file $oldf for writing\n"; 85 | exit 1; 86 | } 87 | if ($oldf ne "tree.js") { 88 | while () { 89 | s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; 90 | print G "$_"; 91 | } 92 | } 93 | else { 94 | while () { 95 | s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; 96 | print G "$_"; 97 | } 98 | } 99 | } 100 | else { 101 | print STDERR "Warning file $f does not exist\n"; 102 | } 103 | unlink $f; 104 | } 105 | 106 | sub usage { 107 | print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; 108 | print STDERR "Options:\n"; 109 | print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; 110 | print STDERR " -q Quiet mode\n\n"; 111 | exit 1; 112 | } 113 | -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/navtree.css: -------------------------------------------------------------------------------- 1 | #nav-tree .children_ul { 2 | margin:0; 3 | padding:4px; 4 | } 5 | 6 | #nav-tree ul { 7 | list-style:none outside none; 8 | margin:0px; 9 | padding:0px; 10 | } 11 | 12 | #nav-tree li { 13 | white-space:nowrap; 14 | margin:0px; 15 | padding:0px; 16 | } 17 | 18 | #nav-tree .plus { 19 | margin:0px; 20 | } 21 | 22 | #nav-tree .selected { 23 | background-image: url('tab_a.png'); 24 | background-repeat:repeat-x; 25 | color: #fff; 26 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 27 | } 28 | 29 | #nav-tree img { 30 | margin:0px; 31 | padding:0px; 32 | border:0px; 33 | vertical-align: middle; 34 | } 35 | 36 | #nav-tree a { 37 | text-decoration:none; 38 | padding:0px; 39 | margin:0px; 40 | outline:none; 41 | } 42 | 43 | #nav-tree .label { 44 | margin:0px; 45 | padding:0px; 46 | } 47 | 48 | #nav-tree .label a { 49 | padding:2px; 50 | } 51 | 52 | #nav-tree .selected a { 53 | text-decoration:none; 54 | padding:2px; 55 | margin:0px; 56 | color:#fff; 57 | } 58 | 59 | #nav-tree .children_ul { 60 | margin:0px; 61 | padding:0px; 62 | } 63 | 64 | #nav-tree .item { 65 | margin:0px; 66 | padding:0px; 67 | } 68 | 69 | #nav-tree { 70 | padding: 0px 0px; 71 | background-color: #FAFAFF; 72 | font-size:14px; 73 | overflow:auto; 74 | } 75 | 76 | #doc-content { 77 | overflow:auto; 78 | display:block; 79 | padding:0px; 80 | margin:0px; 81 | } 82 | 83 | #side-nav { 84 | padding:0 6px 0 0; 85 | margin: 0px; 86 | display:block; 87 | position: absolute; 88 | left: 0px; 89 | width: 300px; 90 | } 91 | 92 | .ui-resizable .ui-resizable-handle { 93 | display:block; 94 | } 95 | 96 | .ui-resizable-e { 97 | background:url("ftv2splitbar.png") repeat scroll right center transparent; 98 | cursor:e-resize; 99 | height:100%; 100 | right:0; 101 | top:0; 102 | width:6px; 103 | } 104 | 105 | .ui-resizable-handle { 106 | display:none; 107 | font-size:0.1px; 108 | position:absolute; 109 | z-index:1; 110 | } 111 | 112 | #nav-tree-contents { 113 | margin: 6px 0px 0px 0px; 114 | } 115 | 116 | #nav-tree { 117 | background-image:url('nav_h.png'); 118 | background-repeat:repeat-x; 119 | background-color: #F9FAFC; 120 | } 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /doc/html/navtree.js: -------------------------------------------------------------------------------- 1 | var NAVTREE = 2 | [ 3 | [ "FMXXXX Parser Documentation", "index.html", [ 4 | [ "Related Pages", "pages.html", [ 5 | [ "Todo List", "todo.html", null ] 6 | ] ], 7 | [ "Data Structures", "annotated.html", [ 8 | [ "AVLData", "class_a_v_l_data.html", null ], 9 | [ "AVLDataArray", "class_a_v_l_data_array.html", null ], 10 | [ "AVLPacket", "class_a_v_l_packet.html", null ], 11 | [ "GPSElement", "class_g_p_s_element.html", null ], 12 | [ "IO", "class_i_o.html", null ], 13 | [ "IOElement", "class_i_o_element.html", null ], 14 | [ "Parser", "class_parser.html", null ] 15 | ] ], 16 | [ "Data Structure Index", "classes.html", null ], 17 | [ "Data Fields", "functions.html", null ], 18 | [ "File List", "files.html", [ 19 | [ "FMXXXX_Parser/AVLObjects.class.php", "_a_v_l_objects_8class_8php.html", null ], 20 | [ "FMXXXX_Parser/constants.php", "constants_8php.html", null ], 21 | [ "FMXXXX_Parser/GPSElement.class.php", "_g_p_s_element_8class_8php.html", null ], 22 | [ "FMXXXX_Parser/IO.class.php", "_i_o_8class_8php.html", null ], 23 | [ "FMXXXX_Parser/IOElement.class.php", "_i_o_element_8class_8php.html", null ], 24 | [ "FMXXXX_Parser/Parser.class.php", "_parser_8class_8php.html", null ] 25 | ] ], 26 | [ "Globals", "globals.html", null ] 27 | ] ] 28 | ]; 29 | 30 | function createIndent(o,domNode,node,level) 31 | { 32 | if (node.parentNode && node.parentNode.parentNode) 33 | { 34 | createIndent(o,domNode,node.parentNode,level+1); 35 | } 36 | var imgNode = document.createElement("img"); 37 | if (level==0 && node.childrenData) 38 | { 39 | node.plus_img = imgNode; 40 | node.expandToggle = document.createElement("a"); 41 | node.expandToggle.href = "javascript:void(0)"; 42 | node.expandToggle.onclick = function() 43 | { 44 | if (node.expanded) 45 | { 46 | $(node.getChildrenUL()).slideUp("fast"); 47 | if (node.isLast) 48 | { 49 | node.plus_img.src = node.relpath+"ftv2plastnode.png"; 50 | } 51 | else 52 | { 53 | node.plus_img.src = node.relpath+"ftv2pnode.png"; 54 | } 55 | node.expanded = false; 56 | } 57 | else 58 | { 59 | expandNode(o, node, false); 60 | } 61 | } 62 | node.expandToggle.appendChild(imgNode); 63 | domNode.appendChild(node.expandToggle); 64 | } 65 | else 66 | { 67 | domNode.appendChild(imgNode); 68 | } 69 | if (level==0) 70 | { 71 | if (node.isLast) 72 | { 73 | if (node.childrenData) 74 | { 75 | imgNode.src = node.relpath+"ftv2plastnode.png"; 76 | } 77 | else 78 | { 79 | imgNode.src = node.relpath+"ftv2lastnode.png"; 80 | domNode.appendChild(imgNode); 81 | } 82 | } 83 | else 84 | { 85 | if (node.childrenData) 86 | { 87 | imgNode.src = node.relpath+"ftv2pnode.png"; 88 | } 89 | else 90 | { 91 | imgNode.src = node.relpath+"ftv2node.png"; 92 | domNode.appendChild(imgNode); 93 | } 94 | } 95 | } 96 | else 97 | { 98 | if (node.isLast) 99 | { 100 | imgNode.src = node.relpath+"ftv2blank.png"; 101 | } 102 | else 103 | { 104 | imgNode.src = node.relpath+"ftv2vertline.png"; 105 | } 106 | } 107 | imgNode.border = "0"; 108 | } 109 | 110 | function newNode(o, po, text, link, childrenData, lastNode) 111 | { 112 | var node = new Object(); 113 | node.children = Array(); 114 | node.childrenData = childrenData; 115 | node.depth = po.depth + 1; 116 | node.relpath = po.relpath; 117 | node.isLast = lastNode; 118 | 119 | node.li = document.createElement("li"); 120 | po.getChildrenUL().appendChild(node.li); 121 | node.parentNode = po; 122 | 123 | node.itemDiv = document.createElement("div"); 124 | node.itemDiv.className = "item"; 125 | 126 | node.labelSpan = document.createElement("span"); 127 | node.labelSpan.className = "label"; 128 | 129 | createIndent(o,node.itemDiv,node,0); 130 | node.itemDiv.appendChild(node.labelSpan); 131 | node.li.appendChild(node.itemDiv); 132 | 133 | var a = document.createElement("a"); 134 | node.labelSpan.appendChild(a); 135 | node.label = document.createTextNode(text); 136 | a.appendChild(node.label); 137 | if (link) 138 | { 139 | a.href = node.relpath+link; 140 | } 141 | else 142 | { 143 | if (childrenData != null) 144 | { 145 | a.className = "nolink"; 146 | a.href = "javascript:void(0)"; 147 | a.onclick = node.expandToggle.onclick; 148 | node.expanded = false; 149 | } 150 | } 151 | 152 | node.childrenUL = null; 153 | node.getChildrenUL = function() 154 | { 155 | if (!node.childrenUL) 156 | { 157 | node.childrenUL = document.createElement("ul"); 158 | node.childrenUL.className = "children_ul"; 159 | node.childrenUL.style.display = "none"; 160 | node.li.appendChild(node.childrenUL); 161 | } 162 | return node.childrenUL; 163 | }; 164 | 165 | return node; 166 | } 167 | 168 | function showRoot() 169 | { 170 | var headerHeight = $("#top").height(); 171 | var footerHeight = $("#nav-path").height(); 172 | var windowHeight = $(window).height() - headerHeight - footerHeight; 173 | navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); 174 | } 175 | 176 | function expandNode(o, node, imm) 177 | { 178 | if (node.childrenData && !node.expanded) 179 | { 180 | if (!node.childrenVisited) 181 | { 182 | getNode(o, node); 183 | } 184 | if (imm) 185 | { 186 | $(node.getChildrenUL()).show(); 187 | } 188 | else 189 | { 190 | $(node.getChildrenUL()).slideDown("fast",showRoot); 191 | } 192 | if (node.isLast) 193 | { 194 | node.plus_img.src = node.relpath+"ftv2mlastnode.png"; 195 | } 196 | else 197 | { 198 | node.plus_img.src = node.relpath+"ftv2mnode.png"; 199 | } 200 | node.expanded = true; 201 | } 202 | } 203 | 204 | function getNode(o, po) 205 | { 206 | po.childrenVisited = true; 207 | var l = po.childrenData.length-1; 208 | for (var i in po.childrenData) 209 | { 210 | var nodeData = po.childrenData[i]; 211 | po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], 212 | i==l); 213 | } 214 | } 215 | 216 | function findNavTreePage(url, data) 217 | { 218 | var nodes = data; 219 | var result = null; 220 | for (var i in nodes) 221 | { 222 | var d = nodes[i]; 223 | if (d[1] == url) 224 | { 225 | return new Array(i); 226 | } 227 | else if (d[2] != null) // array of children 228 | { 229 | result = findNavTreePage(url, d[2]); 230 | if (result != null) 231 | { 232 | return (new Array(i).concat(result)); 233 | } 234 | } 235 | } 236 | return null; 237 | } 238 | 239 | function initNavTree(toroot,relpath) 240 | { 241 | var o = new Object(); 242 | o.toroot = toroot; 243 | o.node = new Object(); 244 | o.node.li = document.getElementById("nav-tree-contents"); 245 | o.node.childrenData = NAVTREE; 246 | o.node.children = new Array(); 247 | o.node.childrenUL = document.createElement("ul"); 248 | o.node.getChildrenUL = function() { return o.node.childrenUL; }; 249 | o.node.li.appendChild(o.node.childrenUL); 250 | o.node.depth = 0; 251 | o.node.relpath = relpath; 252 | 253 | getNode(o, o.node); 254 | 255 | o.breadcrumbs = findNavTreePage(toroot, NAVTREE); 256 | if (o.breadcrumbs == null) 257 | { 258 | o.breadcrumbs = findNavTreePage("index.html",NAVTREE); 259 | } 260 | if (o.breadcrumbs != null && o.breadcrumbs.length>0) 261 | { 262 | var p = o.node; 263 | for (var i in o.breadcrumbs) 264 | { 265 | var j = o.breadcrumbs[i]; 266 | p = p.children[j]; 267 | expandNode(o,p,true); 268 | } 269 | p.itemDiv.className = p.itemDiv.className + " selected"; 270 | p.itemDiv.id = "selected"; 271 | $(window).load(showRoot); 272 | } 273 | } 274 | 275 | -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/pages.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Related Pages 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

Related Pages

69 |
70 |
71 |
Here is a list of all related documentation pages:
75 |
76 |
77 | 84 | 85 | 90 | 91 | 92 |
93 | 96 |
97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /doc/html/resize.js: -------------------------------------------------------------------------------- 1 | var cookie_namespace = 'doxygen'; 2 | var sidenav,navtree,content,header; 3 | 4 | function readCookie(cookie) 5 | { 6 | var myCookie = cookie_namespace+"_"+cookie+"="; 7 | if (document.cookie) 8 | { 9 | var index = document.cookie.indexOf(myCookie); 10 | if (index != -1) 11 | { 12 | var valStart = index + myCookie.length; 13 | var valEnd = document.cookie.indexOf(";", valStart); 14 | if (valEnd == -1) 15 | { 16 | valEnd = document.cookie.length; 17 | } 18 | var val = document.cookie.substring(valStart, valEnd); 19 | return val; 20 | } 21 | } 22 | return 0; 23 | } 24 | 25 | function writeCookie(cookie, val, expiration) 26 | { 27 | if (val==undefined) return; 28 | if (expiration == null) 29 | { 30 | var date = new Date(); 31 | date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week 32 | expiration = date.toGMTString(); 33 | } 34 | document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; 35 | } 36 | 37 | function resizeWidth() 38 | { 39 | var windowWidth = $(window).width() + "px"; 40 | var sidenavWidth = $(sidenav).width(); 41 | content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar 42 | writeCookie('width',sidenavWidth, null); 43 | } 44 | 45 | function restoreWidth(navWidth) 46 | { 47 | var windowWidth = $(window).width() + "px"; 48 | content.css({marginLeft:parseInt(navWidth)+6+"px"}); 49 | sidenav.css({width:navWidth + "px"}); 50 | } 51 | 52 | function resizeHeight() 53 | { 54 | var headerHeight = header.height(); 55 | var footerHeight = footer.height(); 56 | var windowHeight = $(window).height() - headerHeight - footerHeight; 57 | content.css({height:windowHeight + "px"}); 58 | navtree.css({height:windowHeight + "px"}); 59 | sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); 60 | } 61 | 62 | function initResizable() 63 | { 64 | header = $("#top"); 65 | sidenav = $("#side-nav"); 66 | content = $("#doc-content"); 67 | navtree = $("#nav-tree"); 68 | footer = $("#nav-path"); 69 | $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); 70 | $(window).resize(function() { resizeHeight(); }); 71 | var width = readCookie('width'); 72 | if (width) { restoreWidth(width); } else { resizeWidth(); } 73 | resizeHeight(); 74 | var url = location.href; 75 | var i=url.indexOf("#"); 76 | if (i>=0) window.location.hash=url.substr(i); 77 | var _preventDefault = function(evt) { evt.preventDefault(); }; 78 | $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); 79 | } 80 | 81 | 82 | -------------------------------------------------------------------------------- /doc/html/search/all_24.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | $avl_data_array 13 | AVLPacket 14 |
15 |
16 |
17 |
18 | $data 19 | AVLPacket 20 |
21 |
22 |
23 |
24 | $gps_element 25 | AVLData 26 |
27 |
28 |
29 |
30 | $io_element 31 | AVLData 32 |
33 |
34 |
Searching...
35 |
No Matches
36 | 42 |
43 | 44 | 45 | -------------------------------------------------------------------------------- /doc/html/search/all_5f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 | 24 |
Searching...
25 |
No Matches
26 | 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /doc/html/search/all_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | addAVLData 13 | AVLDataArray 14 |
15 |
16 |
17 |
18 | addEvent 19 | IO 20 |
21 |
22 |
23 |
24 | AVLData 25 |
26 |
27 |
28 |
29 | AVLDataArray 30 |
31 |
32 |
33 | 36 |
37 |
38 |
39 | AVLPacket 40 |
41 |
42 |
Searching...
43 |
No Matches
44 | 50 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /doc/html/search/all_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | constants.php 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/all_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | IO 13 |
14 |
15 |
16 |
17 | IO.class.php 18 |
19 |
20 |
21 |
22 | IOElement 23 |
24 |
25 |
26 | 29 |
30 |
31 |
32 | isOnEvent 33 | IOElement 34 |
35 |
36 |
37 |
38 | isValid 39 | GPSElement 40 |
41 |
42 |
Searching...
43 |
No Matches
44 | 50 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /doc/html/search/all_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | LENGTH_CODEC_ID 13 | constants.php 14 |
15 |
16 |
17 |
18 | LENGTH_CRC 19 | constants.php 20 |
21 |
22 |
23 |
24 | LENGTH_DATA_LENGTH 25 | constants.php 26 |
27 |
28 |
29 |
30 | LENGTH_FOUR_ZEROS 31 | constants.php 32 |
33 |
34 |
35 |
36 | LENGTH_GPS_ALTITUDE 37 | constants.php 38 |
39 |
40 |
41 |
42 | LENGTH_GPS_ANGLE 43 | constants.php 44 |
45 |
46 |
47 |
48 | LENGTH_GPS_ELEMENT 49 | constants.php 50 |
51 |
52 |
53 |
54 | LENGTH_GPS_LATITUDE 55 | constants.php 56 |
57 |
58 |
59 |
60 | LENGTH_GPS_LONGITUDE 61 | constants.php 62 |
63 |
64 |
65 |
66 | LENGTH_GPS_SATELLITES 67 | constants.php 68 |
69 |
70 |
71 |
72 | LENGTH_GPS_SPEED 73 | constants.php 74 |
75 |
76 |
77 |
78 | LENGTH_IO_EVENT_IO_ID 79 | constants.php 80 |
81 |
82 |
83 |
84 | LENGTH_IO_ID 85 | constants.php 86 |
87 |
88 |
89 |
90 | LENGTH_IO_N 91 | constants.php 92 |
93 |
94 |
95 |
96 | LENGTH_IO_VALUE 97 | constants.php 98 |
99 |
100 |
101 |
102 | LENGTH_NUMBER_OF_DATA 103 | constants.php 104 |
105 |
106 |
107 |
108 | LENGTH_PRIORITY 109 | constants.php 110 |
111 |
112 |
113 |
114 | LENGTH_TIMESTAMP 115 | constants.php 116 |
117 |
118 |
Searching...
119 |
No Matches
120 | 126 |
127 | 128 | 129 | -------------------------------------------------------------------------------- /doc/html/search/all_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | parse 13 | Parser 14 |
15 |
16 |
17 |
18 | Parser 19 |
20 |
21 |
22 |
23 | Parser.class.php 24 |
25 |
26 |
Searching...
27 |
No Matches
28 | 34 |
35 | 36 | 37 | -------------------------------------------------------------------------------- /doc/html/search/all_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | setAltitude 13 | GPSElement 14 |
15 |
16 |
17 |
18 | setAngle 19 | GPSElement 20 |
21 |
22 |
23 |
24 | setCodecID 25 | AVLDataArray 26 |
27 |
28 |
29 |
30 | setCRC 31 | AVLPacket 32 |
33 |
34 |
35 |
36 | setDataLength 37 | AVLPacket 38 |
39 |
40 |
41 |
42 | setEventIOID 43 | IOElement 44 |
45 |
46 |
47 |
48 | setIO 49 | IOElement 50 |
51 |
52 |
53 |
54 | setLatitude 55 | GPSElement 56 |
57 |
58 |
59 |
60 | setLongitude 61 | GPSElement 62 |
63 |
64 |
65 |
66 | setNbData 67 | AVLDataArray 68 |
69 |
70 |
71 |
72 | setNbIO 73 | IO 74 |
75 |
76 |
77 |
78 | setPriority 79 | AVLData 80 |
81 |
82 |
83 |
84 | setSatellites 85 | GPSElement 86 |
87 |
88 |
89 |
90 | setSpeed 91 | GPSElement 92 |
93 |
94 |
95 |
96 | setTimestamp 97 | AVLData 98 |
99 |
100 |
101 |
102 | setTotalIO 103 | IOElement 104 |
105 |
106 |
Searching...
107 |
No Matches
108 | 114 |
115 | 116 | 117 | -------------------------------------------------------------------------------- /doc/html/search/classes_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | AVLData 13 |
14 |
15 |
16 |
17 | AVLDataArray 18 |
19 |
20 |
21 |
22 | AVLPacket 23 |
24 |
25 |
Searching...
26 |
No Matches
27 | 33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /doc/html/search/classes_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | GPSElement 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/classes_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | IO 13 |
14 |
15 |
16 |
17 | IOElement 18 |
19 |
20 |
Searching...
21 |
No Matches
22 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/classes_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | Parser 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/search/close.png -------------------------------------------------------------------------------- /doc/html/search/enums_6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | LENGTH_CODEC_ID 13 | constants.php 14 |
15 |
16 |
17 |
18 | LENGTH_CRC 19 | constants.php 20 |
21 |
22 |
23 |
24 | LENGTH_DATA_LENGTH 25 | constants.php 26 |
27 |
28 |
29 |
30 | LENGTH_FOUR_ZEROS 31 | constants.php 32 |
33 |
34 |
35 |
36 | LENGTH_GPS_ALTITUDE 37 | constants.php 38 |
39 |
40 |
41 |
42 | LENGTH_GPS_ANGLE 43 | constants.php 44 |
45 |
46 |
47 |
48 | LENGTH_GPS_ELEMENT 49 | constants.php 50 |
51 |
52 |
53 |
54 | LENGTH_GPS_LATITUDE 55 | constants.php 56 |
57 |
58 |
59 |
60 | LENGTH_GPS_LONGITUDE 61 | constants.php 62 |
63 |
64 |
65 |
66 | LENGTH_GPS_SATELLITES 67 | constants.php 68 |
69 |
70 |
71 |
72 | LENGTH_GPS_SPEED 73 | constants.php 74 |
75 |
76 |
77 |
78 | LENGTH_IO_EVENT_IO_ID 79 | constants.php 80 |
81 |
82 |
83 |
84 | LENGTH_IO_ID 85 | constants.php 86 |
87 |
88 |
89 |
90 | LENGTH_IO_N 91 | constants.php 92 |
93 |
94 |
95 |
96 | LENGTH_IO_VALUE 97 | constants.php 98 |
99 |
100 |
101 |
102 | LENGTH_NUMBER_OF_DATA 103 | constants.php 104 |
105 |
106 |
107 |
108 | LENGTH_PRIORITY 109 | constants.php 110 |
111 |
112 |
113 |
114 | LENGTH_TIMESTAMP 115 | constants.php 116 |
117 |
118 |
Searching...
119 |
No Matches
120 | 126 |
127 | 128 | 129 | -------------------------------------------------------------------------------- /doc/html/search/files_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 | 14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/files_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | constants.php 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/files_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 | 14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/files_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | IO.class.php 13 |
14 |
15 |
16 | 19 |
20 |
Searching...
21 |
No Matches
22 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /doc/html/search/files_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | Parser.class.php 13 |
14 |
15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /doc/html/search/functions_5f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 | 24 |
Searching...
25 |
No Matches
26 | 32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /doc/html/search/functions_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | addAVLData 13 | AVLDataArray 14 |
15 |
16 |
17 |
18 | addEvent 19 | IO 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/html/search/functions_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | getAllIO 13 | IOElement 14 |
15 |
16 |
17 |
18 | getAltitude 19 | GPSElement 20 |
21 |
22 |
23 |
24 | getAngle 25 | GPSElement 26 |
27 |
28 |
29 |
30 | getAVLDatas 31 | AVLDataArray 32 |
33 |
34 |
35 |
36 | getAVLPacket 37 | Parser 38 |
39 |
40 |
41 |
42 | getCodecID 43 | AVLDataArray 44 |
45 |
46 |
47 |
48 | getCRC 49 | AVLPacket 50 |
51 |
52 |
53 |
54 | getDataLength 55 | AVLPacket 56 |
57 |
58 |
59 |
60 | getEventIOID 61 | IOElement 62 |
63 |
64 |
65 |
66 | getEvents 67 | IO 68 |
69 |
70 |
71 |
72 | getIO 73 | IOElement 74 |
75 |
76 |
77 |
78 | getLatitude 79 | GPSElement 80 |
81 |
82 |
83 |
84 | getLongitude 85 | GPSElement 86 |
87 |
88 |
89 |
90 | getNbData 91 | AVLDataArray 92 |
93 |
94 |
95 |
96 | getNbIO 97 | IO 98 |
99 |
100 |
101 |
102 | getPriority 103 | AVLData 104 |
105 |
106 |
107 |
108 | getSatellites 109 | GPSElement 110 |
111 |
112 |
113 |
114 | getSpeed 115 | GPSElement 116 |
117 |
118 |
119 |
120 | getStrPriority 121 | AVLData 122 |
123 |
124 |
125 |
126 | getStrTimestamp 127 | AVLData 128 |
129 |
130 |
131 |
132 | getTimestamp 133 | AVLData 134 |
135 |
136 |
137 |
138 | getTotalIO 139 | IOElement 140 |
141 |
142 |
Searching...
143 |
No Matches
144 | 150 |
151 | 152 | 153 | -------------------------------------------------------------------------------- /doc/html/search/functions_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | isOnEvent 13 | IOElement 14 |
15 |
16 |
17 |
18 | isValid 19 | GPSElement 20 |
21 |
22 |
Searching...
23 |
No Matches
24 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /doc/html/search/functions_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | parse 13 | Parser 14 |
15 |
16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | setAltitude 13 | GPSElement 14 |
15 |
16 |
17 |
18 | setAngle 19 | GPSElement 20 |
21 |
22 |
23 |
24 | setCodecID 25 | AVLDataArray 26 |
27 |
28 |
29 |
30 | setCRC 31 | AVLPacket 32 |
33 |
34 |
35 |
36 | setDataLength 37 | AVLPacket 38 |
39 |
40 |
41 |
42 | setEventIOID 43 | IOElement 44 |
45 |
46 |
47 |
48 | setIO 49 | IOElement 50 |
51 |
52 |
53 |
54 | setLatitude 55 | GPSElement 56 |
57 |
58 |
59 |
60 | setLongitude 61 | GPSElement 62 |
63 |
64 |
65 |
66 | setNbData 67 | AVLDataArray 68 |
69 |
70 |
71 |
72 | setNbIO 73 | IO 74 |
75 |
76 |
77 |
78 | setPriority 79 | AVLData 80 |
81 |
82 |
83 |
84 | setSatellites 85 | GPSElement 86 |
87 |
88 |
89 |
90 | setSpeed 91 | GPSElement 92 |
93 |
94 |
95 |
96 | setTimestamp 97 | AVLData 98 |
99 |
100 |
101 |
102 | setTotalIO 103 | IOElement 104 |
105 |
106 |
Searching...
107 |
No Matches
108 | 114 |
115 | 116 | 117 | -------------------------------------------------------------------------------- /doc/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/search/mag_sel.png -------------------------------------------------------------------------------- /doc/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/html/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #FSearchBox { 4 | float: left; 5 | } 6 | 7 | #searchli { 8 | float: right; 9 | display: block; 10 | width: 170px; 11 | height: 36px; 12 | } 13 | 14 | #MSearchBox { 15 | white-space : nowrap; 16 | position: absolute; 17 | float: none; 18 | display: inline; 19 | margin-top: 8px; 20 | right: 0px; 21 | width: 170px; 22 | z-index: 102; 23 | } 24 | 25 | #MSearchBox .left 26 | { 27 | display:block; 28 | position:absolute; 29 | left:10px; 30 | width:20px; 31 | height:19px; 32 | background:url('search_l.png') no-repeat; 33 | background-position:right; 34 | } 35 | 36 | #MSearchSelect { 37 | display:block; 38 | position:absolute; 39 | width:20px; 40 | height:19px; 41 | } 42 | 43 | .left #MSearchSelect { 44 | left:4px; 45 | } 46 | 47 | .right #MSearchSelect { 48 | right:5px; 49 | } 50 | 51 | #MSearchField { 52 | display:block; 53 | position:absolute; 54 | height:19px; 55 | background:url('search_m.png') repeat-x; 56 | border:none; 57 | width:116px; 58 | margin-left:20px; 59 | padding-left:4px; 60 | color: #909090; 61 | outline: none; 62 | font: 9pt Arial, Verdana, sans-serif; 63 | } 64 | 65 | #FSearchBox #MSearchField { 66 | margin-left:15px; 67 | } 68 | 69 | #MSearchBox .right { 70 | display:block; 71 | position:absolute; 72 | right:10px; 73 | top:0px; 74 | width:20px; 75 | height:19px; 76 | background:url('search_r.png') no-repeat; 77 | background-position:left; 78 | } 79 | 80 | #MSearchClose { 81 | display: none; 82 | position: absolute; 83 | top: 4px; 84 | background : none; 85 | border: none; 86 | margin: 0px 4px 0px 0px; 87 | padding: 0px 0px; 88 | outline: none; 89 | } 90 | 91 | .left #MSearchClose { 92 | left: 6px; 93 | } 94 | 95 | .right #MSearchClose { 96 | right: 2px; 97 | } 98 | 99 | .MSearchBoxActive #MSearchField { 100 | color: #000000; 101 | } 102 | 103 | /*---------------- Search filter selection */ 104 | 105 | #MSearchSelectWindow { 106 | display: none; 107 | position: absolute; 108 | left: 0; top: 0; 109 | border: 1px solid #90A5CE; 110 | background-color: #F9FAFC; 111 | z-index: 1; 112 | padding-top: 4px; 113 | padding-bottom: 4px; 114 | -moz-border-radius: 4px; 115 | -webkit-border-top-left-radius: 4px; 116 | -webkit-border-top-right-radius: 4px; 117 | -webkit-border-bottom-left-radius: 4px; 118 | -webkit-border-bottom-right-radius: 4px; 119 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 120 | } 121 | 122 | .SelectItem { 123 | font: 8pt Arial, Verdana, sans-serif; 124 | padding-left: 2px; 125 | padding-right: 12px; 126 | border: 0px; 127 | } 128 | 129 | span.SelectionMark { 130 | margin-right: 4px; 131 | font-family: monospace; 132 | outline-style: none; 133 | text-decoration: none; 134 | } 135 | 136 | a.SelectItem { 137 | display: block; 138 | outline-style: none; 139 | color: #000000; 140 | text-decoration: none; 141 | padding-left: 6px; 142 | padding-right: 12px; 143 | } 144 | 145 | a.SelectItem:focus, 146 | a.SelectItem:active { 147 | color: #000000; 148 | outline-style: none; 149 | text-decoration: none; 150 | } 151 | 152 | a.SelectItem:hover { 153 | color: #FFFFFF; 154 | background-color: #3D578C; 155 | outline-style: none; 156 | text-decoration: none; 157 | cursor: pointer; 158 | display: block; 159 | } 160 | 161 | /*---------------- Search results window */ 162 | 163 | iframe#MSearchResults { 164 | width: 60ex; 165 | height: 15em; 166 | } 167 | 168 | #MSearchResultsWindow { 169 | display: none; 170 | position: absolute; 171 | left: 0; top: 0; 172 | border: 1px solid #000; 173 | background-color: #EEF1F7; 174 | } 175 | 176 | /* ----------------------------------- */ 177 | 178 | 179 | #SRIndex { 180 | clear:both; 181 | padding-bottom: 15px; 182 | } 183 | 184 | .SREntry { 185 | font-size: 10pt; 186 | padding-left: 1ex; 187 | } 188 | 189 | .SRPage .SREntry { 190 | font-size: 8pt; 191 | padding: 1px 5px; 192 | } 193 | 194 | body.SRPage { 195 | margin: 5px 2px; 196 | } 197 | 198 | .SRChildren { 199 | padding-left: 3ex; padding-bottom: .5em 200 | } 201 | 202 | .SRPage .SRChildren { 203 | display: none; 204 | } 205 | 206 | .SRSymbol { 207 | font-weight: bold; 208 | color: #425E97; 209 | font-family: Arial, Verdana, sans-serif; 210 | text-decoration: none; 211 | outline: none; 212 | } 213 | 214 | a.SRScope { 215 | display: block; 216 | color: #425E97; 217 | font-family: Arial, Verdana, sans-serif; 218 | text-decoration: none; 219 | outline: none; 220 | } 221 | 222 | a.SRSymbol:focus, a.SRSymbol:active, 223 | a.SRScope:focus, a.SRScope:active { 224 | text-decoration: underline; 225 | } 226 | 227 | .SRPage .SRStatus { 228 | padding: 2px 5px; 229 | font-size: 8pt; 230 | font-style: italic; 231 | } 232 | 233 | .SRResult { 234 | display: none; 235 | } 236 | 237 | DIV.searchresults { 238 | margin-left: 10px; 239 | margin-right: 10px; 240 | } 241 | -------------------------------------------------------------------------------- /doc/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/search/search_l.png -------------------------------------------------------------------------------- /doc/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/search/search_m.png -------------------------------------------------------------------------------- /doc/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/search/search_r.png -------------------------------------------------------------------------------- /doc/html/search/variables_24.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
Loading...
10 |
11 |
12 | $avl_data_array 13 | AVLPacket 14 |
15 |
16 |
17 |
18 | $data 19 | AVLPacket 20 |
21 |
22 |
23 |
24 | $gps_element 25 | AVLData 26 |
27 |
28 |
29 |
30 | $io_element 31 | AVLData 32 |
33 |
34 |
Searching...
35 |
No Matches
36 | 42 |
43 | 44 | 45 | -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barryib/FMXXXX_Parser/f71c4795b9c89aacf7b642be110ffa6188d74671/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | } 7 | 8 | .tabs2 { 9 | font-size: 10px; 10 | } 11 | .tabs3 { 12 | font-size: 9px; 13 | } 14 | 15 | .tablist { 16 | margin: 0; 17 | padding: 0; 18 | display: table; 19 | } 20 | 21 | .tablist li { 22 | float: left; 23 | display: table-cell; 24 | background-image: url('tab_b.png'); 25 | line-height: 36px; 26 | list-style: none; 27 | } 28 | 29 | .tablist a { 30 | display: block; 31 | padding: 0 20px; 32 | font-weight: bold; 33 | background-image:url('tab_s.png'); 34 | background-repeat:no-repeat; 35 | background-position:right; 36 | color: #283A5D; 37 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 38 | text-decoration: none; 39 | outline: none; 40 | } 41 | 42 | .tabs3 .tablist a { 43 | padding: 0 10px; 44 | } 45 | 46 | .tablist a:hover { 47 | background-image: url('tab_h.png'); 48 | background-repeat:repeat-x; 49 | color: #fff; 50 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 51 | text-decoration: none; 52 | } 53 | 54 | .tablist li.current a { 55 | background-image: url('tab_a.png'); 56 | background-repeat:repeat-x; 57 | color: #fff; 58 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /doc/html/todo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FMXXXX Parser Documentation: Todo List 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 23 |
24 |
25 | 26 | 27 | 28 | 32 | 48 | 49 | 50 |
29 |
FMXXXX Parser Documentation 0.1
30 |
FM2100, FM2200, FM4100 and FM4200 Data Parser
31 |
33 |
34 | 35 | 39 | 43 | 44 | 45 | 46 |
47 |
51 |
52 |
53 |
54 | 58 |
60 |
61 |
62 | 65 |
66 |
67 |
68 |

Todo List

69 |
70 |
71 |

72 |
73 |
Class AVLData
74 |
Add getters to get Hex values (getHexVaribleName). Example: getHexTimestamp()
75 |
76 |

77 |
78 |
Global AVLData::getStrTimestamp ($date_format= '')
79 |

Find out a valid dateformat to put in default.

80 |

Return timestamp in accordance to the given date format.

81 |
82 |
83 |

84 |
85 |
Class AVLDataArray
86 |
Add getters to get Hex values (getHexVaribleName)
87 | Example: getHexDataLength()
88 |
89 |

90 |
91 |
Class AVLPacket
92 |
Add getters to get Hex values (getHexVaribleName)
93 | Example: getHexDataLength()
94 |
95 |

96 |
97 |
Class GPSElement
98 |
Add getters to get Hex values (getHexVaribleName). Example: getHexLatitude()
99 |
100 |

101 |
102 |
Global GPSElement::getLatitude ()
103 |

Binary conversion

104 |

Test on first bit

105 |

See two's compliment arithmetics

106 |
107 |
108 |

109 |
110 |
Global GPSElement::getLongitude ()
111 |

Binary conversion

112 |

Test on first bit

113 |

See two's compliment arithmetics

114 |
115 |
116 |

117 |
118 |
Global GPSElement::getSpeed ($unit= 'kmph')
119 |
Conversion in Km/h or Milles/h
120 |
121 |

122 |
123 |
Class IO
124 |
Add getters to get Hex values (getHexVaribleName) Example: getHexNbIO()
125 |
126 |

127 |
128 |
Class IOElement
129 |
Add getters to get Hex values (getHexVaribleName)
130 | Example: getHexEventID()
131 |
132 |
133 |
134 | 141 | 142 | 147 | 148 | 149 |
150 | 153 |
154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /test.php: -------------------------------------------------------------------------------- 1 | parse(); 7 | //$avl_datas[0]->gps_element->getLongitude(); 8 | echo '-- Parsed AVL Data Array --'; 9 | echo '
'; print_r($avl_data_array); echo '
'; 10 | ?> --------------------------------------------------------------------------------