Garmin Fleet Management Controller  2.19.0
FmiLogParser Class Reference

LogParser for packets sent/received by the FmiApplicationLayer. More...

#include <FmiLogParser.h>

+ Inheritance diagram for FmiLogParser:

Public Member Functions

 FmiLogParser ()
 Constructor. More...
 
virtual ~FmiLogParser ()
 Destructor. More...
 
CString getFilename ()
 Get the path of the log file being parsed. More...
 
int getLineCount () const
 Return the number of lines parsed so far. More...
 
virtual CString getPacketDetail (int aLineNumber)
 Print a particular packet to the packet view. More...
 
virtual CString getPacketTitle (int aLineNumber)
 Construct a packet title for the given log logLine. More...
 
void init (const CString &aFilename)
 Initialize the LogParser to read a particular file. More...
 
BOOL readLog ()
 Reads from the log file starting from the end of the last read position and adds it to the display. More...
 
virtual void resendPacket (int aLineNumber)
 Resend a packet to the client. More...
 
void reset ()
 Reset the log parser to initial state. More...
 
void setRenderWidth (int aWidth)
 Set the number of pixels available for rendering text. More...
 

Protected Member Functions

CString formatMultiLineHex (int aSize, uint8 *aData)
 Format bytes into a multi logLine hex dump format. More...
 

Protected Attributes

BOOL mIsMorning
 If TRUE, the log was started in the mIsMorning (computed from log header) More...
 
int mLineCount
 Number of lines that have been parsed so far. More...
 
std::map< int, std::streamoff > mLineOffset
 Map of log items to the offset in the log file where the text line starts. More...
 
CString mLogFilename
 File name of the currently open log file. More...
 
int mLogStartHr
 Hour of the time when the log file was created (from log header) More...
 
int mLogStartMillis
 Milliseconds of the time when the log file was created (from log header) More...
 
int mLogStartMin
 Minutes of the time when the log file was created (from log header) More...
 
int mLogStartSec
 Seconds of the time when the log file was created (from log header) More...
 
std::streamoff mParseEndOffset
 Offset of the log file where parsing stopped. More...
 
int mRenderWidth
 Available width in pixels to render the packet detail. More...
 

Private Member Functions

void appendIFTADataModResultCode (CString &packet, uint8 result_code)
 
CString formatBoolean (boolean aBool)
 Translate a boolean to an equivalent string. More...
 
CString formatFmiPacket (BOOL transmitted, uint16 aFmiPacketId, uint8 *aFmiPayload, uint8 aFmiPayloadSize)
 Interpret an FMI packet; appending the information to the text in the packet window. More...
 
CString formatHosartPacket (BOOL transmitted, uint16 aPacketId, uint8 *aPayload, uint8 aPayloadSize)
 Interpret an HOSART packet; appending the information to the text in the packet window. More...
 
CString formatLatitude (sint32 aSemicircles)
 Format latitude. More...
 
CString formatLongitude (sint32 aSemicircles)
 Format longitude. More...
 
CString formatMessageId (const uint8 *aMessageId, uint8 aMessageIdSize)
 Format a message ID in hex, with up to 8 bytes per line. More...
 
CString formatText (const char *aText, int aMaxLength)
 Format a text string, with up to 29 characters per line. More...
 
CString formatTime (time_type aTimestamp)
 Format Garmin UTC timestamp. More...
 
CString getFmiPacketName (uint16 aPacketId)
 Translate an FMI packet ID into a string describing the packet name. More...
 
CString getGarminCommandName (uint16 aCommandId)
 Translate a Garmin command ID into a string describing the command name. More...
 
CString getGarminPacketName (uint8 aPacketId)
 Translate a Garmin packet ID into a string describing the packet name. More...
 
CString getHosartPacketName (uint16 aPacketId)
 
void initFmiFeatureNames ()
 Initialize the map of FMI packet IDs to text strings. More...
 
void initFmiPacketNames ()
 Initialize the map of FMI packet IDs to text strings. More...
 
void initGarminCommandNames ()
 Initialize the map of Garmin command IDs to text strings. More...
 
void initGarminPacketNames ()
 Initialize the map of Garmin packet IDs to text strings. More...
 

Private Attributes

std::map< uint16, CString > mFmiFeatureNames
 Map of FMI feature IDs to display names for formatting. More...
 
std::map< uint16, CString > mFmiPacketNames
 Map of FMI packet IDs to display names for formatting. More...
 
std::map< uint16, CString > mGarminCommandNames
 Map of Garmin command IDs to display names for formatting. More...
 
std::map< uint8, CString > mGarminPacketNames
 Map of Garmin packet IDs to display names for formatting. More...
 
std::map< uint16, CString > mHosartPacketNames
 Map of HOSART packet IDs to display names for formatting. More...
 

Detailed Description

LogParser for packets sent/received by the FmiApplicationLayer.

Parses and resends FMI packets, plus PVT and the command packets defined in the FMI Interface Control Specification.

Definition at line 22 of file FmiLogParser.h.

Constructor & Destructor Documentation

FmiLogParser::FmiLogParser ( )

Constructor.

Initialize the maps used to format packet and command IDs

Definition at line 42 of file FmiLogParser.cpp.

FmiLogParser::~FmiLogParser ( )
virtual

Destructor.

Definition at line 64 of file FmiLogParser.cpp.

References getPacketTitle().

Member Function Documentation

CString FmiLogParser::formatBoolean ( boolean  aBool)
private

Translate a boolean to an equivalent string.

Parameters
aBoolThe boolean value to format
Returns
The CString "TRUE" or "FALSE"

Definition at line 590 of file FmiLogParser.cpp.

References formatLatitude().

Referenced by getPacketDetail().

CString FmiLogParser::formatFmiPacket ( BOOL  transmitted,
uint16  aFmiPacketId,
uint8 aFmiPayload,
uint8  aFmiPayloadSize 
)
private

Interpret an FMI packet; appending the information to the text in the packet window.

Parameters
transmittedThe direction of the packet true = transmitted, !true = received
aFmiPacketIdThe FMI packet ID
aFmiPayloadThe FMI payload
aFmiPayloadSizeThe size of the FMI payload in bytes.
Since
Protocol A602

Definition at line 762 of file FmiLogParser.cpp.

