18 #import <msxml6.dll> named_guids
22 #if( FMI_SUPPORT_A613 ) 24 #if( FMI_SUPPORT_A614 ) 25 #define SEND_ROUTE_TEMP_FILE _T( "send_route_temp.bin" ) 40 : CDialog( CMapViewerDlg::IDD, pParent ),
59 CDialog::DoDataExchange(pDX);
71 CDialog::OnInitDialog();
100 CDialog::OnSize( aType, aClientWidth, aClientHeight );
102 if ( NULL == m_browser.GetSafeHwnd() )
110 GetClientRect( &rect );
112 m_browser.MoveWindow( rect.left, rect.top, rect.Width(), rect.Height() );
122 _variant_t flags( 0L, VT_I4 );
123 _variant_t target_frame_name(
"" );
124 _variant_t post_data(
"" );
125 _variant_t headers(
"" );
129 if ( !catalog.Open( _T(
"map-viewer\\catalog.xml" ), CFile::modeRead, &pEx ) )
131 if ( !catalog.Open( _T(
"map-viewer\\catalog.xml" ), CFile::modeCreate | CFile::modeWrite, &pEx ) )
133 m_browser.Navigate( _T(
"about:blank" ), &flags, &target_frame_name, &post_data, &headers );
135 pEx.GetErrorMessage( msg, 256 );
136 m_browser.WriteContent( CString( msg ) );
141 write( &catalog,
"<?xml version=\"1.0\" encoding=\"utf-8\"?><?xml-stylesheet type=\"text/xsl\" href=\"catalog.xsl\"?><catalog></catalog>\r\n" );
143 CString url(
"file:///" );
144 url += catalog.GetFilePath();
148 m_browser.Navigate( url, &flags, &target_frame_name, &post_data, &headers );
159 void
CMapViewerDlg::OnBeforeNavigate2(LPDISPATCH, VARIANT* URL, VARIANT*, VARIANT*, VARIANT*, VARIANT*, BOOL* Cancel)
161 if ( URL->vt != VT_BSTR )
166 CString urlStr = URL->bstrVal;
167 if ( urlStr.Find( _T(
"app:") ) == 0 )
172 CString command = urlStr.Right( urlStr.GetLength() - (int) strlen(
"app:" ) );
173 CString procedure = command.Left( command.Find(
'(' ) );
174 CString args = command.Mid( procedure.GetLength() + 1, command.ReverseFind(
')') - ( procedure.GetLength() + 1 ) );
175 CStringArray arguments;
178 CString token = args.Tokenize( _T(
"," ), curPos );
179 while ( token != _T(
"" ) )
181 if ( 0 == token.Find(
'"' ) )
183 if ( token.GetLength()-1 == token.ReverseFind(
'"' ) )
185 token = token.Mid( 1, token.GetLength() - 2 );
190 token += args.Tokenize( _T(
"," ), curPos );
194 arguments.Add( token );
195 token = args.Tokenize( _T(
"," ), curPos );
198 TRACE2(
"app command '%s' executed with args '%s'\r\n", procedure, args );
200 if ( procedure == _T(
"addAvoidanceToCatalog" ) )
202 if ( arguments.GetCount() < 7 )
204 MessageBox( _T(
"Insufficient arguments"), _T(
"Add Region" ), MB_ICONERROR );
207 addAvoidanceToCatalog(
208 _ttoi( arguments[0] ),
211 _ttol( arguments[3] ),
212 _ttol( arguments[4] ),
213 _ttol( arguments[5] ),
214 _ttol( arguments[6] )
217 else if ( procedure == _T(
"removeAvoidanceFromCatalog" ) )
219 BOOL removed = removeAvoidanceFromCatalog( _ttoi( arguments[0] ) );
220 if ( arguments.GetCount() > 1 )
222 CStringArray callbackArgs;
223 callbackArgs.Add( removed ? _T(
"true" ) : _T(
"false" ) );
224 callbackArgs.Add( arguments[0] );
225 m_browser.InvokeScript( arguments[1], &callbackArgs );
228 else if ( procedure == _T(
"sendAvoidanceToDevice" ) )
230 if ( arguments.GetCount() < 6 )
232 MessageBox( _T(
"Insufficient arguments"), _T(
"Send to Device" ), MB_ICONERROR );
235 BOOL sent = sendAvoidanceToDevice(
236 _ttoi( arguments[0] ),
238 _ttol( arguments[2] ),
239 _ttol( arguments[3] ),
240 _ttol( arguments[4] ),
241 _ttol( arguments[5] )
243 if ( arguments.GetCount() > 6 )
245 CStringArray callbackArgs;
246 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
247 m_browser.InvokeScript( arguments[6], &callbackArgs);
250 else if ( procedure == _T(
"deleteAvoidanceFromDevice" ) )
252 BOOL sent = deleteAvoidanceFromDevice( _ttoi( arguments[0] ) );
253 if ( arguments.GetCount() > 1 )
255 CStringArray callbackArgs;
256 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
257 m_browser.InvokeScript( arguments[1], &callbackArgs);
260 else if ( procedure == _T(
"enableAvoidanceOnDevice" ) )
262 BOOL sent = setAvoidanceEnabled( _ttoi( arguments[0] ),
TRUE );
263 if ( arguments.GetCount() > 1 )
265 CStringArray callbackArgs;
266 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
267 m_browser.InvokeScript( arguments[1], &callbackArgs);
270 else if ( procedure == _T(
"disableAvoidanceOnDevice" ) )
272 BOOL sent = setAvoidanceEnabled( _ttoi( arguments[0] ),
FALSE );
273 if ( arguments.GetCount() > 1 )
275 CStringArray callbackArgs;
276 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
277 m_browser.InvokeScript( arguments[1], &callbackArgs);
280 else if ( procedure == _T(
"addStopToCatalog" ) )
282 addStopToCatalog( arguments );
284 #if( FMI_SUPPORT_A614 ) 285 else if ( procedure == _T(
"beginAddRouteToCatalog" ) )
287 m_addRouteArguments.RemoveAll();
288 m_addRouteArguments.Append( arguments );
290 else if ( procedure == _T(
"continueAddRouteToCatalog" ) )
292 m_addRouteArguments.Append( arguments );
294 else if ( procedure == _T(
"endAddRouteToCatalog" ) )
296 if ( removeRouteFromCatalog( _ttoi( m_addRouteArguments[0] ) ) )
298 addRouteToCatalog( m_addRouteArguments );
300 m_addRouteArguments.RemoveAll();
302 else if ( procedure == _T(
"removeRouteFromCatalog" ) )
304 BOOL removed = removeRouteFromCatalog( _ttoi( arguments[0] ) );
305 if ( arguments.GetCount() > 1 )
307 CStringArray callbackArgs;
308 callbackArgs.Add( removed ? _T(
"true" ) : _T(
"false" ) );
309 callbackArgs.Add( arguments[0] );
310 m_browser.InvokeScript( arguments[1], &callbackArgs );
313 else if ( procedure == _T(
"sendRouteToDevice" ) )
315 if ( arguments.GetCount() == 1 )
317 BOOL sent = sendRouteToDevice( _ttoi( arguments[0] ) );
320 else if ( procedure == _T(
"deleteRouteFromDevice" ) )
322 if ( arguments.GetCount() == 1 )
324 BOOL sent = deleteRouteFromDevice( _ttoi( arguments[0] ) );
325 if ( arguments.GetCount() > 1 )
327 CStringArray callbackArgs;
328 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
329 m_browser.InvokeScript( arguments[1], &callbackArgs);
333 else if ( procedure == _T(
"activateStopOnDevice" ) )
335 if ( arguments.GetCount() == 1 )
337 BOOL sent = activateStopOnDevice( _ttoi( arguments[0] ) );
338 if ( arguments.GetCount() > 1 )
340 CStringArray callbackArgs;
341 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
342 m_browser.InvokeScript( arguments[1], &callbackArgs);
346 else if ( procedure == _T(
"completeStopOnDevice" ) )
348 if ( arguments.GetCount() == 1 )
350 BOOL sent = completeStopOnDevice( _ttoi( arguments[0] ) );
351 if ( arguments.GetCount() > 1 )
353 CStringArray callbackArgs;
354 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
355 m_browser.InvokeScript( arguments[1], &callbackArgs);
359 else if ( procedure == _T(
"moveStopOnDevice" ) )
361 if ( arguments.GetCount() == 2 )
363 BOOL sent = moveStopOnDevice( _ttoi( arguments[0] ), _ttoi( arguments[1] ) );
364 if ( arguments.GetCount() > 2 )
366 CStringArray callbackArgs;
367 callbackArgs.Add( sent ? _T(
"true" ) : _T(
"false" ) );
368 m_browser.InvokeScript( arguments[2], &callbackArgs);
385 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
386 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
387 doc->async = VARIANT_FALSE;
388 doc->validateOnParse = VARIANT_FALSE;
389 doc->resolveExternals = VARIANT_TRUE;
391 if ( VARIANT_TRUE == doc->load( _variant_t( documentPath ) ) )
394 MSXML2::IXMLDOMElementPtr newRegion = doc->createElement( _bstr_t(
"region" ) );
395 if ( 0 != _tcslen( description ) )
397 MSXML2::IXMLDOMNodePtr descr = doc->createElement( _bstr_t(
"description" ) );
398 descr->put_text( _bstr_t( description ) );
399 newRegion->appendChild( descr );
401 newRegion->setAttribute( _bstr_t(
"id" ), _variant_t( itemId ) );
402 newRegion->setAttribute( _bstr_t(
"name" ), _variant_t( name ) );
403 newRegion->setAttribute( _bstr_t(
"north" ), _variant_t( north ) );
404 newRegion->setAttribute( _bstr_t(
"east" ), _variant_t( east ) );
405 newRegion->setAttribute( _bstr_t(
"south" ), _variant_t( south ) );
406 newRegion->setAttribute( _bstr_t(
"west" ), _variant_t( west ) );
407 doc->GetdocumentElement()->appendChild( newRegion );
410 HRESULT hr = doc->save( _variant_t( documentPath ) );
411 if ( SUCCEEDED( hr ) )
429 path.Format( _T(
"region[@id=%d]" ),
id );
430 return removeItemsFromCatalog( path );
442 memset( &message, 0,
sizeof( message ) );
453 WideCharToMultiByte( mCom.mClientCodepage, 0, name, -1, message.
name,
sizeof( message.
name ) - 1, NULL, NULL );
454 message.
name[
sizeof( message.
name ) - 1] =
'\0';
468 memset( &message, 0,
sizeof( message ) );
484 memset( &message, 0,
sizeof( message ) );
503 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
504 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
505 doc->async = VARIANT_FALSE;
506 doc->validateOnParse = VARIANT_FALSE;
507 doc->resolveExternals = VARIANT_TRUE;
509 if ( VARIANT_TRUE == doc->load( _variant_t( documentPath ) ) )
512 MSXML2::IXMLDOMElementPtr newItem = doc->createElement( _bstr_t(
"route" ) );
513 newItem->setAttribute( _bstr_t(
"id" ), _variant_t( _ttoi( args[0] ) ) );
514 newItem->setAttribute( _bstr_t(
"name" ), _variant_t( args[1] ) );
515 if ( 0 != _tcslen( args[2] ) )
517 MSXML2::IXMLDOMElementPtr descr = doc->createElement( _bstr_t(
"description" ) );
518 descr->put_text( _bstr_t( args[2] ) );
519 newItem->appendChild( descr );
521 newItem->setAttribute( _bstr_t(
"end-lat" ), _variant_t( _ttol( args[3] ) ) );
522 newItem->setAttribute( _bstr_t(
"end-lon" ), _variant_t( _ttol( args[4] ) ) );
524 doc->GetdocumentElement()->appendChild( newItem );
526 StopListItem& stopListItem = mCom.mA603Stops.get( newItem->getAttribute(
"id" ) );
531 mCom.mA603Stops.put( stopListItem );
534 HRESULT hr = doc->save( _variant_t( documentPath ) );
535 if ( SUCCEEDED( hr ) )
553 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
554 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
555 doc->async = VARIANT_FALSE;
556 doc->validateOnParse = VARIANT_FALSE;
557 doc->resolveExternals = VARIANT_TRUE;
559 if ( VARIANT_TRUE != doc->load( _variant_t( documentPath ) ) )
565 selector.Format( _T(
"route[@id=%d]" ), itemId );
566 MSXML2::IXMLDOMNodeListPtr nodes = doc->GetdocumentElement()->selectNodes( _bstr_t( selector ) );
567 if ( 0 == nodes->Getlength() )
572 MSXML2::IXMLDOMElementPtr stopNode = nodes->Getitem( 0 );
574 CString nameString = stopNode->getAttribute(
"name" );
575 int nameLen = WideCharToMultiByte( CP_UTF8, 0, nameString.GetBuffer(), -1, NULL, NULL, NULL, NULL );
576 char * name =
new char[nameLen];
577 WideCharToMultiByte( CP_UTF8, 0, nameString.GetBuffer(), -1, name, nameLen, NULL, NULL );
578 uint32 unique_id = itemId;
580 double lat = stopNode->getAttribute( _T(
"end-lat" ) );
581 double lon = stopNode->getAttribute( _T(
"end-lon" ) );
583 mCom.sendA603Stop( lat, lon, name, unique_id );
588 #if( FMI_SUPPORT_A614 ) 598 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
599 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
600 doc->async = VARIANT_FALSE;
601 doc->validateOnParse = VARIANT_FALSE;
602 doc->resolveExternals = VARIANT_TRUE;
604 if ( VARIANT_TRUE == doc->load( _variant_t( documentPath ) ) )
607 MSXML2::IXMLDOMElementPtr newItem = doc->createElement( _bstr_t(
"route" ) );
608 newItem->setAttribute( _bstr_t(
"id" ), _variant_t( _ttoi( args[0] ) ) );
609 newItem->setAttribute( _bstr_t(
"name" ), _variant_t( args[1] ) );
610 if ( 0 != _tcslen( args[2] ) )
612 MSXML2::IXMLDOMElementPtr descr = doc->createElement( _bstr_t(
"description" ) );
613 descr->put_text( _bstr_t( args[2] ) );
614 newItem->appendChild( descr );
616 newItem->setAttribute( _bstr_t(
"end-lat" ), _variant_t( _ttol( args[3] ) ) );
617 newItem->setAttribute( _bstr_t(
"end-lon" ), _variant_t( _ttol( args[4] ) ) );
618 for (
int i=5; i+4<=args.GetCount(); i+=4 )
620 MSXML2::IXMLDOMElementPtr intermediate = doc->createElement( 0 == _ttoi( args[i] ) ? _bstr_t(
"intermediate" ) : _bstr_t(
"shaping" ) );
621 intermediate->setAttribute( _bstr_t(
"name" ), _variant_t( args[i+1] ) );
622 intermediate->setAttribute( _bstr_t(
"lat" ), _variant_t( _ttol( args[i+2] ) ) );
623 intermediate->setAttribute( _bstr_t(
"lon" ), _variant_t( _ttol( args[i+3] ) ) );
624 newItem->appendChild( intermediate );
626 doc->GetdocumentElement()->appendChild( newItem );
629 HRESULT hr = doc->save( _variant_t( documentPath ) );
630 if ( SUCCEEDED( hr ) )
648 path.Format( _T(
"route[@id=%d]" ),
id );
649 return removeItemsFromCatalog( path );
660 char file[MAX_PATH+1];
661 char versionString[35];
665 memset( version, 0,
sizeof( version ) );
666 WideCharToMultiByte( mCom.mClientCodepage, 0, _T(
"1" ), -1, versionString, 34, NULL, NULL );
667 versionString[34] =
'\0';
668 versionLength = (
uint8)
minval( 16, strlen( versionString ) );
669 memmove( version, versionString, versionLength );
672 file[MAX_PATH] =
'\0';
675 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
676 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
677 doc->async = VARIANT_FALSE;
678 doc->validateOnParse = VARIANT_FALSE;
679 doc->resolveExternals = VARIANT_TRUE;
681 if ( VARIANT_TRUE != doc->load( _variant_t( documentPath ) ) )
687 selector.Format( _T(
"route[@id=%d]" ), itemId );
688 MSXML2::IXMLDOMNodeListPtr nodes = doc->GetdocumentElement()->selectNodes( _bstr_t( selector ) );
689 if ( 0 == nodes->Getlength() )
693 MSXML2::IXMLDOMElementPtr routeNode = nodes->Getitem( 0 );
701 CString nameString = routeNode->getAttribute(
"name" );
702 CString stopText = nameString;
703 MSXML2::IXMLDOMNodeListPtr childNodes = routeNode->GetchildNodes();
705 if( 1 == childNodes->Getlength() )
707 if( childNodes->Getitem( 0 )->GetnodeName() == _bstr_t(
"description" ) )
709 return sendStopToDevice( itemId );
712 else if ( 0 == childNodes->Getlength() )
714 return sendStopToDevice( itemId );
720 uint32 unique_id = itemId;
722 write( &tmpFile,
"PSR+" );
723 tmpFile.Write( (
const void* ) &ver,
sizeof( ver ) );
727 for (
int i=0, count = childNodes->Getlength(); i<count; i++ )
729 MSXML2::IXMLDOMElementPtr childNode = childNodes->Getitem( i );
730 if ( childNode->GetnodeName() == _bstr_t(
"description" ) )
732 nameString = stopText = (LPCTSTR) childNode->Gettext();
736 tmpFile.Write( (
const void* ) &origination_time,
sizeof( origination_time ) );
737 tmpFile.Write( (
const void* ) &unique_id,
sizeof( unique_id ) );
738 write( &tmpFile, nameString, 200 );
743 for (
int i=childNodes->Getlength() - 1; i>=0; i-- )
745 MSXML2::IXMLDOMElementPtr childNode = childNodes->Getitem( i );
746 if ( childNode->GetnodeName() == _bstr_t(
"intermediate" ) )
748 pos.
lat = childNode->getAttribute( _T(
"lat" ) );
749 pos.
lon = childNode->getAttribute( _T(
"lon" ) );
750 tmpFile.Write( (
const void *) &pos.
lat,
sizeof( pos.
lat ) );
751 tmpFile.Write( (
const void *) &pos.
lon,
sizeof( pos.
lon ) );
752 tmpFile.Write(
"\0", 1 );
753 nameString = childNode->getAttribute( _T(
"name" ) );
754 write( &tmpFile, nameString, 40 );
756 else if ( childNode->GetnodeName() == _bstr_t(
"shaping" ) )
758 pos.
lat = childNode->getAttribute( _T(
"lat" ) );
759 pos.
lon = childNode->getAttribute( _T(
"lon" ) );
760 tmpFile.Write( (
const void *) &pos.
lat,
sizeof( pos.
lat ) );
761 tmpFile.Write( (
const void *) &pos.
lon,
sizeof( pos.
lon ) );
762 tmpFile.Write( (
const void* ) &isShaping, 1 );
767 pos.
lat = routeNode->getAttribute( _T(
"end-lat" ) );
768 pos.
lon = routeNode->getAttribute( _T(
"end-lon" ) );
769 tmpFile.Write( (
const void *) &pos.
lat,
sizeof( pos.
lat ) );
770 tmpFile.Write( (
const void *) &pos.
lon,
sizeof( pos.
lon ) );
771 tmpFile.Write(
"\0", 1 );
772 nameString = routeNode->getAttribute( _T(
"name" ) );
773 write( &tmpFile, nameString, 40 );
783 StopListItem& stopListItem = mCom.mA603Stops.get( itemId );
787 mCom.mA603Stops.put( stopListItem );
790 UINT sendResult = sending_dlg.DoModal();
792 if ( IDOK != sendResult )
794 mCom.mA603Stops.remove( itemId );
851 CString documentPath( _T(
"map-viewer\\catalog.xml" ) );
852 MSXML2::IXMLDOMDocument2Ptr doc( MSXML2::CLSID_DOMDocument60 );
853 doc->async = VARIANT_FALSE;
854 doc->validateOnParse = VARIANT_FALSE;
855 doc->resolveExternals = VARIANT_TRUE;
857 if ( VARIANT_TRUE == doc->load( _variant_t( documentPath ) ) )
860 MSXML2::IXMLDOMNodeListPtr nodes = doc->GetdocumentElement()->selectNodes( _bstr_t( selector ) );
861 for (
int i=nodes->Getlength()-1; i>=0; i-- )
863 doc->GetdocumentElement()->removeChild( nodes->Getitem( i ) );
867 HRESULT hr = doc->save( _variant_t( documentPath ) );
868 if ( SUCCEEDED( hr ) )
Modal dialog displaying the status of the file transfer.
BOOL addStopToCatalog(CStringArray &args)
This function adds an item to the catalog.
Data type for Custom Avoidance Enable/Disable (0X1234) from server to client.
Browser-based container for listing the Custom Avoidances library.
#define SEND_ROUTE_TEMP_FILE
BOOL OnInitDialog()
This function is called when the window is created.
BOOL completeStopOnDevice(int itemId)
This function marks the specified route as done on the device.
void setValid(BOOL aValid=TRUE)
Set this item as valid.
Data structure to hold details of an A603 stop that the server needs to keep.
afx_msg void OnSize(UINT aType, int aClientWidth, int aClientHeight)
Called after the dialog is resized; repositions the contents of the display.
Data type for Custom Avoidance Delete (0X1232) from server to client.
virtual ~CMapViewerDlg()
Destructor.
BOOL sendAvoidanceToDevice(int itemId, LPCTSTR name, long north, long east, long south, long west)
This function sends the specified region to the device.
BOOL addAvoidanceToCatalog(int itemId, LPCTSTR name, LPCTSTR description, long north, long east, long south, long west)
This function adds an item to the catalog.
sint32 lat
latitude in semicircles
void setCurrentName(CString aName)
Set the current name of the stop.
BOOL addRouteToCatalog(CStringArray &args)
This function adds an item to the catalog.
#define minval(_x, _y)
The smaller of _x and _y.
#define IDC_EMBEDDED_BROWSER
Serial communication controller for Garmin and FMI packets.
BOOL removeRouteFromCatalog(int itemId)
This function removes specific routes from the catalog.
Data type for Custom Avoidance Packet ID (0X1230) from server to client.
BOOL deleteAvoidanceFromDevice(int itemId)
This function deletes the specified region from the device.
virtual void DoDataExchange(CDataExchange *pDX)
Perform dialog data exchange and validation.
unsigned short int uint16
16-bit unsigned integer
BOOL moveStopOnDevice(int itemId, short newPosition)
This function repositions the specified stop on the device.
void OnBeforeNavigate2(LPDISPATCH pDisp, VARIANT *URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers, BOOL *Cancel)
This catches navigation attempts for the purpose of handling application-specific navigation...
BOOL removeAvoidanceFromCatalog(int itemId)
This function removes specific regions from the catalog.
BOOL deleteRouteFromDevice(int itemId)
This function deletes the specified route from the device.
Indicates a latitude and longitude in semicircles.
void setStopStatus(stop_status_status_type aStatus)
Set the stop status.
static CString URLDecode(CString sIn)
translate escape sequences into their original characters
unsigned char uint8
8-bit unsigned integer
time_type UTIL_get_current_garmin_time()
Get the current server time in Garmin format.
BOOL removeItemsFromCatalog(LPCTSTR selector)
This function removes specific routes from the catalog.
BOOL sendRouteToDevice(int itemId)
This function sends the specified route to the device.
unsigned long int uint32
32-bit unsigned integer
void refreshCatalog()
This function is called to reload the catalog document.
sint32 lon
longitude in semicircles
uint32 time_type
Absolute time (number of seconds since 12/31/1989 12:00 am UTC)
BOOL setAvoidanceEnabled(int itemId, BOOL enabled=TRUE)
This function toggles enabled for the region on the device.
BOOL activateStopOnDevice(int itemId)
This function activates the specified route on the device.
BOOL sendStopToDevice(int itemId)
This function sends the specified stop to the device.