I2C hang recover function added

Dependencies:   UniGraphic mbed vt100

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pending.cpp Source File

pending.cpp

00001 #include "mbed.h"
00002 #include "edge_time.h"
00003 #include "pending.h"
00004 
00005 /*
00006 class pending_class {
00007 public:
00008 pending_class() ;
00009 ~pending_class() ;
00010 
00011 request_t *request ;
00012 uint32_t submit_time ;
00013 uint32_t replied_time ;
00014 } ;
00015 */
00016 
00017 pending_class::pending_class()
00018 {
00019     submit_time = edge_time ; /* save current time */
00020     replied_time = 0 ;
00021     request = new request_t ;
00022     request->messageType = 0 ;
00023     request->attrId = 0 ;
00024     request->requestId = 0 ;
00025     request->valueLen = 0 ;
00026     request->p_value = new uint8_t[256] ;
00027 }
00028 
00029 pending_class::pending_class(
00030     uint8_t     messageType, 
00031     uint16_t    attrId, 
00032     uint8_t     requestId, 
00033     uint16_t    valueLen, 
00034     uint8_t     *value
00035 ) 
00036 {
00037     submit_time = edge_time ; /* save current time */
00038     replied_time = 0 ;
00039     request = new request_t ;
00040     request->p_value = new uint8_t[256] ;
00041     request->messageType = messageType ;
00042     request->attrId = attrId ;
00043     request->requestId = requestId ;
00044     request->valueLen = valueLen ;
00045     memcpy(request->p_value, value, valueLen) ;
00046 }
00047 
00048 pending_class::~pending_class()
00049 {
00050     submit_time = 0 ;
00051     replied_time = 0 ;
00052     delete [] request->p_value ;
00053     request->p_value = 0 ;
00054     delete request ;
00055 }