References fmi_driver_profile_data_type_V2::adverse_condition_time, fmi_alert_popup_request::alert_text, speed_limit_data_type::alert_user, fmi_set_baud_request::baud_rate_type, fmi_set_baud_receipt::baud_rate_type, fmi_driver_profile_data_type::carrier_id, fmi_driver_profile_data_type_V2::carrier_id, fmi_driver_profile_data_type::carrier_name, fmi_driver_profile_data_type_V2::carrier_name, waypoint_data_type::cat, delete_by_category_rcpt_data_type::cat_id, speed_limit_alert_data_type::category, fmi_sensor_config_request::change_id, fmi_sensor_receipt::change_id, fmi_sensor_delete_request::change_id, fmi_sensor_update_request::change_id, fmi_sensor_query_display_index_request::change_id, fmi_sensor_query_display_index_receipt::change_id, fmi_dashcam_receipt_data_type::change_id, fmi_dashcam_set_config_request_data_type::change_id, fmi_dashcam_get_settings_request_data_type::change_id, fmi_dashcam_get_settings_response_data_type::change_id, fmi_dashcam_set_ntfctn_settings_data_type::change_id, fmi_dashcam_get_ntfctn_settings_data_type::change_id, fmi_dashcam_ntfctn_receipt_data_type::change_id, cMsToKph, cMsToMph, cnt_of_array, waypoint_data_type::comment, CONTAINS_DATA, delete_by_category_rcpt_data_type::count, file_end_data_type::crc, custom_form_position_ack_type::current_position, CUSTOM_AVOID_ERR_FEAT_NOT_ENBL, CUSTOM_AVOID_ERR_FULL, CUSTOM_AVOID_ERR_ID_OUT_OF_RANGE, CUSTOM_AVOID_ERR_NM_INUSE, CUSTOM_AVOID_ERR_NV, CUSTOM_AVOID_ID_NOT_FOUND, CUSTOM_AVOID_SUCCESS, DASHCAM_COLLISION_SENSITIVITY, DASHCAM_DATA_OVERLAY_DATE_TIME, DASHCAM_DATA_OVERLAY_LOCATION_SPEED, DASHCAM_FORWARD_COLLISION, DASHCAM_INCIDENT_DETECTION, DASHCAM_LANE_DEPARTURE, DASHCAM_RECORD_AFTER_POWER_LOSS, DASHCAM_RECORD_AUDIO, DASHCAM_RECORD_ON_STARTUP, DASHCAM_VIDEO_RESOLUTION, protocol_support_data_type::data, file_packet_data_type::data_length, data_deletion_data_type::data_type, fmi_sensor_update_request::description, fmi_sensor_config_request::display_index, fmi_sensor_query_display_index_receipt::display_index, stop_calc_ack_type::distance, eta_data_type::distance_to_destination, driver_id_data_type::driver_id, driver_id_D607_data_type::driver_id, driver_login_service_data_type::driver_id, fmi_driver_profile_type::driver_id, fmi_driver_profile_data_type::driver_id, fmi_ack_type::driver_id, fmi_driver_status_update_request_data_type::driver_id, fmi_driver_status_log_dnld_resp_data_type::driver_id, fmi_status_log_download_receipt_data_type::driver_id, fmi_driver_shipment_data_type::driver_id, fmi_shipment_download_receipt_data_type::driver_id, fmi_annotation_download_request_data_type::driver_id, fmi_driver_annotation_data_type::driver_id, fmi_driver_aobrd_ack_data_type::driver_id, fmi_driver_profile_data_type_V2::driver_id, fmi_logoff_driver_request::driver_id, fmi_logoff_driver_receipt::driver_id, driver_id_D607_data_type::driver_idx, driver_id_request_data_type::driver_idx, driver_id_receipt_data_type::driver_idx, driver_status_D607_data_type::driver_idx, driver_status_receipt_data_type::driver_idx, driver_status_request_data_type::driver_idx, driver_login_service_data_type::driver_password, driver_status_data_type::driver_status, driver_status_D607_data_type::driver_status, EMPTY_DATA, custom_avoid_feature_enable_type::enable, custom_avoid_type::enable, custom_avoid_enable_type::enable, fmi_hos_auto_status_update_feature::enable, fmi_hos_auto_status_update_feature_rcpt::enable, fmi_hos_set_settings_request_data_type::enable, fmi_dashcam_set_ntfctn_settings_data_type::enable_fcw_ntfctn, fmi_dashcam_get_ntfctn_settings_data_type::enable_fcw_ntfctn, fmi_dashcam_set_ntfctn_settings_data_type::enable_incident_ntfctn, fmi_dashcam_get_ntfctn_settings_data_type::enable_incident_ntfctn, fmi_dashcam_set_ntfctn_settings_data_type::enable_lane_departure_ntfctn, fmi_dashcam_get_ntfctn_settings_data_type::enable_lane_departure_ntfctn, fmi_hos_set_settings_receipt_data_type::enabled, fmi_ifta_data_fetch_request_type::end_time, fmi_ifta_data_delete_request_type::end_time, file_receipt_data_type::error_code_or_file_type_when_gpi, eta_data_type::eta_time, fmi_features_data_type::feature_count, FEATURE_ID_MASK, FEATURE_STATE_ENABLED, FEATURE_STATE_MASK, fmi_features_data_type::features, file_packet_data_type::file_data, file_info_data_type::file_size, file_info_data_type::file_type, file_receipt_from_srvr_data_type::file_type, file_info_data_type::file_version, file_info_data_type::file_version_length, long_text_msg_data_type::finished_flag, long_text_msg_receipt_data_type::finished_flag, fmi_driver_profile_data_type::first_name, fmi_driver_profile_data_type_V2::first_name, FMI_ALERT_ICON_BREAK_HOURS_COUNTER, FMI_ALERT_ICON_DAILY_HOURS_COUNTER, FMI_ALERT_ICON_DOOR_SENSOR, FMI_ALERT_ICON_DRIVER_BEHAVIOR, FMI_ALERT_ICON_EU_AVAILABLE, FMI_ALERT_ICON_EU_DRIVING, FMI_ALERT_ICON_EU_REST, FMI_ALERT_ICON_EU_WORK, FMI_ALERT_ICON_FUEL, FMI_ALERT_ICON_GENERAL_CONNECTIVITY, FMI_ALERT_ICON_GENERIC_SENSOR1, FMI_ALERT_ICON_GENERIC_SENSOR2, FMI_ALERT_ICON_GENERIC_SENSOR3, FMI_ALERT_ICON_INFORMATION, FMI_ALERT_ICON_NONE, FMI_ALERT_ICON_NUM_OUT_OF_RANGE, FMI_ALERT_ICON_OBD2_GENERIC_SENSOR, FMI_ALERT_ICON_REST_HOURS_COUNTER, FMI_ALERT_ICON_TASKS, FMI_ALERT_ICON_TEMPERATURE, FMI_ALERT_ICON_TIRE_PRESSURE, FMI_ALERT_ICON_VEHICLE_MAINTENANCE, FMI_ALERT_ICON_WEEKLY_HOURS_COUNTER, FMI_ALERT_ICON_WEIGHT, FMI_ALERT_MISSING_ALERT_TEXT_AND_ICON, FMI_ALERT_POPUP_RECEIPT, FMI_ALERT_POPUP_REQUEST, FMI_ALERT_POPUP_SUCCESS, FMI_ALERT_SEVERITY_OUT_OF_RANGE, FMI_ALERT_TEXT_TOO_LONG, FMI_ALERT_TIMEOUT_OUT_OF_RANGE, FMI_ANNOTATION_DOWNLOAD_RECEIPT, FMI_ANNOTATION_DOWNLOAD_REQUEST, FMI_ANNOTATION_DOWNLOAD_RESPONSE, FMI_AOBRD_DRIVER_LOGOFF_RECEIPT, FMI_AOBRD_DRIVER_LOGOFF_REQUEST, FMI_BAUD_NEW_RATE_REQUEST, FMI_BAUD_PLUG_ID_ERROR, FMI_BAUD_RATE_38400, FMI_BAUD_RATE_57600, FMI_BAUD_RATE_9600, FMI_BAUD_RATE_CLIENT_ERROR, FMI_BAUD_RATE_CONTROL_IS_DISABLED, FMI_BAUD_RATE_OK, FMI_BAUD_RATE_SERVER_ERROR, FMI_BAUD_RATE_SYNC_REQUEST, FMI_BAUD_REQUEST_TYPE_SERVER_ERROR, FMI_BAUD_SET_ERROR, FMI_CUSTOM_AVOID_ADD_RECEIPT, FMI_CUSTOM_AVOID_ADD_REQUEST, FMI_CUSTOM_AVOID_DEL_RECEIPT, FMI_CUSTOM_AVOID_DEL_REQUEST, FMI_CUSTOM_AVOID_ENABLE_FEATURE_RECEIPT, FMI_CUSTOM_AVOID_ENABLE_FEATURE_REQUEST, FMI_CUSTOM_AVOID_TOGGLE_RECEIPT, FMI_CUSTOM_AVOID_TOGGLE_REQUEST, FMI_CUSTOM_FORM_DEL_RECEIPT, FMI_CUSTOM_FORM_DEL_REQUEST, FMI_CUSTOM_FORM_GET_POS_RECEIPT, FMI_CUSTOM_FORM_GET_POS_REQUEST, FMI_CUSTOM_FORM_MOVE_RECEIPT, FMI_CUSTOM_FORM_MOVE_REQUEST, FMI_CUSTOM_FORM_SHOW_RECEIPT, FMI_CUSTOM_FORM_SHOW_REQUEST, FMI_DASHCAM_CONFIG_RECEIPT, FMI_DASHCAM_CONFIG_REQUEST, FMI_DASHCAM_GET_NTFCTN_SETTINGS_REQUEST, FMI_DASHCAM_GET_NTFCTN_SETTINGS_RESPONSE, FMI_DASHCAM_GET_SETTINGS_REQUEST, FMI_DASHCAM_GET_SETTINGS_RESPONSE, FMI_DASHCAM_INCDNT_FILE_NTFCTN_RECEIPT, FMI_DASHCAM_INCDNT_FILE_NTFCTN_REQUEST, FMI_DASHCAM_NTFCTN_RECEIPT, FMI_DASHCAM_NTFCTN_REQUEST, FMI_DASHCAM_SET_NTFCTN_RECEIPT, FMI_DASHCAM_SET_NTFCTN_REQUEST, FMI_DASHCAM_SETTINGS_LOCK_RECEIPT, FMI_DASHCAM_SETTINGS_LOCK_REQUEST, FMI_DOWNLOAD_SHIPMENTS_REQUEST, FMI_DRIVER_LOGIN_REQUEST, FMI_DRIVER_LOGIN_RESPONSE, FMI_DRIVER_PROFILE_DOWNLOAD_REQUEST, FMI_DRIVER_PROFILE_DOWNLOAD_RESPONSE, FMI_DRIVER_PROFILE_DOWNLOAD_RESPONSE_V2, FMI_DRIVER_PROFILE_UPDATE, FMI_DRIVER_PROFILE_UPDATE_RESPONSE, FMI_DRIVER_PROFILE_UPDATE_V2, FMI_DRIVER_STATUS_UPDATE_RECEIPT, FMI_DRIVER_STATUS_UPDATE_REQUEST, FMI_DRIVER_STATUS_UPDATE_RESPONSE, FMI_FILE_RESULT_BUSY, FMI_FILE_RESULT_CRC_ERROR, FMI_FILE_RESULT_FINALIZE_ERROR, FMI_FILE_RESULT_INVALID_FILE, FMI_FILE_RESULT_INVALID_FILE_TYPE, FMI_FILE_RESULT_INVALID_GPI_FILE, FMI_FILE_RESULT_LOW_MEM, FMI_FILE_RESULT_NO_TRANSFER, FMI_FILE_RESULT_NOT_PROCESSED, FMI_FILE_RESULT_RX_GZIP_ERROR, FMI_FILE_RESULT_SEVERE, FMI_FILE_RESULT_SUCCESS, FMI_FILE_START_CLOSE_ERROR, FMI_FILE_START_OPEN_ERROR, FMI_HOS_8_HOUR_RULE_ENABLE_RECEIPT, FMI_HOS_8_HOUR_RULE_ENABLE_REQUEST, FMI_HOS_AUTO_STATUS_FEATURE_RECEIPT, FMI_HOS_AUTO_STATUS_FEATURE_REQUEST, FMI_HOS_SET_SETTING_DATA_RECEIPT, FMI_HOS_SET_SETTING_DATA_REQUEST, FMI_HOS_SETTING_RESULT_FAIL, FMI_HOS_SETTING_RESULT_OK, FMI_HOS_SETTING_RESULT_SET_TO_MAX, FMI_HOS_SETTING_RESULT_SET_TO_MIN, FMI_ID_A602_STOP, FMI_ID_A603_STOP, FMI_ID_A604_OPEN_TEXT_MSG, FMI_ID_A604_OPEN_TEXT_MSG_RCPT, FMI_ID_A607_CLIENT_OPEN_TXT_MSG, FMI_ID_AUTO_ARRIVAL, FMI_ID_CANNED_RESP_LIST_RCPT, FMI_ID_CLIENT_OPEN_TXT_MSG, FMI_ID_CLIENT_TXT_MSG_RCPT, FMI_ID_CREATE_WAYPOINT_CAT, FMI_ID_CREATE_WAYPOINT_CAT_RCPT, FMI_ID_DATA_DELETION, FMI_ID_DEL_DRIVER_STATUS_LIST_ITEM_RCPT, FMI_ID_DELETE_CANNED_MSG, FMI_ID_DELETE_CANNED_MSG_RCPT, FMI_ID_DELETE_CANNED_RESPONSE, FMI_ID_DELETE_CANNED_RESPONSE_RCPT, FMI_ID_DELETE_DRIVER_STATUS_LIST_ITEM, FMI_ID_DELETE_WAYPOINT_CAT, FMI_ID_DELETE_WAYPOINT_CAT_RCPT, FMI_ID_DRIVER_ID_RCPT, FMI_ID_DRIVER_ID_REQUEST, FMI_ID_DRIVER_ID_UPDATE, FMI_ID_DRIVER_ID_UPDATE_D607, FMI_ID_DRIVER_STATUS_LIST_REFRESH, FMI_ID_DRIVER_STATUS_RCPT, FMI_ID_DRIVER_STATUS_REQUEST, FMI_ID_DRIVER_STATUS_UPDATE, FMI_ID_DRIVER_STATUS_UPDATE_D607, FMI_ID_ENABLE, FMI_ID_ETA_DATA, FMI_ID_ETA_DATA_RCPT, FMI_ID_ETA_DATA_REQUEST, FMI_ID_FILE_DATA_PACKET, FMI_ID_FILE_END_RCPT, FMI_ID_FILE_PACKET_RCPT, FMI_ID_FILE_START_RCPT, FMI_ID_FILE_TRANSFER_END, FMI_ID_FILE_TRANSFER_START, FMI_ID_GPI_FILE_INFORMATION, FMI_ID_GPI_FILE_INFORMATION_REQUEST, FMI_ID_LONG_TEXT_MSG, FMI_ID_LONG_TEXT_MSG_RCPT, FMI_ID_MSG_THROTTLING_COMMAND, FMI_ID_MSG_THROTTLING_QUERY, FMI_ID_MSG_THROTTLING_QUERY_RESPONSE, FMI_ID_MSG_THROTTLING_RESPONSE, FMI_ID_PING, FMI_ID_PING_RESPONSE, FMI_ID_PRODUCT_ID_DATA, FMI_ID_PROTOCOL_DATA, FMI_ID_REFRESH_CANNED_MSG_LIST, FMI_ID_REFRESH_CANNED_RESP_LIST, FMI_ID_SERVER_OK_ACK_TXT_MSG, FMI_ID_SERVER_OPEN_TXT_MSG, FMI_ID_SERVER_YES_NO_CONFIRM_MSG, FMI_ID_SET_CANNED_MSG, FMI_ID_SET_CANNED_MSG_RCPT, FMI_ID_SET_CANNED_RESP_LIST, FMI_ID_SET_CANNED_RESPONSE, FMI_ID_SET_CANNED_RESPONSE_RCPT, FMI_ID_SET_DRIVER_STATUS_LIST_ITEM, FMI_ID_SET_DRIVER_STATUS_LIST_ITEM_RCPT, FMI_ID_SORT_STOP_LIST, FMI_ID_SORT_STOP_LIST_ACK, FMI_ID_STOP_STATUS, FMI_ID_STOP_STATUS_RCPT, FMI_ID_STOP_STATUS_REQUEST, FMI_ID_TEXT_MSG_ACK, FMI_ID_TEXT_MSG_ACK_RCPT, FMI_ID_TEXT_MSG_DELETE_REQUEST, FMI_ID_TEXT_MSG_DELETE_RESPONSE, FMI_ID_TEXT_MSG_STATUS, FMI_ID_TEXT_MSG_STATUS_REQUEST, FMI_ID_USER_INTERFACE_TEXT, FMI_ID_USER_INTERFACE_TEXT_RCPT, FMI_ID_WAYPOINT, FMI_ID_WAYPOINT_DELETE, FMI_ID_WAYPOINT_DELETED, FMI_ID_WAYPOINT_DELETED_RCPT, FMI_ID_WAYPOINT_RCPT, FMI_IFTA_DATA_DELETE_RECEIPT, FMI_IFTA_DATA_DELETE_REQUEST, FMI_IFTA_DATA_FETCH_RECEIPT, FMI_IFTA_DATA_FETCH_REQUEST, FMI_LOGIN_ANNOTATION_DB_ERROR, FMI_LOGIN_INVALID_ID_SERVER_RESPONSE, FMI_LOGIN_NO_ERRORS, FMI_LOGIN_SHIPMENT_DB_ERROR, FMI_LOGIN_UNEXPECTED_RESPONSE_PACKET, FMI_LOGIN_WRONG_ID_SERVER_RESPONSE, FMI_SAFE_MODE, FMI_SAFE_MODE_RESP, FMI_SENSOR_CONFIG_RECEIPT, FMI_SENSOR_CONFIG_REQUEST, FMI_SENSOR_DELETE_RECEIPT, FMI_SENSOR_DELETE_REQUEST, FMI_SENSOR_ERR_DB, FMI_SENSOR_ERR_DESCR_TOO_LONG, FMI_SENSOR_ERR_ICON_NUM_OUT_OF_RANGE, FMI_SENSOR_ERR_ID_NOT_FOUND, FMI_SENSOR_ERR_MISSING_SENSOR_NAME, FMI_SENSOR_ERR_NAME_TOO_LONG, FMI_SENSOR_ERR_SEVERITY_OUT_OF_RANGE, FMI_SENSOR_ERR_STATUS_TOO_LONG, FMI_SENSOR_ERR_TOO_MANY_SENSORS, FMI_SENSOR_QUERY_DISPLAY_INDEX_RECEIPT, FMI_SENSOR_QUERY_DISPLAY_INDEX_REQUEST, FMI_SENSOR_SUCCESS, FMI_SENSOR_UPDATE_REQUEST, FMI_SET_BAUD_RECEIPT, FMI_SET_BAUD_REQUEST, FMI_SET_ODOMETER_REQUEST, FMI_SHIPMENT_DOWNLOAD_RECEIPT, FMI_SHIPMENT_DOWNLOAD_RESPONSE, FMI_SPEED_LIMIT_ALERT, FMI_SPEED_LIMIT_ALERT_RCPT, FMI_SPEED_LIMIT_RCPT, FMI_SPEED_LIMIT_SET, FMI_STOP_CALC_ACK_RECEIPT, FMI_STOP_CALC_ACK_REQUEST, custom_form_delete_ack_type::form_id, custom_form_move_type::form_id, custom_form_position_ack_type::form_id, custom_form_show_ack_type::form_id, getCustomFormErrorMsg(), getFmiPacketName(), HOS_SETTING_AUTO_STATUS_STOP_MOVING_THRESHOLD_SECONDS, HOS_SETTING_EIGHT_HOUR_RULE_ENABLE, HOS_SETTING_PERIODIC_STATUS_PERIOD_SECONDS, HOS_SETTING_START_TIME_OF_DAY, fmi_alert_popup_request::icon, fmi_sensor_config_request::icon, server_to_client_ack_text_msg_data_type::id, text_msg_ack_data_type::id, client_to_server_D607_open_text_msg_data_type::id, A604_server_to_client_open_text_msg_data_type::id, server_to_client_text_msg_receipt_data_type::id, canned_response_list_data_type::id, canned_response_list_receipt_data_type::id, message_status_request_data_type::id, message_status_data_type::id, text_msg_id_data_type::id, category_data_type::id, category_rcpt_data_type::id, delete_message_request_data_type::id, delete_message_response_data_type::id, long_text_msg_data_type::id, long_text_msg_receipt_data_type::id, server_to_client_ack_text_msg_data_type::id_size, text_msg_ack_data_type::id_size, client_to_server_D607_open_text_msg_data_type::id_size, A604_server_to_client_open_text_msg_data_type::id_size, server_to_client_text_msg_receipt_data_type::id_size, canned_response_list_data_type::id_size, canned_response_list_receipt_data_type::id_size, message_status_request_data_type::id_size, message_status_data_type::id_size, text_msg_id_data_type::id_size, delete_message_request_data_type::id_size, delete_message_response_data_type::id_size, long_text_msg_data_type::id_size, long_text_msg_receipt_data_type::id_size, fmi_dashcam_ntfctn_incident_req_data_type::incident_fname, fmi_driver_profile_data_type::last_name, fmi_driver_profile_data_type_V2::last_name, sc_position_type::lat, fmi_driver_profile_data_type_V2::load_type_rule_set, fmi_dashcam_lock_settings_request_data_type::lock_change, fmi_dashcam_lock_settings_request_data_type::lock_change_adas, sc_position_type::lon, fmi_driver_profile_data_type::long_term_rule_set, fmi_driver_profile_data_type_V2::long_term_rule_set, speed_limit_alert_data_type::max_speed, canned_message_data_type::message, canned_message_data_type::message_id, canned_message_delete_data_type::message_id, canned_message_receipt_data_type::message_id, MESSAGE_THROTTLE_STATE_DISABLE, MESSAGE_THROTTLE_STATE_ENABLE, MESSAGE_THROTTLE_STATE_ERROR, A604_server_to_client_open_text_msg_data_type::message_type, minval, speed_limit_data_type::mode, text_msg_ack_data_type::msg_ack_type, waypoint_data_type::name, category_data_type::name, custom_avoid_type::name, fmi_sensor_config_request::name, custom_form_move_type::new_position, message_throttling_data_type::new_state, user_interface_text_data_type::new_text, fmi_dashcam_settings_list::new_value, packet_receipt_data_type::next_offset, fmi_dashcam_ntfctn_req_data_type::ntfctn_type, fmi_dashcam_ntfctn_incident_req_data_type::ntfctn_type, set_odometer_request_data_type::odometer_value, file_packet_data_type::offset, packet_receipt_data_type::offset, offset_of, fmi_sensor_receipt::operation_mode, A602_server_to_client_open_text_msg_data_type::origination_time, server_to_client_ack_text_msg_data_type::origination_time, text_msg_ack_data_type::origination_time, client_to_server_open_text_msg_data_type::origination_time, client_to_server_D607_open_text_msg_data_type::origination_time, A603_stop_data_type::origination_time, A602_stop_data_type::origination_time, A604_server_to_client_open_text_msg_data_type::origination_time, server_to_client_text_msg_receipt_data_type::origination_time, long_text_msg_data_type::origination_time, long_text_msg_receipt_data_type::origination_time, custom_avoid_feature_enable_type::origination_time, fmi_dashcam_lock_settings_request_data_type::origination_time, fmi_dashcam_ntfctn_req_data_type::origination_time, fmi_dashcam_ntfctn_incident_req_data_type::origination_time, message_throttling_data_type::packet_id, driver_id_D607_data_type::password, fmi_driver_profile_data_type::pin, fmi_alert_popup_request::play_sound, fmi_sensor_update_request::play_sound, custom_avoid_type::point1, custom_avoid_type::point2, eta_data_type::position_of_destination, speed_limit_alert_data_type::posn, waypoint_data_type::posn, product_id_data_type::product_id, file_receipt_data_type::record_count_or_reserved_when_gpi, fmi_sensor_update_request::record_sensor, fmi_set_baud_request::request_type, fmi_set_baud_receipt::request_type, canned_response_list_data_type::response_count, request_canned_response_list_refresh_data_type::response_count, message_throttling_list_data_type::response_count, canned_response_data_type::response_id, canned_response_delete_data_type::response_id, canned_response_receipt_data_type::response_id, canned_response_list_data_type::response_id, message_throttling_list_data_type::response_list, canned_response_data_type::response_text, file_receipt_data_type::result_code, file_receipt_from_srvr_data_type::result_code, server_to_client_text_msg_receipt_data_type::result_code, canned_response_receipt_data_type::result_code, canned_response_list_receipt_data_type::result_code, driver_id_receipt_data_type::result_code, driver_status_list_item_receipt_data_type::result_code, driver_status_receipt_data_type::result_code, canned_message_receipt_data_type::result_code, user_interface_text_receipt_data_type::result_code, safe_mode_speed_receipt_data_type::result_code, speed_limit_receipt_data_type::result_code, waypoint_rcpt_data_type::result_code, category_rcpt_data_type::result_code, delete_message_response_data_type::result_code, driver_login_service_receipt::result_code, fmi_driver_profile_data_type::result_code, fmi_ack_type::result_code, fmi_driver_status_log_dnld_resp_data_type::result_code, fmi_status_log_download_receipt_data_type::result_code, fmi_shipment_download_receipt_data_type::result_code, fmi_driver_aobrd_ack_data_type::result_code, long_text_msg_receipt_data_type::result_code, stop_calc_ack_type::result_code, custom_avoid_rcpt_type::result_code, fmi_ifta_data_fetch_receipt_type::result_code, fmi_ifta_data_delete_receipt_type::result_code, fmi_driver_profile_data_type_V2::result_code, fmi_logoff_driver_receipt::result_code, fmi_set_baud_receipt::result_code, fmi_alert_popup_receipt::result_code, fmi_sensor_receipt::result_code, fmi_sensor_query_display_index_receipt::result_code, fmi_hos_set_settings_receipt_data_type::result_code, fmi_dashcam_receipt_data_type::result_code, fmi_dashcam_get_settings_response_data_type::result_code, fmi_dashcam_get_ntfctn_settings_data_type::result_code, fmi_hos_auto_status_update_feature_rcpt::result_type, custom_form_delete_ack_type::return_code, custom_form_position_ack_type::return_code, custom_form_show_ack_type::return_code, client_to_server_D607_open_text_msg_data_type::scposn, fmi_dashcam_ntfctn_req_data_type::scposn, fmi_dashcam_ntfctn_incident_req_data_type::scposn, long_text_msg_data_type::sequence_number, long_text_msg_receipt_data_type::sequence_number, fmi_driver_annotation_data_type::server_annotation, fmi_driver_shipment_data_type::server_commodity, fmi_driver_shipment_data_type::server_doc_number, fmi_driver_shipment_data_type::server_end_time, fmi_driver_annotation_data_type::server_end_time, fmi_driver_shipment_data_type::server_result_code, fmi_driver_annotation_data_type::server_result_code, fmi_driver_shipment_data_type::server_shipper_name, fmi_driver_shipment_data_type::server_start_time, fmi_driver_annotation_data_type::server_start_time, fmi_driver_shipment_data_type::server_timestamp, fmi_driver_annotation_data_type::server_timestamp, fmi_dashcam_settings_list::setting_id, fmi_dashcam_set_config_request_data_type::settings_count, fmi_dashcam_get_settings_response_data_type::settings_count, fmi_dashcam_set_config_request_data_type::settings_list, fmi_dashcam_get_settings_response_data_type::settings_list, fmi_hos_set_settings_request_data_type::settings_value, fmi_hos_set_settings_receipt_data_type::settings_value, fmi_alert_popup_request::severity, fmi_sensor_update_request::severity, product_id_data_type::software_version, safe_mode_speed_data_type::speed, speed_limit_alert_data_type::speed, speed_limit_alert_data_type::speed_limit, SPEED_LIMIT_ALERT_BEGIN, SPEED_LIMIT_ALERT_CHANGE, SPEED_LIMIT_ALERT_END, SPEED_LIMIT_ALERT_ERROR, SPEED_LIMIT_ALERT_INVALID, SPEED_LIMIT_MODE_CAR, SPEED_LIMIT_MODE_OFF, SPEED_LIMIT_MODE_TRUCK, SPEED_LIMIT_RESULT_ERROR, SPEED_LIMIT_RESULT_MODE_UNSUPPORTED, SPEED_LIMIT_RESULT_SUCCESS, fmi_ifta_data_fetch_request_type::start_time, fmi_ifta_data_delete_request_type::start_time, driver_status_list_item_data_type::status, fmi_driver_profile_data_type::status, fmi_driver_profile_data_type_V2::status, fmi_logoff_driver_receipt::status, fmi_sensor_update_request::status, driver_id_data_type::status_change_id, driver_id_D607_data_type::status_change_id, driver_id_receipt_data_type::status_change_id, driver_status_data_type::status_change_id, driver_status_D607_data_type::status_change_id, driver_status_receipt_data_type::status_change_id, driver_id_data_type::status_change_time, driver_id_D607_data_type::status_change_time, driver_status_data_type::status_change_time, driver_status_D607_data_type::status_change_time, message_status_data_type::status_code, driver_status_list_item_data_type::status_id, driver_status_list_item_receipt_data_type::status_id, driver_status_list_item_delete_data_type::status_id, auto_arrival_data_type::stop_distance, stop_status_data_type::stop_index_in_list, fmi_hos_auto_status_update_feature::stop_moving_threshold, fmi_hos_auto_status_update_feature_rcpt::stop_moving_threshold, A603_stop_data_type::stop_position, A602_stop_data_type::stop_position, stop_status_data_type::stop_status, auto_arrival_data_type::stop_time, waypoint_data_type::symbol, protocol_support_data_type::tag, fmi_hos_set_settings_request_data_type::tag, fmi_hos_set_settings_receipt_data_type::tag, A603_stop_data_type::text, A602_stop_data_type::text, user_interface_text_data_type::text_element_id, user_interface_text_receipt_data_type::text_element_id, A602_server_to_client_open_text_msg_data_type::text_message, server_to_client_ack_text_msg_data_type::text_message, client_to_server_open_text_msg_data_type::text_message, client_to_server_D607_open_text_msg_data_type::text_message, A604_server_to_client_open_text_msg_data_type::text_message, long_text_msg_data_type::text_message, speed_limit_data_type::threshold, speed_limit_data_type::time_over, speed_limit_data_type::time_under, fmi_driver_profile_data_type::time_zone, fmi_driver_profile_data_type_V2::time_zone, fmi_alert_popup_request::timeout, speed_limit_alert_data_type::timestamp, speed_limit_alert_receipt_data_type::timestamp, long_text_msg_data_type::type, driver_login_service_data_type::ui_timestamp, driver_login_service_receipt::ui_timestamp, client_to_server_open_text_msg_data_type::unique_id, client_to_server_text_msg_receipt_data_type::unique_id, client_to_server_D607_open_text_msg_data_type::unique_id, A603_stop_data_type::unique_id, stop_status_data_type::unique_id, stop_status_receipt_data_type::unique_id, eta_data_type::unique_id, eta_data_receipt_type::unique_id, waypoint_data_type::unique_id, waypoint_rcpt_data_type::unique_id, stop_calc_ack_type::unique_id, stop_calc_ack_rcpt_type::unique_id, custom_avoid_type::unique_id, custom_avoid_rcpt_type::unique_id, custom_avoid_delete_type::unique_id, custom_avoid_enable_type::unique_id, fmi_alert_popup_request::unique_id, fmi_alert_popup_receipt::unique_id, fmi_sensor_config_request::unique_id, fmi_sensor_delete_request::unique_id, fmi_sensor_update_request::unique_id, fmi_sensor_query_display_index_request::unique_id, UNKNOWN_DRIVER, UNSUPPORTED, UPDATE_ACCEPT, UPDATE_DECLINE, UPDATE_FAIL, UPDATE_INTERFACE_ERROR, UPDATE_NO_DATA, UPDATE_NOT_READY, UPDATE_RESULT_ERROR, UPDATE_STORAGE_ERROR, and UTIL_convert_semicircles_to_degrees().

