Garmin Fleet Management Controller  2.19.0
Change Log

Changes made for PC App version 2.19.0:

- Updated: Product Id's for 2018-2019 Drive series devices and dezl 580/780 and dezlCam 785 devices
- Fixed: Product Id's for fleet 790 devices

Changes made for PC App version 2.18.0:

- Added: Support for setting serial port baud rate to 38400

Changes made for PC App version 2.17.0:

- Added: Support for a virtual serial port using TCP port 6000 on local host

Changes made for PC App version 2.16.0:

- Added: File Conversion Utility
- Added: Support for ETA mode (A623)
- Added: Added ability to copy text from Packet Log window
- Updated: Product Id's for DriveSmart series devices

Changes made for PC App version 2.15.0:

- Added: Support for Path Specific Route (PSR) file transfer
- Updated: The Waypoints List now updates if a waypoint was deleted on the device
- Fixed: Fixed shaping points with duplicate names and improved intermediate point naming in general
- Fixed: The Lane Departure Warning Notification and Incident Detection Notification radio buttons were incorrectly swapped

Changes made for PC App version 2.14.0:

- Added: Support for showing a Custom Form on device
- Added: Support for Dashcam Settings

Changes made for PC App version 2.13.0:

- Added: Client Data Tunnel (CDT) protocol support in the form of a chat client and a ping looper
- Added: Support for persisted Sensors
- Added: Support for managing simple stops from the Map view
- Added: Baud Rate Sync retry loop since not all devices use the same delay between sending Rate Change ACK and actually changing the rate
- Added: Support for HOS Setting Start Time of Day (A620)
- Updated: FMC Guide includes Sensors and Alerts
- Updated: App Icon is now more representative of the business
- Updated: Custom Forms library folders are removed when there are no other files after a form file is removed
- Fixed: Alerts (A617) input validation
- Fixed: Packet loss at 57600 when other end sends packets without waiting for ACKs

Changes made for PC App version 2.12.0:

- Added: Support for Alerts (A617)
- Added: Support for Sensors (A617)
- Added: Support for Stops with long names (A618)
- Added: Support for HOS 2.1 (A619)
- Updated: PVT is now disabled by default

Changes made for PC App version 2.11.0:

- Added: Support for new FMCSA rules (A615)
- Added: Support for AOBRD remote logoff (A615)
- Added: Support for IFTA data download and delete (A615)
- Added: Support for HOS Auto Status Update configuration (A615)
- Added: Support for toggling HOS 8 Hour Rule (A615)
- Added: Support for negotiating and discovering communication baud rate (A616)
- Added: Show Lat,Lon on inbound text message dialog

Changes made for PC App version 2.9.0:

- Added: Support for Custom Forms (A612)
- Added: Support for Custom Avoidances (A613)
- Added: Support for Path-specific Routing (A614)
- Fixed: More of the existing compiler warnings have been resolved
- Fixed: Waypoints not visually removed from screen when deleted
- Fixed: Long Text Message log point formatter
- Fixed: File transfer with filenames containing Unicode chars
- Fixed: Product names for some of the more recent Serial FMI devices

Changes made for PC App version 2.4.0:

- Added: Support for Long Text Messages Protocol (A611)
- Fixed: Application freeze when GPI file transfer terminates prematurely
- Fixed: Unicode characters appear correctly in the event log viewer

Changes made for PC App version 2.3.0:

- Added: Dialog to set the AOBRD odometer value
- Fixed: When a NAK packet was received in response to an ACK, the wrong packet was retransmitted
- Fixed: Send ACK and NAK packets with a 2 B payload to be consistent with FMI specification
- Fixed: Application did not build successfully with AOBRD support disabled
- Fixed: AOBRD data structures are now named consistently with FMI specification
- Fixed: Several character buffers were not guaranteed to be null-terminated
- Fixed: AOBRD event log fields for annotations and shipments are now read correctly
- Fixed: Most of the existing compiler warnings have been resolved
- Updated: Changed event log date format from MM/DD/YYYY to YYYY-MM-DD. Old log files may be read incorrectly in certain locales.

