00001 00032 #include <string.h> 00033 00034 #include "scd_logger.h" 00035 #include "scd_values.h" 00036 00037 00043 void ResetLogger(log_struct_t *logger) 00044 { 00045 if(logger == NULL) 00046 return; 00047 00048 memset(logger->log_buffer, 0, LOG_BUFFER_SIZE); 00049 logger->position = 0; 00050 } 00051 00061 uint8_t LogByte1(log_struct_t *logger, SCD_LOG_BYTE type, uint8_t byte_a) 00062 { 00063 if(logger == NULL) 00064 return RET_ERR_PARAM; 00065 if((type & 0x03) != 0x00) 00066 return RET_ERR_PARAM; 00067 if(logger->position > LOG_BUFFER_SIZE - 2) 00068 return RET_ERR_MEMORY; 00069 00070 logger->log_buffer[logger->position++] = type; 00071 logger->log_buffer[logger->position++] = byte_a; 00072 00073 return 0; 00074 } 00075 00086 uint8_t LogByte2(log_struct_t *logger, SCD_LOG_BYTE type, uint8_t byte_a, 00087 uint8_t byte_b) 00088 { 00089 if(logger == NULL) 00090 return RET_ERR_PARAM; 00091 if((type & 0x03) != 0x01) 00092 return RET_ERR_PARAM; 00093 if(logger->position > LOG_BUFFER_SIZE - 3) 00094 return RET_ERR_MEMORY; 00095 00096 logger->log_buffer[logger->position++] = type; 00097 logger->log_buffer[logger->position++] = byte_a; 00098 logger->log_buffer[logger->position++] = byte_b; 00099 00100 return 0; 00101 } 00102 00103 00115 uint8_t LogByte3(log_struct_t *logger, SCD_LOG_BYTE type, uint8_t byte_a, 00116 uint8_t byte_b, uint8_t byte_c) 00117 { 00118 if(logger == NULL) 00119 return RET_ERR_PARAM; 00120 if((type & 0x03) != 0x02) 00121 return RET_ERR_PARAM; 00122 if(logger->position > LOG_BUFFER_SIZE - 4) 00123 return RET_ERR_MEMORY; 00124 00125 logger->log_buffer[logger->position++] = type; 00126 logger->log_buffer[logger->position++] = byte_a; 00127 logger->log_buffer[logger->position++] = byte_b; 00128 logger->log_buffer[logger->position++] = byte_c; 00129 00130 return 0; 00131 } 00132 00145 uint8_t LogByte4(log_struct_t *logger, SCD_LOG_BYTE type, uint8_t byte_a, 00146 uint8_t byte_b, uint8_t byte_c, uint8_t byte_d) 00147 { 00148 if(logger == NULL) 00149 return RET_ERR_PARAM; 00150 if((type & 0x03) != 0x03) 00151 return RET_ERR_PARAM; 00152 if(logger->position > LOG_BUFFER_SIZE - 5) 00153 return RET_ERR_MEMORY; 00154 00155 logger->log_buffer[logger->position++] = type; 00156 logger->log_buffer[logger->position++] = byte_a; 00157 logger->log_buffer[logger->position++] = byte_b; 00158 logger->log_buffer[logger->position++] = byte_c; 00159 logger->log_buffer[logger->position++] = byte_d; 00160 00161 return 0; 00162 } 00163