Referenced by formatTime().

CString FmiLogParser::formatHosartPacket ( BOOL  transmitted,
uint16  aPacketId,
uint8 aPayload,
uint8  aPayloadSize 
)
private

Interpret an HOSART packet; appending the information to the text in the packet window.

Parameters
transmittedThe direction of the packet true = transmitted, !true = received
aPacketIdThe HOSART packet ID
aPayloadThe HOSART payload
aPayloadSizeThe size of the HOSART payload in bytes.
Since
Protocol A602

Definition at line 3727 of file FmiLogParser.cpp.

References hosart_change_status::driver_id, hosart_change_to_driving_warning::driver_id, hosart_violation_found::driver_id, getGarminPacketName(), HOSART_CHANGE_STATUS, HOSART_CHANGE_TO_DRIVING_WARNING, HOSART_SET_PS_TO_OFF, HOSART_VIOLATION_FOUND, HOSART_WARNING_FOUND, minval, hosart_change_status::new_status, hosart_change_to_driving_warning::timestamp, hosart_violation_found::timestamp, hosart_change_to_driving_warning::violation_type, hosart_violation_found::violation_type, and hosart_change_to_driving_warning::warning_type.

Referenced by getHosartPacketName().

CString FmiLogParser::formatLatitude ( sint32  aSemicircles)
private

