The Smart Card Detective (SCD)
scd_logger.c
Go to the documentation of this file.
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 
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines