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