Format latitude.

Parameters
aSemicirclesSemicircles
Returns
The string representation of latitude in degrees

Definition at line 603 of file FmiLogParser.cpp.

References formatLongitude(), and UTIL_convert_semicircles_to_degrees().

Referenced by formatBoolean().

CString FmiLogParser::formatLongitude ( sint32  aSemicircles)
private

Format longitude.

Parameters
aSemicirclesSemicircles
Returns
The string representation of longitude

Definition at line 629 of file FmiLogParser.cpp.

References formatMessageId(), and UTIL_convert_semicircles_to_degrees().

Referenced by formatLatitude().

CString FmiLogParser::formatMessageId ( const uint8 aMessageId,
uint8  aMessageIdSize 
)
private

Format a message ID in hex, with up to 8 bytes per line.

Parameters
aMessageIdThe message ID to format
aMessageIdSizeThe number of significant bytes in the message ID
Returns
A string representation of the message ID

Definition at line 657 of file FmiLogParser.cpp.

References formatText(), and minval.

Referenced by formatLongitude().

CString LogParser::formatMultiLineHex ( int  aSize,
uint8 aData 
)
protectedinherited

Format bytes into a multi logLine hex dump format.

Parameters
aSizeThe number of bytes to format
aDataThe bytes to format
Returns
A string containing the hex dump

