509 lines
25 KiB
C
Executable File
509 lines
25 KiB
C
Executable File
/*
|
||
************************************************************************
|
||
**
|
||
** 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 <20>C (signed 8-bit integer)
|
||
#define LOG_TEMPERATURE_EXTERNAL_OLD 0xD041 // temperature in <20>C (signed 8-bit integer)
|
||
#define LOG_TEMPERATURE_SWITCH3000_OLD 0xD042 // temperature in <20>C (signed 8-bit integer)
|
||
#define LOG_TEMPERATURE_ONBOARD 0xD048 // temperature in <20>C in 8.8 signed fixed point
|
||
#define LOG_TEMPERATURE_EXTERNAL 0xD049 // temperature in <20>C in 8.8 signed fixed point
|
||
#define LOG_TEMPERATURE_SWITCH3000 0xD04A // temperature in <20>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 <20>ALFAT error [unsigned char error]
|
||
#define LOG_I2C_UALFAT_ERROR (LOG_I2C_BUS_ERROR)
|
||
#define LOG_I2C_BUS_ERROR_DEBUG 0xA320 // I2C or <20>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 */
|