Changes made for PC App version 2.2.0:

- Updated: Protocol for updating existing driver profile on device was refactored
- Added: Support for Driver Deleted Shipment event log
- Added: Timestamp included with Shipment add and modified log event structure
- Added: Original status change event is updated with verification timestamp when log verification event is received
- Updated: Extended Status Log download effective window from 8 to 14 days
- Updated: Added start and end timestamps to Annotation log event structure
- Added: Annotation download to FMI device (data is pulled from event log file)
- Added: Button to send Remote Reboot command to FMI device
- Updated: Added passenger swap status bytes to Status Change log events
- Updated: Log parser shows error code and record count for File Transfer Start and End packets

Changes made for PC App version 2.1.0:

- Added: Version number for PC App, which is separate from FMI version (now 2.70), to About dialog
- Added: HOS protocol version number to About dialog
- Added: Support for AOBRD drivers, duty status and shipments (A610)
- Fixed: Delete canned response always deleted the first in the list, regardless of the selection
- Fixed: Deserialization of sent canned responses data file did not match the structure of serialization

Changes made from version 2.60 to 2.70:

- Added: Support for FMI Speed Limit Alerts A608 protocol
- Added: Product ID to product name resolution for new products

Changes made from version 2.51 to 2.60:

- Fixed: Padded fmi_safe_mode_receipt_data_type
- Fixed: Fix sending correct stop status to move stop

Changes made from version 2.50 to 2.51 (2.60 Beta):

- Added: Support for FMI Safe Mode A606 protocol

Changes made from version 2.41 to 2.50:

- Fixed: Canned response messages did not load correctly
- Improved: Added MessageId class to encapsulate message ID operations
- Improved: Use FileBackedMap for sent canned response messages
- Added: Semi-circle position to A607 client to server text messages

Changes made from version 2.10 to 2.41 (2.50 Beta):

- Fixed: Clear Log button in Log Viewer dialog did not clear the currently selected packet.
- Fixed: Crash when receiving a NAK when there are no packets in the tx queue.  (This can occur if an ACK
         was not received properly)
- Fixed: Computation of Garmin time was off by a day.
- Improved: Divided the communication controller into smaller classes for ease of
            understanding the relevant concepts, and cleaned up identifiers and file names for consistency.
- Improved: All packets are now fully parsed in the log viewer.
- Added: Support for FMI 2.5 protocols (A607/D607).
- Various other fixes and improvements.

Changes made from version 2.00 to 2.10:

- Fixed: Enable could be sent multiple times after a timeout, causing the original packet to be lost.
- Fixed: Release executable would not load due to missing DLLs if Visual Studio runtime is not installed,
         for example on a clean installation of Windows Vista.
- Fixed: Crash when sending a canned response text message.
- Fixed: Log files with lines longer than 529 bytes were not parsed properly.
- Fixed: Tab order and dialog title on New Stop dialog were incorrect.
- Fixed: Incorrect threshold angles were used to determine the cardinal direction.
- Fixed: GPI versions were interpreted by the app as strings instead of arbitrary bytes.
- Fixed: Resizing the log viewer caused some controls to be moved to incorrect locations.
- Fixed: Unicode characters in stops and in saved data were not encoded properly.
- Fixed: Crash in log viewer when the log is empty and the Find button is clicked.
- Fixed: Crash when receiving a text message ack if the response text is longer than 34 characters.
- Added: The periodic ETA request can now be turned on or off.
- Added: A000 (Legacy) product information protocol to get product ID and software version in legacy mode.
- Added: UNICODE_SUPPORT and MINIMAL_ENABLE preprocessor defines.
- Added: User can now specify stop ID for A603 stops.
- Improved: The Select Port dialog now shows all available COM ports.
- Improved: Increased height of dropdown boxes in New Message and Select Port dialogs for usability.
- Improved: Known product IDs are now displayed with a descriptive name.
- Improved: Changed from a timer-driven to an event-driven architecture using Windows messages.
- Improved: Cleaned up the layout of the New Stop dialog box and improved the description of each protocol.
- Improved: In the log viewer, the raw payload can be shown as ASCII as well as hex for easier reading.  To enable,
            change LOG_SHOW_RAW_ASCII to TRUE in fmi.h.