Definition at line 165 of file LogParser.cpp.

Referenced by LogParser::setRenderWidth().

CString FmiLogParser::formatText ( const char *  aText,
int  aMaxLength 
)
private

Format a text string, with up to 29 characters per line.

Parameters
aTextThe text string to format
aMaxLengthThe maximum number of bytes to translate
Returns
The string, split into multiple lines

Definition at line 683 of file FmiLogParser.cpp.

References CODEPAGE_UNICODE, and formatTime().

Referenced by formatMessageId().

CString FmiLogParser::formatTime ( time_type  aTimestamp)
private

Format Garmin UTC timestamp.

Parameters
aTimestampGarmin UTC timestamp
Returns
The string representation of UTC date and time

Definition at line 725 of file FmiLogParser.cpp.

References formatFmiPacket(), UTIL_convert_seconds_to_date_type(), UTIL_convert_seconds_to_time_type(), UTIL_convert_UTC_to_local(), UTIL_format_date_string(), and UTIL_format_time_string().

Referenced by formatText().

CString LogParser::getFilename ( )
inherited

Get the path of the log file being parsed.

Returns
The path of the log file being parsed

Definition at line 204 of file LogParser.cpp.

CString FmiLogParser::getFmiPacketName ( uint16  aPacketId)
private

Translate an FMI packet ID into a string describing the packet name.

