MeterLogger
|
#include <esp8266.h>
#include "driver/uart.h"
#include "unix_time.h"
#include "mqtt.h"
#include "tinyprintf.h"
#include "utils.h"
#include "kmp.h"
#include "kmp_request.h"
#include "config.h"
#include "crypto/crypto.h"
#include "crypto/aes.h"
Go to the source code of this file.
Macros | |
#define | QUEUE_SIZE 256 |
Functions | |
static ICACHE_FLASH_ATTR void | kmp_received_task (os_event_t *events) |
ICACHE_FLASH_ATTR void | kmp_request_init () |
ICACHE_FLASH_ATTR void | kmp_set_mqtt_client (MQTT_Client *client) |
ICACHE_FLASH_ATTR void | kmp_register_meter_is_ready_cb (meter_is_ready_cb cb) |
ICACHE_FLASH_ATTR unsigned int | kmp_get_received_serial () |
ICACHE_FLASH_ATTR unsigned int | kmp_get_received_energy_kwh () |
ICACHE_FLASH_ATTR static void | kmp_get_serial_timer_func () |
ICACHE_FLASH_ATTR static void | kmp_get_register_timer_func () |
ICACHE_FLASH_ATTR static void | kmp_receive_timeout_timer_func () |
ICACHE_FLASH_ATTR void | kmp_request_send () |
unsigned int | kmp_fifo_in_use () |
unsigned char | kmp_fifo_put (unsigned char c) |
unsigned char | kmp_fifo_get (unsigned char *c) |
unsigned char | kmp_fifo_snoop (unsigned char *c, unsigned int pos) |
Variables | |
uint32_t | kmp_serial = 0 |
meter_is_ready_cb | kmp_meter_is_ready_cb = NULL |
bool | meter_is_ready_cb_called = false |
volatile unsigned int | fifo_head |
volatile unsigned int | fifo_tail |
volatile unsigned char | fifo_buffer [QUEUE_SIZE] |
unsigned char | frame [KMP_FRAME_L] |
unsigned int | frame_length |
uint16_t | register_list [8] |
kmp_response_t | response |
static MQTT_Client * | mqtt_client = NULL |
static os_timer_t | kmp_get_serial_timer |
static os_timer_t | kmp_get_register_timer |
static os_timer_t | kmp_receive_timeout_timer |
unsigned int | kmp_requests_sent |
#define QUEUE_SIZE 256 |
Definition at line 13 of file kmp_request.c.
Referenced by kmp_fifo_get(), kmp_fifo_put(), and kmp_fifo_snoop().
unsigned char kmp_fifo_get | ( | unsigned char * | c | ) |
Definition at line 384 of file kmp_request.c.
References fifo_buffer, fifo_tail, kmp_fifo_in_use(), and QUEUE_SIZE.
Referenced by kmp_received_task().
unsigned int kmp_fifo_in_use | ( | ) |
Definition at line 366 of file kmp_request.c.
References fifo_head, and fifo_tail.
Referenced by kmp_fifo_get(), kmp_fifo_put(), and kmp_fifo_snoop().
unsigned char kmp_fifo_put | ( | unsigned char | c | ) |
Definition at line 370 of file kmp_request.c.
References fifo_buffer, fifo_head, kmp_fifo_in_use(), and QUEUE_SIZE.
Referenced by uart0_rx_intr_handler().
unsigned char kmp_fifo_snoop | ( | unsigned char * | c, |
unsigned int | pos | ||
) |
Definition at line 398 of file kmp_request.c.
References fifo_buffer, fifo_tail, kmp_fifo_in_use(), and QUEUE_SIZE.
ICACHE_FLASH_ATTR unsigned int kmp_get_received_energy_kwh | ( | ) |
Definition at line 209 of file kmp_request.c.
References ICACHE_FLASH_ATTR, kmp_response_t::kmp_response_register_list, kmp_unit_to_string(), kmp_value_to_string(), mw_to_w_str(), and strncmp.
ICACHE_FLASH_ATTR unsigned int kmp_get_received_serial | ( | ) |
Definition at line 203 of file kmp_request.c.
References ICACHE_FLASH_ATTR, and kmp_serial.
|
static |
Definition at line 238 of file kmp_request.c.
References frame, frame_length, ICACHE_FLASH_ATTR, kmp_get_register(), register_list, and uart0_tx_buffer().
Referenced by kmp_request_send().
|
static |
Definition at line 230 of file kmp_request.c.
References frame, frame_length, ICACHE_FLASH_ATTR, kmp_get_serial(), and uart0_tx_buffer().
Referenced by kmp_request_send().
|
static |
Definition at line 256 of file kmp_request.c.
References ICACHE_FLASH_ATTR, kmp_request_send(), and kmp_requests_sent.
Referenced by kmp_request_send().
|
static |
Definition at line 46 of file kmp_request.c.
References current_unix_time, encrypt_aes_hmac_combined(), get_unix_time(), ICACHE_FLASH_ATTR, kmp_decode_frame(), kmp_fifo_get(), KMP_FRAME_L, kmp_meter_is_ready_cb, kmp_requests_sent, kmp_response_t::kmp_response_register_list, kmp_response_t::kmp_response_serial, kmp_serial, kmp_unit_to_string(), kmp_value_to_string(), memset, meter_is_ready_cb_called, MQTT_Publish(), MQTT_TOPIC_L, os_memset, os_printf, os_strncpy, response, strcat, strlen, system_get_free_heap_size(), and tfp_snprintf().
Referenced by kmp_request_init().
ICACHE_FLASH_ATTR void kmp_register_meter_is_ready_cb | ( | meter_is_ready_cb | cb | ) |
Definition at line 197 of file kmp_request.c.
References ICACHE_FLASH_ATTR, and kmp_meter_is_ready_cb.
ICACHE_FLASH_ATTR void kmp_request_init | ( | ) |
Definition at line 181 of file kmp_request.c.
References fifo_head, fifo_tail, ICACHE_FLASH_ATTR, kmp_received_task(), kmp_received_task_prio, kmp_received_task_queue, kmp_received_task_queue_length, kmp_requests_sent, and system_os_task().
ICACHE_FLASH_ATTR void kmp_request_send | ( | ) |
Definition at line 264 of file kmp_request.c.
References DEFAULT_METER_SERIAL, encrypt_aes_hmac_combined(), get_unix_time(), KMP_FRAME_L, kmp_get_register_timer, kmp_get_register_timer_func(), kmp_get_serial_timer, kmp_get_serial_timer_func(), kmp_meter_is_ready_cb, kmp_receive_timeout_timer, kmp_receive_timeout_timer_func(), kmp_requests_sent, kmp_serial, memset, meter_is_ready_cb_called, MQTT_MESSAGE_L, MQTT_Publish(), MQTT_TOPIC_L, NULL, os_printf, os_timer_arm, os_timer_disarm, os_timer_func_t, os_timer_setfn, strlen, system_get_free_heap_size(), and tfp_snprintf().
Referenced by kmp_receive_timeout_timer_func().
ICACHE_FLASH_ATTR void kmp_set_mqtt_client | ( | MQTT_Client * | client | ) |
volatile unsigned char fifo_buffer[QUEUE_SIZE] |
Definition at line 22 of file kmp_request.c.
Referenced by kmp_fifo_get(), kmp_fifo_put(), and kmp_fifo_snoop().
volatile unsigned int fifo_head |
Definition at line 21 of file kmp_request.c.
Referenced by kmp_fifo_in_use(), kmp_fifo_put(), and kmp_request_init().
volatile unsigned int fifo_tail |
Definition at line 21 of file kmp_request.c.
Referenced by kmp_fifo_get(), kmp_fifo_in_use(), kmp_fifo_snoop(), and kmp_request_init().
unsigned char frame[KMP_FRAME_L] |
Definition at line 25 of file kmp_request.c.
Referenced by kmp_get_register_timer_func(), and kmp_get_serial_timer_func().
unsigned int frame_length |
Definition at line 26 of file kmp_request.c.
Referenced by kmp_get_register_timer_func(), and kmp_get_serial_timer_func().
|
static |
Definition at line 35 of file kmp_request.c.
Referenced by kmp_request_send().
|
static |
Definition at line 34 of file kmp_request.c.
Referenced by kmp_request_send().
meter_is_ready_cb kmp_meter_is_ready_cb = NULL |
Definition at line 16 of file kmp_request.c.
Referenced by kmp_received_task(), kmp_register_meter_is_ready_cb(), and kmp_request_send().
|
static |
Definition at line 37 of file kmp_request.c.
Referenced by kmp_request_send().
unsigned int kmp_requests_sent |
Definition at line 39 of file kmp_request.c.
Referenced by kmp_receive_timeout_timer_func(), kmp_received_task(), kmp_request_init(), and kmp_request_send().
uint32_t kmp_serial = 0 |
Definition at line 15 of file kmp_request.c.
Referenced by kmp_get_received_serial(), kmp_received_task(), and kmp_request_send().
bool meter_is_ready_cb_called = false |
Definition at line 17 of file kmp_request.c.
Referenced by kmp_received_task(), and kmp_request_send().
|
static |
Definition at line 32 of file kmp_request.c.
uint16_t register_list[8] |
Definition at line 27 of file kmp_request.c.
Referenced by kmp_get_register_timer_func().
kmp_response_t response |
Definition at line 30 of file kmp_request.c.
Referenced by kmp_received_task().