/* HM-MOD-UART/HM-LGW-O-TW-W-EU driver
*
- * Copyright (c) 2016 Michael Gernoth <michael@gernoth.net>
+ * Copyright (c) 2016-17 Michael Gernoth <michael@gernoth.net>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
#define HMUARTLGW_OS_GET_FIRMWARE 0x02
#define HMUARTLGW_OS_CHANGE_APP 0x03
#define HMUARTLGW_OS_ACK 0x04
+#define HMUARTLGW_OS_UPDATE_FIRMWARE 0x05
#define HMUARTLGW_OS_UNSOL_CREDITS 0x05
#define HMUARTLGW_OS_NORMAL_MODE 0x06
#define HMUARTLGW_OS_UPDATE_MODE 0x07
#define HMUARTLGW_APP_SET_OLD_KEY 0x0F /* key index */
#define HMUARTLGW_APP_DEFAULT_HMID 0x10
+#define HMUARTLGW_DUAL_GET_APP 0x01
+#define HMUARTLGW_DUAL_CHANGE_APP 0x02
+
#define HMUARTLGW_ACK_EINPROGRESS 0x08
enum hmuartlgw_dst {
HMUARTLGW_OS = 0,
HMUARTLGW_APP = 1,
+ HMUARTLGW_DUAL = 0xfe,
+ HMUARTLGW_DUAL_ERR = 0xff,
};
typedef int (*hmuartlgw_cb_fn)(enum hmuartlgw_dst dst, uint8_t *buf, int buf_len, void *data);
int unescape_next;
};
-struct hmuartlgw_dev *hmuart_init(char *device, hmuartlgw_cb_fn cb, void *data);
+struct hmuartlgw_dev *hmuart_init(char *device, hmuartlgw_cb_fn cb, void *data, int app);
struct hmuartlgw_dev *hmlgw_init(char *device, hmuartlgw_cb_fn cb, void *data);
int hmuartlgw_send_raw(struct hmuartlgw_dev *dev, uint8_t *frame, int framelen);
int hmuartlgw_send(struct hmuartlgw_dev *dev, uint8_t *cmd, int cmdlen, enum hmuartlgw_dst dst);