Uses the mFmiPacketNames map.

Parameters
aPacketIdThe FMI packet ID
Returns
The packet name as an English CString, or the string "Unknown FMI packet 0xNNNN" if the packet does not have a name

Definition at line 3677 of file FmiLogParser.cpp.

References getHosartPacketName().

Referenced by formatFmiPacket().

CString FmiLogParser::getGarminCommandName ( uint16  aCommandId)
private

Translate a Garmin command ID into a string describing the command name.

Uses the mGarminCommandNames map.

Parameters
aCommandIdThe Garmin command ID
Returns
The command name as an English CString, or the string "Unknown Garmin command 0xNNNN" if the command does not have a name

Definition at line 3886 of file FmiLogParser.cpp.

References appendIFTADataModResultCode().

Referenced by getGarminPacketName().

CString FmiLogParser::getGarminPacketName ( uint8  aPacketId)
private

Translate a Garmin packet ID into a string describing the packet name.

Uses the mGarminPacketNames map.

Parameters
aPacketIdThe FMI packet ID
Returns
The packet name as an English CString, or the string "Unknown Garmin packet 0xNNNN" if the packet does not have a name

Definition at line 3858 of file FmiLogParser.cpp.

References getGarminCommandName().

Referenced by formatHosartPacket().

CString FmiLogParser::getHosartPacketName ( uint16  aPacketId)
private

Definition at line 3698 of file FmiLogParser.cpp.

References formatHosartPacket().

Referenced by getFmiPacketName().

int LogParser::getLineCount ( ) const
inherited

Return the number of lines parsed so far.

Returns
The number of lines parsed.

Definition at line 141 of file LogParser.cpp.

References LogParser::setRenderWidth().

CString FmiLogParser::getPacketDetail ( int  aPacketNumber)
virtual

Print a particular packet to the packet view.

Opens the currently viewed log file, reads to the logLine requested, and prints the information to the packet view of the log dialog

Parameters
aPacketNumberThe index of the packet data logLine to read. Note that this index does not include the log header; the first actual data packet logged has an index of 0.

Implements LogParser.

Definition at line 232 of file FmiLogParser.cpp.

References pvt_data_type::altitude, date_time_data_type::date, date_time_data_type::_date::day, pvt_data_type::east_velocity, pvt_data_type::epe, pvt_data_type::eph, pvt_data_type::epv, formatBoolean(), date_time_data_type::_time::hour, ID_ACK_BYTE, ID_COMMAND_BYTE, ID_DATE_TIME_DATA, ID_DLE_BYTE, ID_ETX_BYTE, ID_FMI_PACKET, ID_HOSART_PACKET, ID_NAK_BYTE, ID_PRODUCT_DATA, ID_PVT_DATA, ID_SET_TIME_PACKET, ID_UNIT_ID, double_position_type::lat, pvt_data_type::leap_seconds, double_position_type::lon, MAX_PACKET_SIZE, MAX_PAYLOAD_SIZE, pvt_data_type::mean_sea_level_height, date_time_data_type::_time::minute, minval, date_time_data_type::_date::month, pvt_data_type::north_velocity, PACKET_STATUS_DLE_STUFF_ERROR, PACKET_STATUS_FRAMING_ERROR_ETX, PACKET_STATUS_FRAMING_ERROR_STX, PACKET_STATUS_OK, PACKET_STATUS_TOO_SHORT, pvt_data_type::position, product_id_data_type::product_id, date_time_data_type::_time::second, SIZE_OF_FOOTER, product_id_data_type::software_version, date_time_data_type::time, pvt_data_type::time_of_week, pvt_data_type::type_of_gps_fix, unit_id_data_type::unit_id, pvt_data_type::up_velocity, UTIL_convert_radians_to_degrees(), UTIL_convert_semicircles_to_degrees(), UTIL_hex_to_uint8(), pvt_data_type::week_number_days, and date_time_data_type::_date::year.

Referenced by getPacketTitle().

CString FmiLogParser::getPacketTitle ( int  aPacketNumber)
virtual

Construct a packet title for the given log logLine.

The packet title is normally the Garmin packet name, but for FMI packets the FMI packet name is used, and for Garmin commands the Garmin command name is used.

Parameters
aPacketNumberThe index of the packet to retrieve
Returns
The packet title

Implements LogParser.

Definition at line 77 of file FmiLogParser.cpp.

References getPacketDetail(), ID_COMMAND_BYTE, ID_DLE_BYTE, ID_FMI_PACKET, ID_HOSART_PACKET, ID_SET_TIME_PACKET, and UTIL_hex_to_uint8().

Referenced by ~FmiLogParser().

