14 lines
762 B
C
14 lines
762 B
C
#include "gas_logger_pcan.h"
|
|
static pcan_gas_status_t result(gl_result r)
|
|
{ return r==GL_OK ? PCAN_GAS_OK : r==GL_ADDRESS ? PCAN_GAS_NO_REG : PCAN_GAS_REJECTED; }
|
|
static pcan_gas_status_t read_word(const pcan_gas_region_t *r,uint16_t o,uint16_t *v)
|
|
{ return result(gl_can_read(r->user,(uint16_t)(r->base+o),v,1)); }
|
|
static pcan_gas_status_t write_word(const pcan_gas_region_t *r,uint16_t o,uint16_t v)
|
|
{ return result(gl_write(r->user,(uint16_t)(r->base+o),v)); }
|
|
void gl_pcan_region_init(pcan_gas_region_t *r,gas_logger *l)
|
|
{
|
|
r->base=l->config.base;
|
|
r->count=(uint16_t)(GL_DATA_OFFSET+(uint32_t)l->config.capacity*(l->config.channels+GL_HEADER_WORDS));
|
|
r->storage=0;r->read=read_word;r->write=write_word;r->flags=0;r->user=l;r->name="gas-logger";
|
|
}
|