/* ************************************************************************ ** ** Copyright (c) 2007..2014 by ** Core|Vision B.V. ** Cereslaan 10b ** 5384 VT Heesch ** The Netherlands ** ** All Rights Reserved ** ************************************************************************ */ /* ************************************************************************ ** ** Project name: Dual Inventive: Zelfsignalerende Kortsluit Lans ** Filename: zkl-log.h ** Author: Jack Weeland ** Date: April 7, 2008 ** File version: 1.00 of March 16, 2007 ** : ** 1.15 of April 7, 2008 ** ************************************************************************ */ /* ************************************************************************ ** ** Logging identifiers ** ************************************************************************ */ #ifndef _COMMON_ZKL_LOG_H #define _COMMON_ZKL_LOG_H // // Log identifiers with optional parameters // // Major logging identifiers (4-bit + 12-bit timestamp = 2 bytes) // Timestamp is formatted as (hour * 100 + minute) // id extra description parameter id and parameters // bytes // -- ----- ------------------------ --------------------------------------- // 0 2 system 0x0000 shutdown // 8 other start-up // system version (1 byte major) // system version (1 byte minor) // start-up count (2 bytes) // flags (2 bytes) // RCON register (2 bytes) // 1 measurement start // 2 measurement end // 3 short circuit detected // 4 short circuit _not_ detected // 5 1 measurement exception 0x00 suspend // 0x2x relay open/closed // 5 1+n measurement details 0x10 measurement details // max_sample (2 bytes) // b/a (2 bytes in 0.16 format) // 0x11 frequency sweep begin (both values 0) // or end (both not zero); also used to // log the PWM period (first value 0) // max_sample (2 bytes) // pwm_period (2 bytes) // 0x12 measurement average sample value // v_reference (2 bytes) // v_measure (2 bytes) // 1 0x22 auto-calibration start // 1+2 0x23 auto-calibration end (new detection threshold) // 0x80 v_reference raw samples // count (2 bytes) // samples (count x 2 bytes) // 0x81 v_measure raw samples // count (2 bytes) // samples (count x 2 bytes) // 0x82 v_reference filtered samples // count (2 bytes) // samples (count x 2 bytes) // 0x83 v_measure filtered samples // count (2 bytes) // samples (count x 2 bytes) // 6 1+1+2 battery state 0x00 battery "alarm" // 0x01 battery "empty" // 0x02 battery "recovered" // 0x03 battery "absent" // 0x10 battery level // 0x11 battery selection // 0x12 battery selection error // 0x13 battery "alarm" level // battery (1 byte) // level (2 bytes, ADC reading) // 0x80 battery age // battery (1 byte) // age in minutes (2 bytes) // 7 3 user switch state 0x0x measurement on/off switch // 0x1x led intensity switch // 0x2x lantern switch // 0x3x auto-calibration // 0x4x external contact // 0x5x gps power (5V) // 0x6x relay driver // 0xx0 button pressed // 0xx1 button released // 0x80 + when orred with one of the above: set externally // 8 1+n gsm state 0x00 subsystem activated // 0x01 modem found // baud_rate (2 bytes; BRG value) // 0x02 modem command error // len (1 byte, length of "str") // str ("len" bytes) // 0x03 modem command okay // len (1 byte, length of "str") // str ("len" bytes) // 0xF0 transmit details // len (1 byte, length of "str") // str ("len" bytes) // 0xF1 receive details // len (1 byte, length of "str") // str ("len" bytes) // 9 1+n sms subsystem 0x00 subsystem start // 0x10 compose sms // msg_t (2 bytes) // 0x11 compose sms error // msg_t (2 bytes, also a 8,0x02 error) // 0x20 sms in store // id (2 bytes) // da_len (1 byte, length of "da_str") // da_str ("len" bytes; destination address) // 0x21 sms sent // id (2 bytes) // 0x30 sms received // id (2 bytes) // oa_len (1 byte, length of "oa_str") // oa_str ("oa_len" bytes; originator address) // 0x31 status request // id (2 bytes) // 0x32 configuration modified // id (2 bytes) // len (2 bytes, length of "str") // str ("len" bytes; message text) // 0x3E details // id (2 bytes) // len (2 bytes, length of "str") // str ("len" bytes; message text) // 0x3F unrecognised message // id (2 bytes) // len (2 bytes, length of "str") // str ("len" bytes; message text) // A 1+n logging subsystem 0x00 system start-up // 0x10 I2C error // 0x20 uALFAT error // code result code // 0x21 log file error // code result code // 0x22 index file error // code result code // 0x30, 0x40, 0x50, 0x60, 0x70 // code result code // 0xF0 uALFAT command // cmd_str (string; command) // rpl_str (1 byte: reply) // B 1 gps subsystem 0x00 disable (power removed) // 0x01 enable (power applied) // 1+n tcp 0x10 TCP server connected // success or error (2 bytes, signed integer) // peer (string, the tcp-server) // 1+4+1+n geofence design 0x80 new design (int id, int #objects, str + length) // 1+11 geofence object 0x81 new object (int id, int object, byte type, int #points, float radius) // 1+12 geofence point 0x82 new point (int id, int object, float latitude, float longitude) // 1+2 geofence delete 0x87 design deleted (int id) // 1+2 geofence enter 0x88 entering object (int id) // 1+2 geofence exit 0x89 exiting object (int id) // C 1+1+2 automated factory test 0x00 aft enabled (and starting) // fillers (3 bytes) // 0x01 aft done (successful) // fillers (3 bytes) // 0x02 aft done with errors // fillers (3 bytes) // 1+1+2 0xF0 aft test result // test (1 byte) // result (2 bytes) // D 1+n system info 0x00 full version information // board (1 byte) // mcu (1+1 byte, major and minor) // wcpu (1+1 byte, major and minor) // prodid (12 bytes, product id) // 1+n 0x01 uALFAT version // str (string) version // 1+3 0x02 MCU version // board (1 byte) // mcu (1+1 byte, major and minor) // 1+14 0x03 WCPU version // wcpu (1+1 byte, major and minor) // prodid (12 bytes, product id) // 2 0x04 Re-programming counter // counter (2 bytes) // 1+12 0x10 new version // prodid (12 bytes; new product id) // 1+6 0x20 real time clock set // date+time (6 bytes, YYMMDDhhmmss) // 1+3*4 0x30 new GPS data received // long (float; longitude) // latt (float; lattitude) // alt (float; altitude) // 1+1 0x40 temperature reading (on-board LM75) // 0x41 temperature reading (NTC) // 0x42 temperature reading (Switch 3000) // temp (signed char) // 1+2 0x48 temperature reading (on-board LM75, 8.8 signed integer) // 0x49 temperature reading (NTC, 8.8 signed integer) // 0x4A temperature reading (Switch 3000) // temp (signed int, 8.8 format) // 3*4 0x90 accelerometer or tilt sensor // g(x) (float) // g(y) (float) // g(z) (float) // E 1+2 software trap 0x00 oscillator fail (common on the dsPIC30F4011 :-s) // 0x01 address error // 0x02 stack error // 0x03 math error // 0x04 dma controller error (2 bytes, DMACS0 contents) // F 6+3*4 timestamp (rtc+gps) rtc and gps data: // rtc (6 bytes, YYMMDDHHMMSS) // long (float; longitude) // latt (float; lattitude) // alt (float; altitude) // // Note about strings and their length: len=0xFF means that a second string, encoded as "len" // followed by "str", possibly of length 0, will follow the first string (of length 255) // // Fields in the log IDs // LOGF_MAJOR and LOGF_TIMESTAMP can be used to decode the header // #define LOGF_MAJOR(id_or_hdr) (((id_or_hdr) & 0xF000) >> 12) #define LOGF_TIMESTAMP(hdr) ((hdr) & 0x0FFF) #define LOGF_DETAIL(id) (((id) & 0x0F00) >> 8) #define LOGF_MINOR(id) (((id) & 0x00FF) >> 0) #define LOGF_ID(id) ((id) & 0xF0FF) #define LOG_ID(major,minor) (((major) << 12) | ((minor) << 0)) #define LOG_DETAIL(f) ((f) << 12) // // Major IDs // #define LOGM_SYS 0x0 #define LOGM_PRIVATE 0x0 // never sent to MTinfo #define LOGM_MEASURE_START 0x1 #define LOGM_MEASURE_END 0x2 #define LOGM_MEASURE_DETECT_OK 0x3 #define LOGM_MEASURE_DETECT_ALARM 0x4 #define LOGM_MEASUREMENT 0x5 #define LOGM_BATTERY 0x6 #define LOGM_KEY 0x7 #define LOGM_GSM 0x8 #define LOGM_TCP 0x8 // share with LOGM_GSM #define LOGM_SMS 0x9 #define LOGM_PERIPHERAL 0xA #define LOGM_GPS 0xB #define LOGM_AFT 0xC #define LOGM_SYSINFO 0xD #define LOGM_SWERR 0xE #define LOGM_TIMESTAMP 0xF // // The IDs for the Log() function // // system #define LOG_SYSSTART 0x0000 // system power-up (mcu version, start-up counter, flags and RCON // register, 1.1 + 2 + 2 + 2 = 8 bytes) #define LOG_SHUTDOWN 0x0001 // system shutdown #define LOG_APPLICATION_SPECIFIC 0x0000 // application defined data (not to be used for ZKL) #define LOG_VERSION 0xD000 // version and product ID (5+12 bytes) #define LOG_uALFAT_VERSION 0xD001 // uALFAT version (string) #define LOG_MCU_VERSION 0xD002 // board and sw version (1+2 bytes) #define LOG_WCPU_VERSION 0xD003 // sw version and product ID (2+12 bytes) #define LOG_REPROGRAM_COUNTER 0xD004 // counter (2 bytes) #define LOG_MCU_VERSION_DATECODE 0xD005 // version (board and sw w/ build) + datecode (1 + 2x1 + 2 + 2x2 bytes) #define LOG_MCU_FLASH_WRAP 0xD006 // flash was erase (to keep track on how often this happens) #define LOG_NEW_PRODID 0xD010 // new product ID (serial number) programmed #define LOG_NEW_IDCODE 0xD011 // new ID-code programmed (client specific identification) #define LOG_PRODID 0xD012 // product ID #define LOG_RELAY_DRIVER_OFF 0xD018 // relay driver off #define LOG_RELAY_DRIVER_ON 0xD019 // relay driver on #define LOG_SET_TIME 0xDD20 // RTC data #define LOG_SET_GPS_OLD 0xD030 // GPS data (old style) #define LOG_SET_GPS 0xD031 // GPS data, with HDOP, speed and heading #define LOG_GPS_PARAM 0xD03F // GPS parameters [unsigned int t_log, t_status] #define LOG_TEMPERATURE_ONBOARD_OLD 0xD040 // temperature in °C (signed 8-bit integer) #define LOG_TEMPERATURE_EXTERNAL_OLD 0xD041 // temperature in °C (signed 8-bit integer) #define LOG_TEMPERATURE_SWITCH3000_OLD 0xD042 // temperature in °C (signed 8-bit integer) #define LOG_TEMPERATURE_ONBOARD 0xD048 // temperature in °C in 8.8 signed fixed point #define LOG_TEMPERATURE_EXTERNAL 0xD049 // temperature in °C in 8.8 signed fixed point #define LOG_TEMPERATURE_SWITCH3000 0xD04A // temperature in °C in 8.8 signed fixed point #define LOG_TEMPERATURE_ONBOARD_PERIODIC 0xD148 #define LOG_TEMPERATURE_EXTERNAL_PERIODIC 0xD149 #define LOG_TEMPERATURE_SWITCH3000_PERIODIC 0xD14A #define LOG_TEMPERATURE_EXT1 (LOG_TEMPERATURE_ONBOARD) #define LOG_TEMPERATURE_EXT2 (LOG_TEMPERATURE_EXTERNAL) #define LOG_NTC_PARAM 0xD04F // NTC paramters #define LOG_ENTER_POWER_SAVE 0xD050 // entering power save mode #define LOG_EXIT_POWER_SAVE 0xD051 // exiting power save mode #define LOG_VIBR_NONE 0xD080 // no vibration sensed, or the end of one of the following #define LOG_VIBR_OTHER 0xD081 // uninterpretted vibration #define LOG_VIBR_TRAIN 0xD082 // vibration, train #define LOG_VIBR_CAR 0xD083 // vibration, transport in a car #define LOG_VIBR_FOOT 0xD084 // vibration, transport by foot #define LOG_TILT 0xD090 // tilt data: x,y,z in g's (float) #define LOG_RAILSENSOR_ALARM 0xD098 // rail sensor not attached (no steel/metal detected) #define LOG_RAILSENSOR_DETECT 0xD099 // rail sensor attached to rail (steel/metal detected) #define LOG_ISRBUFSZ 0xD0F0 // debugging: nr bytes in the ISR buffer #define LOG_TIMESTAMP 0xF000 // timestamp marker #define LOG_TIME_ADJUST 0xF001 // time adjusted (non-ZKL logging only) #define LOG_FILEPOS 0xF000 // file position of the log file; will NOT be written to // the log file on the SD-card but it is solely intended // for logging to the database server // measurement #define LOG_MEASURE_START 0x1000 // start of measurement #define LOG_MEASURE_END 0x2000 // end of measurement #define LOG_MEASURE_DETECT_OK 0x3000 // short circuit detected #define LOG_MEASURE_DETECT_ALARM 0x4000 // no short circuit detected #define LOG_MEASURE_SUSPEND 0x5000 // measurement suspended (battery almost dead?) #define LOG_MEASURE_CUTOFF 0x5001 // emergency cut off after software failure #define LOG_MEASURE_RETRY 0x5002 // measurement retried due to GSM interference #define LOG_MEASURE_FAIL 0x5003 // measurement failed #define LOG_MEASURE_DETAILS 0x5010 // measurement [int max_sample, unsigned int (b/a)*2^16] #define LOG_MEASURE_FREQ_SWEEP 0x5011 // frequency sweep [int ms_sample, int pwm_period] #define LOG_MEASURE_SUM 0x5712 // measurement [unsigned int v_ref_sum, v_meas_sum] #define LOG_MEASURE_OUTOFBOUNDS 0x5713 // measurement [unsigned int v_ref_max, v_meas_max] #define LOG_MEASURE_AMPL_SWEEP 0x5E14 // amplitude sweep [int ms_sample, int pwm_ampl] #define LOG_MEASURE_DC 0x5715 // DC component [int v_ref, int v_measure] #define LOG_MEASURE_RMS 0x5716 // measurement [unsigned int v_ref_rms, v_meas_rms] #define LOG_MEASURE_LATENCY 0x5E17 // latency from timer #1 interrupt to measurement #define LOG_MEASURE_LATENCY_EXP 0x5317 // latency too long #define LOG_MEASURE_PWM 0x5718 // PWM details [int period, amplitude, offset] #define LOG_MEASURE_PWM_SWEEP 0x5018 // PWM details after a sweep [int period, amplitude, offset] #define LOG_MEASURE_PWM_DEFAULT 0x5018 // PWM details at start of measurement [int period, amplitude, offset] #define LOG_MEASURE_RELAY_OPEN 0x5020 // relay feedback: open #define LOG_MEASURE_RELAY_CLOSED 0x5021 // relay feedback: closed #define LOG_MEASURE_AUTOCAL_START 0x5022 // start of auto-calibration #define LOG_MEASURE_AUTOCAL_END 0x5023 // end of auto-calibration #define LOG_MEASURE_DETECT_LIMIT 0x5024 // short circuit detection limit for b/a #define LOG_MEASURE_NATWS 0x5028 // NATWS [unsigned int counter, int direction] #define LOG_SAMPLES_VREF_RAW 0x5E80 // v_reference raw samples #define LOG_SAMPLES_VMEAS_RAW 0x5E81 // v_measure raw samples #define LOG_SAMPLES_VREF_FIR 0x5E82 // v_reference filtered samples #define LOG_SAMPLES_VMEAS_FIR 0x5E83 // v_measure filtered samples #define LOG_MEASURE_DETAILS_NEW 0x5090 // database logging only // [unsigned int rms, delta, unsigned int b/a, delta, int reason] // details, a.k.a. reason codes: #define LOGD_FLUSH_EOF 0 // end of log file #define LOGD_FLUSH_MEASUREMENT 1 // new measurement #define LOGD_FLUSH_AVG 2 // update for running average over the historical data #define LOGD_FLUSH_DELTA 3 // delta in historical data update from last measurement #define LOGD_FLUSH_H_DELTA 4 // update for delta in historical data // battery, always logged with the battery number // 0, 1: main batteries // 16..: Switch 3000 batteries to protect the sections // 32 : Switch 3000 emergency battery #define LOG_BATTERY_LOW 0x6000 // battery < 10.0V [int battery_adc] #define LOG_BATTERY_CRITICAL 0x6001 // battery < 9.0V [int battery_adc] #define LOG_BATTERY_RECOVERED 0x6002 // battery > 12.0V after low level [int battery_adc] #define LOG_BATTERY_ABSENT 0x6003 // battery has been removed #define LOG_BATTERY_LEVEL 0x6F10 // battery level #define LOG_BATTERY_LEVEL_PERIODIC 0x6010 // battery level (1 minute logging) #define LOG_BATTERY_LEVEL_1MIN (LOG_BATTERY_LEVEL_PERIODIC) #define LOG_BATTERY_SELECT 0x6011 // battery selection #define LOG_BATTERY_ERROR 0x6012 // battery error (wrong battery disabled) #define LOG_BATTERY_ALARMLEVEL 0x6313 // battery alarm level #define LOG_BATTERY_NORMLEVEL 0x6F14 // battery normalized (corrected) level #define LOG_BATTERY_AGE 0x6380 // battery age (minutes) // user interaction #define LOG_KEY_MEASUREMENT 0x7000 // measurement on/off switch #define LOG_KEY_MEASUREMENT_KEY_ON 0x7000 // measurement on key #define LOG_KEY_MEASUREMENT_KEY_OFF 0x7002 // measurement off key #define LOG_KEY_LIGHTINT 0x7010 // led intensity switch #define LOG_KEY_LIGHTINT_HIGH 0x7011 // led intensity turn to full #define LOG_KEY_LIGHTINT_LOW 0x7010 // led intensity dimmed #define LOG_KEY_LANTERN 0x7020 // lantern switch #define LOG_KEY_LANTERN_OFF 0x7020 // lantern switch #define LOG_KEY_LANTERN_ON 0x7021 // lantern switch #define LOG_KEY_AUTOCAL 0x7030 // auto-calibration switch #define LOG_KEY_EXT_CONTACT 0x7040 // external contact #define LOG_KEY_GPSPOWER 0x7050 // GPS 5V power #define LOG_KEY_RELAY_DRIVER 0x7060 // Relay driver #define LOG_KEY_SWITCH 0x7070 // Switch 3000 #define LOG_KEY_SWITCH_ENABLE 0x7072 // Switch 3000 released or withdrawn #define LOG_KEY_OFF 0x0000 // (feature is turned off) #define LOG_KEY_ON 0x0001 // (feature is turned on) #define LOG_KEY_EXT 0x0080 // (feature is set from SMS or TCP) #define LOG_KEY_AUTO 0x0008 // (feature is set automatically) // modem interaction #define LOG_GSM_SYSSTART 0x8000 // GSM/UART subsystem activated #define LOG_GSM_MODEM_FOUND 0x8001 // modem found [int brg_value] #define LOG_GSM_ERROR 0x8002 // command error [char *cmd] #define LOG_GSM_OK 0x8F03 // command ok [char *cmd] #define LOG_GSM_TIMEOUT 0x8004 // command time-out [char *cmd] #define LOG_GSM_PWRON_FAIL 0x8008 // modem power on failed #define LOG_GSM_PWROFF_FAIL 0x8009 // modem power off failed #define LOG_GSM_RESET 0x800C // modem reset #define LOG_GSM_PWRON 0x800E // modem powered up #define LOG_GSM_PWROFF 0x800F // modem powered off #define LOG_GSM_DETAILS 0x8710 // gsm info [char *cmd] #define LOG_GSM_SQRSSI 0x8318 // gsm signal quality and received signal strenght // [byte, 5 bits SQ (7..3) and 3 bits RSSI (2..0), // as defined by the AT+CSQ response] #define LOG_GSM_REGISTRATION 0x8019 // gsm registration [byte, GSMNOT_xxx constant] #define LOG_GSM_OPERATOR 0x801A // gsm operator [char*] #define LOG_GSM_LAC_CELLID 0x801B // gsm location area code and cell identifier [2 x unsigned int (16-bit)] #define LOG_WAVECOM_BACKTRACE 0x8020 // Wavecom error backtrace #define LOG_GSM_XMIT 0x8BF0 // transmitted data [char *str] #define LOG_GSM_RECV 0x8BF1 // received data [int len, char *str] // gprs/tcp #define LOG_GPRS_DETAILS 0x8080 // IPv4 addresses self, gateway, dns1, dns2 [4 x char[4]] #define LOG_GPRS_ERROR 0x8081 // error code [int] #define LOG_TCP_ERROR 0x8090 // status [int] #define LOG_TCP_DETAILS 0x8091 // peer [char*] #define LOG_TCP_SCMD 0x8BA0 // command received via TCP #define LOG_TCP_SREPLY 0x8BA1 // reply sent via TCP #define LOG_TCP_CCMD 0x8BA2 // command sent via TCP #define LOG_TCP_CREPLY 0x8BA3 // reply received via TCP // sms subsystem #define LOG_SMS_SYSSTART 0x9000 // SMS subsystem activated #define LOG_SMS_COMPOSE 0x9010 // SMS created [int msg_type] #define LOG_SMS_NOT_READY 0x9011 // SMS could not be created [int msg_type] #define LOG_SMS_QUEUED 0x9020 // SMS in message store [int id, char *da] -- no longer used #define LOG_SMS_SENT 0x9021 // SMS successfully sent [char *da] #define LOG_SMS_ERROR 0x9022 // SMS not sent [char *da] #define LOG_SMS_RECEIVED 0x9030 // SMS received [char *oa] #define LOG_SMS_STATUS_REQUEST 0x9031 // status requested [int id] #define LOG_SMS_MODIFY_REQUEST 0x9032 // eeprom data modification [int id, char *msg_text] #define LOG_SMS_TEXT 0x933E // SMS text [char *msg_text] #define LOG_SMS_UNKNOWN_REQUEST 0x903F // superfluous (bogus?) SMS data [int id, char *msg_text] // i2c subsystem #define LOG_I2C_SYSSTART 0xA000 // I2C and logging started #define LOG_I2C_RESET 0xA201 // I2C bus reset #define LOG_I2C_UALFAT_RESET 0xA001 // uALFAT reset #define LOG_I2C_NO_BUS 0xA010 // I2C bus error #define LOG_I2C_BUS_ERROR 0xA020 // I2C or µALFAT error [unsigned char error] #define LOG_I2C_UALFAT_ERROR (LOG_I2C_BUS_ERROR) #define LOG_I2C_BUS_ERROR_DEBUG 0xA320 // I2C or µALFAT error [unsigned char error] #define LOG_I2C_FILE_ERROR 0xA021 // file or file system error [unsigned char error] #define LOG_I2C_INDEX_ERROR 0xA022 // index file or file system error [unsigned char error] #define LOG_I2C_INCOMPLETE 0xA023 // log file is incomplete (server protocol only) #define LOG_I2C_REPLAY_ERROR 0xA924 // log reply retry [error, rpgm, startup, filepos] #define LOG_I2C_REPLAY_RETRY 0xA924 // log reply retry [error, rpgm, startup, filepos] #define LOG_FILE_ERROR (LOG_I2C_FILE_ERROR) #define LOG_REPLAY_ERROR (LOG_I2C_REPLAY_ERROR) #define LOG_REPLAY_RETRY (LOG_I2C_REPLAY_RETRY) #define LOG_SWI2C_ERROR 0xA030 // software I2C bus error #define LOG_SW1W_ERROR 0xA040 // software 1-Wire bus error #define LOG_CAN_ERROR 0xA050 // CAN bus error #define LOG_SWITCH3000_ERROR 0xA060 // Switch 3000 error #define LOGD_SWITCH3000_ERROR 0x80 // not all sections have switched correctly #define LOGD_SWITCH3000_ERRMASK 0xF0 // (mask) #define LOGD_SWITCH3000_SECMASK 0x0F // (mask) #define LOG_SWITCH3000_GET_STATUS 0xAD61 // Switch 3000 get status #define LOG_SWITCH3000_STATE 0xAD62 // Switch 3000 current status [unsigned int switch_state] #define LOG_SWITCH3000_STATE_CHANGE 0xA062 // Switch 3000 current status [...] after change #define LOG_SWITCH3000_WITHDRAW 0xA064 // Switch 3000 release to project [unsigned long] withdrawn #define LOG_SWITCH3000_RELEASE 0xA065 // Switch 3000 released to project [unsigned long] #define LOG_SWITCH3000_OFF 0xA068 // Switch 3000 turned off #define LOG_SWITCH3000_ON 0xA069 // Switch 3000 turned on #define LOG_PM3000_ERROR 0xA070 // Power Management 3000 error #define LOG_PM3000_SWITCH3000_OFF 0xA778 // Switch 3000 powered off #define LOG_PM3000_SWITCH3000_ON 0xA779 // Switch 3000 powered on #define LOG_PM3000_GPIO5_OFF 0xA77A // GPIO5 powered off #define LOG_PM3000_GPIO5_ON 0xA77B // GPIO5 powered on #define LOG_PM3000_CHARGER_OFF 0xA37C // Power Management: battery #2 charger off #define LOG_PM3000_CHARGER_ON 0xA37D // Power Management: battery #2 charger on #define LOG_PM3000_BOOST_OFF 0xAF7E // Power Management: V_measurement 5.7V #define LOG_PM3000_BOOST_ON 0xAF7F // Power Management: V_measurement 9V #define LOG_I2C_UALFAT_CMD 0xAFF0 // commands sent to the uALFAT // gps subsystem #define LOG_GPS_ENABLE 0xB300 // B300..B303: apply or remove power [char power] #define LOG_GPS_ERROR 0xB008 // [int error_code] // geofencing #define LOG_GEOFENCE_DESIGN 0xB180 #define LOG_GEOFENCE_OBJECT 0xB181 #define LOG_GEOFENCE_POINT 0xB182 #define LOG_GEOFENCE_DELETE 0xB387 #define LOG_GEOFENCE_ENTER 0xB088 #define LOG_GEOFENCE_EXIT 0xB089 // automated factor test #define LOG_AFT_START 0xC000 // enabled and starting #define LOG_AFT_SUCCESS 0xC001 // done (successfull) #define LOG_AFT_ERROR 0xC002 // done with errors #define LOG_AFT_RESULT 0xC0F0 // test result [unsigned char test, int result] // software traps, in "traps.c" - usually this is serious shit #define LOG_SWERR_OSCILLATOR_FAIL 0xE000 #define LOG_SWERR_ADDRESS_ERROR 0xE001 #define LOG_SWERR_STACK_ERROR 0xE002 #define LOG_SWERR_MATH_ERROR 0xE003 #define LOG_SWERR_DMAC_ERROR 0xE004 #define LOG_SWERR_IPL_RAISED 0xE010 // generic string logging #define LOG_MCU_GENERIC_STRING 0xE0F0 // generic string [int len, char *str] // Checksum init value (rather arbitrary, but shouldn't be zero // because the checksum of a block of zeros will be zero then, // and since this is the most common type of error, it won't be // possible to detect this) // NB: checksums are introduced on 20110606 #define LOG_CHECKSUM_INIT 0x92 #endif /* _COMMON_ZKL_LOG_H */