void LogParser::init ( const CString &  aFilename)
inherited

Initialize the LogParser to read a particular file.

Parameters
aFilenameThe file to read

Definition at line 193 of file LogParser.cpp.

void FmiLogParser::initFmiFeatureNames ( )
private

Initialize the map of FMI packet IDs to text strings.

Since
Protocol A602

Definition at line 4243 of file FmiLogParser.cpp.

References FEATURE_ID_A607_SUPPORT, FEATURE_ID_AOBRD_SUPPORT, FEATURE_ID_DRIVER_PASSWORDS, FEATURE_ID_MULTIPLE_DRIVERS, and FEATURE_ID_UNICODE.

void FmiLogParser::initFmiPacketNames ( )
private

Initialize the map of FMI packet IDs to text strings.

Since
Protocol A602

Definition at line 4007 of file FmiLogParser.cpp.

References FMI_ALERT_POPUP_RECEIPT, FMI_ALERT_POPUP_REQUEST, FMI_ANNOTATION_DOWNLOAD_RECEIPT, FMI_ANNOTATION_DOWNLOAD_REQUEST, FMI_ANNOTATION_DOWNLOAD_RESPONSE, FMI_AOBRD_DRIVER_LOGOFF_RECEIPT, FMI_AOBRD_DRIVER_LOGOFF_REQUEST, FMI_CUSTOM_AVOID_ADD_RECEIPT, FMI_CUSTOM_AVOID_ADD_REQUEST, FMI_CUSTOM_AVOID_DEL_RECEIPT, FMI_CUSTOM_AVOID_DEL_REQUEST, FMI_CUSTOM_AVOID_ENABLE_FEATURE_RECEIPT, FMI_CUSTOM_AVOID_ENABLE_FEATURE_REQUEST, FMI_CUSTOM_AVOID_TOGGLE_RECEIPT, FMI_CUSTOM_AVOID_TOGGLE_REQUEST, FMI_CUSTOM_FORM_DEL_RECEIPT, FMI_CUSTOM_FORM_DEL_REQUEST, FMI_CUSTOM_FORM_GET_POS_RECEIPT, FMI_CUSTOM_FORM_GET_POS_REQUEST, FMI_CUSTOM_FORM_MOVE_RECEIPT, FMI_CUSTOM_FORM_MOVE_REQUEST, FMI_CUSTOM_FORM_SHOW_RECEIPT, FMI_CUSTOM_FORM_SHOW_REQUEST, FMI_DASHCAM_CONFIG_RECEIPT, FMI_DASHCAM_CONFIG_REQUEST, FMI_DASHCAM_GET_NTFCTN_SETTINGS_REQUEST, FMI_DASHCAM_GET_NTFCTN_SETTINGS_RESPONSE, FMI_DASHCAM_GET_SETTINGS_REQUEST, FMI_DASHCAM_GET_SETTINGS_RESPONSE, FMI_DASHCAM_INCDNT_FILE_NTFCTN_RECEIPT, FMI_DASHCAM_INCDNT_FILE_NTFCTN_REQUEST, FMI_DASHCAM_NTFCTN_RECEIPT, FMI_DASHCAM_NTFCTN_REQUEST, FMI_DASHCAM_SET_NTFCTN_RECEIPT, FMI_DASHCAM_SET_NTFCTN_REQUEST, FMI_DASHCAM_SETTINGS_LOCK_RECEIPT, FMI_DASHCAM_SETTINGS_LOCK_REQUEST, FMI_DOWNLOAD_SHIPMENTS_REQUEST, FMI_DRIVER_LOGIN_REQUEST, FMI_DRIVER_LOGIN_RESPONSE, FMI_DRIVER_PROFILE_DOWNLOAD_REQUEST, FMI_DRIVER_PROFILE_DOWNLOAD_RESPONSE, FMI_DRIVER_PROFILE_DOWNLOAD_RESPONSE_V2, FMI_DRIVER_PROFILE_UPDATE, FMI_DRIVER_PROFILE_UPDATE_RESPONSE, FMI_DRIVER_PROFILE_UPDATE_V2, FMI_DRIVER_STATUS_UPDATE_RECEIPT, FMI_DRIVER_STATUS_UPDATE_REQUEST, FMI_DRIVER_STATUS_UPDATE_RESPONSE, FMI_HOS_8_HOUR_RULE_ENABLE_RECEIPT, FMI_HOS_8_HOUR_RULE_ENABLE_REQUEST, FMI_HOS_AUTO_STATUS_FEATURE_RECEIPT, FMI_HOS_AUTO_STATUS_FEATURE_REQUEST, FMI_HOS_SET_SETTING_DATA_RECEIPT, FMI_HOS_SET_SETTING_DATA_REQUEST, FMI_ID_A602_STOP, FMI_ID_A603_STOP, FMI_ID_A604_OPEN_TEXT_MSG, FMI_ID_A604_OPEN_TEXT_MSG_RCPT, FMI_ID_A607_CLIENT_OPEN_TXT_MSG, FMI_ID_AUTO_ARRIVAL, FMI_ID_CANNED_RESP_LIST_RCPT, FMI_ID_CLIENT_OPEN_TXT_MSG, FMI_ID_CLIENT_TXT_MSG_RCPT, FMI_ID_CREATE_WAYPOINT_CAT, FMI_ID_CREATE_WAYPOINT_CAT_RCPT, FMI_ID_DATA_DELETION, FMI_ID_DEL_DRIVER_STATUS_LIST_ITEM_RCPT, FMI_ID_DELETE_CANNED_MSG, FMI_ID_DELETE_CANNED_MSG_RCPT, FMI_ID_DELETE_CANNED_RESPONSE, FMI_ID_DELETE_CANNED_RESPONSE_RCPT, FMI_ID_DELETE_DRIVER_STATUS_LIST_ITEM, FMI_ID_DELETE_WAYPOINT_CAT, FMI_ID_DELETE_WAYPOINT_CAT_RCPT, FMI_ID_DRIVER_ID_RCPT, FMI_ID_DRIVER_ID_REQUEST, FMI_ID_DRIVER_ID_UPDATE, FMI_ID_DRIVER_ID_UPDATE_D607, FMI_ID_DRIVER_STATUS_LIST_REFRESH, FMI_ID_DRIVER_STATUS_RCPT, FMI_ID_DRIVER_STATUS_REQUEST, FMI_ID_DRIVER_STATUS_UPDATE, FMI_ID_DRIVER_STATUS_UPDATE_D607, FMI_ID_ENABLE, FMI_ID_ETA_DATA, FMI_ID_ETA_DATA_RCPT, FMI_ID_ETA_DATA_REQUEST, FMI_ID_ETA_MODE_RCPT, FMI_ID_ETA_MODE_REQUEST, FMI_ID_FILE_DATA_PACKET, FMI_ID_FILE_END_RCPT, FMI_ID_FILE_PACKET_RCPT, FMI_ID_FILE_START_RCPT, FMI_ID_FILE_TRANSFER_END, FMI_ID_FILE_TRANSFER_START, FMI_ID_GPI_FILE_INFORMATION, FMI_ID_GPI_FILE_INFORMATION_REQUEST, FMI_ID_LONG_TEXT_MSG, FMI_ID_LONG_TEXT_MSG_RCPT, FMI_ID_MSG_THROTTLING_COMMAND, FMI_ID_MSG_THROTTLING_QUERY, FMI_ID_MSG_THROTTLING_QUERY_RESPONSE, FMI_ID_MSG_THROTTLING_RESPONSE, FMI_ID_PING, FMI_ID_PING_RESPONSE, FMI_ID_PRODUCT_ID_DATA, FMI_ID_PRODUCT_ID_SUPPORT_RQST, FMI_ID_PROTOCOL_DATA, FMI_ID_REFRESH_CANNED_MSG_LIST, FMI_ID_REFRESH_CANNED_RESP_LIST, FMI_ID_SERVER_OK_ACK_TXT_MSG, FMI_ID_SERVER_OPEN_TXT_MSG, FMI_ID_SERVER_YES_NO_CONFIRM_MSG, FMI_ID_SET_CANNED_MSG, FMI_ID_SET_CANNED_MSG_RCPT, FMI_ID_SET_CANNED_RESP_LIST, FMI_ID_SET_CANNED_RESPONSE, FMI_ID_SET_CANNED_RESPONSE_RCPT, FMI_ID_SET_DRIVER_STATUS_LIST_ITEM, FMI_ID_SET_DRIVER_STATUS_LIST_ITEM_RCPT, FMI_ID_SORT_STOP_LIST, FMI_ID_SORT_STOP_LIST_ACK, FMI_ID_STOP_STATUS, FMI_ID_STOP_STATUS_RCPT, FMI_ID_STOP_STATUS_REQUEST, FMI_ID_TEXT_MSG_ACK, FMI_ID_TEXT_MSG_ACK_RCPT, FMI_ID_TEXT_MSG_DELETE_REQUEST, FMI_ID_TEXT_MSG_DELETE_RESPONSE, FMI_ID_TEXT_MSG_STATUS, FMI_ID_TEXT_MSG_STATUS_REQUEST, FMI_ID_UNICODE_REQUEST, FMI_ID_UNICODE_RESPONSE, FMI_ID_USER_INTERFACE_TEXT, FMI_ID_USER_INTERFACE_TEXT_RCPT, FMI_ID_WAYPOINT, FMI_ID_WAYPOINT_DELETE, FMI_ID_WAYPOINT_DELETED, FMI_ID_WAYPOINT_DELETED_RCPT, FMI_ID_WAYPOINT_RCPT, FMI_IFTA_DATA_DELETE_RECEIPT, FMI_IFTA_DATA_DELETE_REQUEST, FMI_IFTA_DATA_FETCH_RECEIPT, FMI_IFTA_DATA_FETCH_REQUEST, FMI_REBOOT_DEVICE_REQUEST, FMI_SAFE_MODE, FMI_SAFE_MODE_RESP, FMI_SENSOR_CONFIG_RECEIPT, FMI_SENSOR_CONFIG_REQUEST, FMI_SENSOR_DELETE_RECEIPT, FMI_SENSOR_DELETE_REQUEST, FMI_SENSOR_QUERY_DISPLAY_INDEX_RECEIPT, FMI_SENSOR_QUERY_DISPLAY_INDEX_REQUEST, FMI_SENSOR_UPDATE_REQUEST, FMI_SET_BAUD_RECEIPT, FMI_SET_BAUD_REQUEST, FMI_SET_ODOMETER_REQUEST, FMI_SHIPMENT_DOWNLOAD_RECEIPT, FMI_SHIPMENT_DOWNLOAD_RESPONSE, FMI_SPEED_LIMIT_ALERT, FMI_SPEED_LIMIT_ALERT_RCPT, FMI_SPEED_LIMIT_RCPT, FMI_SPEED_LIMIT_SET, FMI_STOP_CALC_ACK_RECEIPT, FMI_STOP_CALC_ACK_REQUEST, HOSART_CHANGE_STATUS, HOSART_CHANGE_TO_DRIVING_WARNING, HOSART_SET_PS_TO_OFF, HOSART_VIOLATION_FOUND, and HOSART_WARNING_FOUND.

