MeterLogger
kmp.h
Go to the documentation of this file.
1 
2 #define KMP_FRAME_L 1024
3 
4 typedef struct {
5  int16_t rid;
6  uint8_t unit;
7  uint8_t length;
8  uint8_t si_ex;
9  int32_t value;
11 
12 typedef kmp_response_register_t kmp_response_register_list_t[8]; // max 8 registers per request
13 
14 typedef struct {
15  unsigned int kmp_response_serial;
20 
22 uint16_t kmp_crc16();
23 
25 unsigned int kmp_get_type(unsigned char *frame);
26 
28 unsigned int kmp_get_serial(unsigned char *frame);
29 
31 unsigned int kmp_set_clock(unsigned char *frame, uint64_t unix_time);
32 
34 unsigned int kmp_get_register(unsigned char *frame, uint16_t *register_list, uint16_t register_list_length);
35 
37 int kmp_decode_frame(unsigned char *frame, unsigned char frame_length, kmp_response_t *response);
38 
39 
41 double kmp_value_to_double(int32_t value, uint8_t si_ex);
42 
44 void kmp_value_to_string(int32_t value, uint8_t si_ex, unsigned char *value_string);
45 
47 void kmp_unit_to_string(uint8_t unit, unsigned char *unit_string);
48 
50 void kmp_byte_stuff();
51 
53 void kmp_byte_unstuff();
unsigned int frame_length
kmp_response_register_t kmp_response_register_list_t[8]
Definition: kmp.h:12
char frame[EN61107_FRAME_L]
unsigned int kmp_response_meter_type
Definition: kmp.h:16
en61107_response_t response
#define ICACHE_FLASH_ATTR
Definition: c_types.h:99
ICACHE_FLASH_ATTR unsigned int kmp_get_serial(unsigned char *frame)
Definition: kmp.c:139
ICACHE_FLASH_ATTR uint16_t kmp_crc16()
Definition: kmp.c:352
unsigned int kmp_response_sw_revision
Definition: kmp.h:17
ICACHE_FLASH_ATTR void kmp_byte_unstuff()
Definition: kmp.c:602
uint8_t length
Definition: kmp.h:7
ICACHE_FLASH_ATTR unsigned int kmp_set_clock(unsigned char *frame, uint64_t unix_time)
Definition: kmp.c:175
kmp_response_register_list_t kmp_response_register_list
Definition: kmp.h:18
ICACHE_FLASH_ATTR unsigned int kmp_get_register(unsigned char *frame, uint16_t *register_list, uint16_t register_list_length)
Definition: kmp.c:181
ICACHE_FLASH_ATTR void kmp_value_to_string(int32_t value, uint8_t si_ex, unsigned char *value_string)
Definition: kmp.c:394
ICACHE_FLASH_ATTR void kmp_unit_to_string(uint8_t unit, unsigned char *unit_string)
Definition: kmp.c:442
uint8_t si_ex
Definition: kmp.h:8
ICACHE_FLASH_ATTR int kmp_decode_frame(unsigned char *frame, unsigned char frame_length, kmp_response_t *response)
Definition: kmp.c:239
ICACHE_FLASH_ATTR unsigned int kmp_get_type(unsigned char *frame)
Definition: kmp.c:103
uint8_t unit
Definition: kmp.h:6
uint16_t register_list[8]
Definition: kmp_request.c:27
ICACHE_FLASH_ATTR void kmp_byte_stuff()
Definition: kmp.c:580
int32_t value
Definition: kmp.h:9
ICACHE_FLASH_ATTR double kmp_value_to_double(int32_t value, uint8_t si_ex)
Definition: kmp.c:366
unsigned int kmp_response_serial
Definition: kmp.h:15