- Improved: File and directory names longer than 200 characters are handled better.
- Improved: The Log Viewer now displays the raw packet (10 xx ... xx 10 03) instead of just the FMI payload.
- Improved: Performance is improved when selecting packets from large log files.
- Improved: The default log file (fmi_pc_app.log) is not cleared until a com port is selected,
            making it easier to view the log from the previous execution of the program.
- Technical: All documentation is now generated by Doxygen.
- Technical: Corrected type of message_type when sending text messages using A604 protocols.
- Technical: Several class names, method names, and variable names have been renamed for clarity and consistency.
- Technical: Removed unnecessary code from UTIL_convert_time_type() and other functions.

Changes made from version 1.35 to 2.00:

- Added: support for A605 protocol
- Added: support for legacy stop and legacy text message protocols
- Fixed: PVT data in the log was not formatted correctly
- Improved: display of GPI file progress
- Improved: Ping dialog for better responsiveness and to display the time of the last successful ping.
- Added: project and solution configurations to build app for any protocol support level.

Changes made from version 1.30 to 1.35:

- Improved: When a canned response/canned message/driver status is selected, the data will be filled in to
    the corresponding field for easy editing
- Added: Transmitted FMI packets are now able to be resent directly from the log

Changes made from version 1.20 to 1.30:

- Fixed: Conversion error from UTC to local time (for example, 02:00 UTC displayed as -2:00 AM )
- Fixed: Opening files outside program directory changed current directory for all files
- Improved: Limit open file dialog boxes to certain file types (i.e., txt or gpi )
- Improved: Renamed structs to be more consistent with the spec
- Improved: Warn users that no text message statuses will be transmitted if they don't supply an ID
- Added: ability to cancel a port selection (2 cases):
    -# if a connection has not been made, the program will terminate
    -# if a connection is already up, the select port dialog just closes
- Changes made to the log:
    - Added: search highlighting to log
    - Added: interpreted data to packet details (parse data for individual FMI packets)
    - Fixed: DLE stuffing error when displaying raw data in log
    - Improved: It is now possible to open a log file on start of program without connecting to a unit
    - Improved: Changed layout and resizing functionality

Changes made from version 1.10 to 1.20:

- Improved: Display all times in 12-hour local format instead of UTC
- Improved: Rework logging mechanism and display:
    - reduced file size by removing parsing from save file (only save direction, time and raw data)
    - log is displayed as a list of packet names with details showing only if clicked
    - log dialog is now resizable
    - auto scroll is more intuitive (on if user scrolls to bottom)
    - added previous log file viewing capability
    - added ability to save log file as a different name to preserve its contents
    - added ability to clear the packet log
    - added searching capability to log
    - packet transaction time is displayed as an actual time instead of an offset
- Improved: All distances above 1000m are displayed in km
- Improved: Added active button logic so dialogs respond intuitively to the 'Enter' key.  For example,
     if user pressed 'Enter' while focus is on a text entry box, the corresponding button is pressed.
- Updated packet structures and logic for changes to protocols in FMI Spec 001-00096-00 Rev. C

Changes made from version 1.00 to 1.10:

- Integrated the packet log into the application (text file still available)
- Enhanced data structure efficiency by switching most to maps
- Added functionality to close old text message status dialogs when a new status is received
- Added ability to change the Com Port after a communication error
- Added support for correct ACK Text Message Protocol
- Added a time stamp to each packet in the log
- Other minor corrections and improvements