void FmiLogParser::initGarminCommandNames ( )
private

Initialize the map of Garmin command IDs to text strings.

Definition at line 4288 of file FmiLogParser.cpp.

References COMMAND_REQ_DATE_TIME, COMMAND_REQ_UNIT_ID, COMMAND_TURN_OFF_PVT_DATA, COMMAND_TURN_ON_PVT_DATA, and resendPacket().

void FmiLogParser::initGarminPacketNames ( )
private

Initialize the map of Garmin packet IDs to text strings.

Definition at line 4258 of file FmiLogParser.cpp.

References ID_ACK_BYTE, ID_COMMAND_BYTE, ID_FMI_PACKET, ID_HOSART_PACKET, ID_NAK_BYTE, ID_PRODUCT_DATA, ID_PRODUCT_RQST, ID_PROTOCOL_ARRAY, ID_PVT_DATA, ID_SET_TIME_PACKET, and ID_UNIT_ID.

BOOL LogParser::readLog ( )
inherited

Reads from the log file starting from the end of the last read position and adds it to the display.

The display text is normally the Garmin packet name, but for FMI packets the FMI packet name is used, and for Garmin commands the Garmin command name is used.

Returns
TRUE if the log file was updated, FALSE if not (or an error occurred)

Definition at line 44 of file LogParser.cpp.

References cnt_of_array, FALSE, and TRUE.

void FmiLogParser::resendPacket ( int  aLineNumber)
virtual

Resend a packet to the client.

Parameters
aLineNumberThe line number of tha packet to send

Implements LogParser.

Definition at line 4302 of file FmiLogParser.cpp.

References FALSE, GarminTransportLayer::getInstance(), ID_DLE_BYTE, MAX_PACKET_SIZE, MAX_PAYLOAD_SIZE, GarminTransportLayer::tx(), and UTIL_hex_to_uint8().

Referenced by initGarminCommandNames().

void LogParser::reset ( )
inherited

Reset the log parser to initial state.

Definition at line 130 of file LogParser.cpp.

void LogParser::setRenderWidth ( int  aWidth)
inherited

Set the number of pixels available for rendering text.

Parameters
aWidthThe width of the packet detail area, in pixels

Definition at line 151 of file LogParser.cpp.

References LogParser::formatMultiLineHex().

Referenced by LogParser::getLineCount().

Member Data Documentation

std::map<uint16, CString> FmiLogParser::mFmiFeatureNames
private

Map of FMI feature IDs to display names for formatting.

Definition at line 161 of file FmiLogParser.h.

std::map<uint16, CString> FmiLogParser::mFmiPacketNames
private

Map of FMI packet IDs to display names for formatting.

Definition at line 156 of file FmiLogParser.h.

std::map<uint16, CString> FmiLogParser::mGarminCommandNames
private

Map of Garmin command IDs to display names for formatting.

Definition at line 149 of file FmiLogParser.h.

std::map<uint8, CString> FmiLogParser::mGarminPacketNames
private

Map of Garmin packet IDs to display names for formatting.

Definition at line 152 of file FmiLogParser.h.

std::map<uint16, CString> FmiLogParser::mHosartPacketNames
private

Map of HOSART packet IDs to display names for formatting.

Definition at line 166 of file FmiLogParser.h.

BOOL LogParser::mIsMorning
protectedinherited

If TRUE, the log was started in the mIsMorning (computed from log header)

Definition at line 89 of file LogParser.h.

int LogParser::mLineCount
protectedinherited

Number of lines that have been parsed so far.

Definition at line 98 of file LogParser.h.

std::map<int, std::streamoff> LogParser::mLineOffset
protectedinherited

Map of log items to the offset in the log file where the text line starts.

Definition at line 95 of file LogParser.h.

CString LogParser::mLogFilename
protectedinherited

File name of the currently open log file.

Definition at line 74 of file LogParser.h.

int LogParser::mLogStartHr
protectedinherited

Hour of the time when the log file was created (from log header)

Definition at line 77 of file LogParser.h.

int LogParser::mLogStartMillis
protectedinherited

Milliseconds of the time when the log file was created (from log header)

Definition at line 86 of file LogParser.h.

int LogParser::mLogStartMin
protectedinherited

Minutes of the time when the log file was created (from log header)

Definition at line 80 of file LogParser.h.

int LogParser::mLogStartSec
protectedinherited

Seconds of the time when the log file was created (from log header)

Definition at line 83 of file LogParser.h.

std::streamoff LogParser::mParseEndOffset
protectedinherited

Offset of the log file where parsing stopped.

Definition at line 92 of file LogParser.h.

int LogParser::mRenderWidth
protectedinherited

Available width in pixels to render the packet detail.

Definition at line 101 of file LogParser.h.


The documentation for this class was generated from the following files: