Files
templates/c/gas-logger/src/gas_logger_pcan.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";
}