mirror of https://github.com/arendst/Tasmota.git
900 lines
37 KiB
C
900 lines
37 KiB
C
/********************************************************************
|
|
* Tasmota LVGL lv_signal_bars widget
|
|
*******************************************************************/
|
|
#include "be_constobj.h"
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_warning_level
|
|
********************************************************************/
|
|
be_local_closure(get_warning_level, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_int(1),
|
|
}),
|
|
(be_nested_const_str("get_warning_level", 1737834441, 17)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E0046, // 0001 LDINT R3 71
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x2C040301, // 0003 AND R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_vbus_current
|
|
********************************************************************/
|
|
be_local_closure(get_vbus_current, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_real_hex(0x3EC00000),
|
|
}),
|
|
(be_nested_const_str("get_vbus_current", 1205347942, 16)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E005B, // 0001 LDINT R3 92
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: set_chg_current
|
|
********************************************************************/
|
|
be_local_closure(set_chg_current, /* name */
|
|
be_nested_proto(
|
|
8, /* nstack */
|
|
2, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("write8", -1160975764, 6),
|
|
/* K1 */ be_nested_string("read8", -1492179129, 5),
|
|
}),
|
|
(be_nested_const_str("set_chg_current", 336304386, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[12]) { /* code */
|
|
0x8C080100, // 0000 GETMET R2 R0 K0
|
|
0x54120032, // 0001 LDINT R4 51
|
|
0x8C140101, // 0002 GETMET R5 R0 K1
|
|
0x541E0032, // 0003 LDINT R7 51
|
|
0x7C140400, // 0004 CALL R5 2
|
|
0x541A00EF, // 0005 LDINT R6 240
|
|
0x2C140A06, // 0006 AND R5 R5 R6
|
|
0x541A000E, // 0007 LDINT R6 15
|
|
0x2C180206, // 0008 AND R6 R1 R6
|
|
0x30140A06, // 0009 OR R5 R5 R6
|
|
0x7C080600, // 000A CALL R2 3
|
|
0x80000000, // 000B RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_bat_current
|
|
********************************************************************/
|
|
be_local_closure(get_bat_current, /* name */
|
|
be_nested_proto(
|
|
5, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read13", 12887293, 6),
|
|
/* K1 */ be_const_real_hex(0x3F000000),
|
|
}),
|
|
(be_nested_const_str("get_bat_current", 1912106073, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 9]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E0079, // 0001 LDINT R3 122
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x8C080100, // 0003 GETMET R2 R0 K0
|
|
0x5412007B, // 0004 LDINT R4 124
|
|
0x7C080400, // 0005 CALL R2 2
|
|
0x04040202, // 0006 SUB R1 R1 R2
|
|
0x08040301, // 0007 MUL R1 R1 K1
|
|
0x80040200, // 0008 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_bat_power
|
|
********************************************************************/
|
|
be_local_closure(get_bat_power, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read24", 1808533811, 6),
|
|
/* K1 */ be_const_real_hex(0x3A102DE1),
|
|
}),
|
|
(be_nested_const_str("get_bat_power", -1227592443, 13)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E006F, // 0001 LDINT R3 112
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: json_append
|
|
********************************************************************/
|
|
be_local_closure(json_append, /* name */
|
|
be_nested_proto(
|
|
2, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 1]) { /* constants */
|
|
/* K0 */ be_nested_string("wire", -212213352, 4),
|
|
}),
|
|
(be_nested_const_str("json_append", -1292948012, 11)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
|
0x74060001, // 0001 JMPT R1 #0004
|
|
0x4C040000, // 0002 LDNIL R1
|
|
0x80040200, // 0003 RET 1 R1
|
|
0x80000000, // 0004 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_vbus_voltage
|
|
********************************************************************/
|
|
be_local_closure(get_vbus_voltage, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_real_hex(0x3ADED28A),
|
|
}),
|
|
(be_nested_const_str("get_vbus_voltage", -1896756895, 16)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E0059, // 0001 LDINT R3 90
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_temp
|
|
********************************************************************/
|
|
be_local_closure(get_temp, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 3]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_real_hex(0x3DCCCCCD),
|
|
/* K2 */ be_const_real_hex(0x4310B333),
|
|
}),
|
|
(be_nested_const_str("get_temp", -924047810, 8)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 6]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E005D, // 0001 LDINT R3 94
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x04040302, // 0004 SUB R1 R1 K2
|
|
0x80040200, // 0005 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: battery_present
|
|
********************************************************************/
|
|
be_local_closure(battery_present, /* name */
|
|
be_nested_proto(
|
|
6, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 4]) { /* constants */
|
|
/* K0 */ be_nested_string("wire", -212213352, 4),
|
|
/* K1 */ be_nested_string("read", -824204347, 4),
|
|
/* K2 */ be_nested_string("addr", 1087856498, 4),
|
|
/* K3 */ be_const_int(1),
|
|
}),
|
|
(be_nested_const_str("battery_present", -706570238, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[15]) { /* code */
|
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
|
0x8C040301, // 0001 GETMET R1 R1 K1
|
|
0x880C0102, // 0002 GETMBR R3 R0 K2
|
|
0x58100003, // 0003 LDCONST R4 K3
|
|
0x58140003, // 0004 LDCONST R5 K3
|
|
0x7C040800, // 0005 CALL R1 4
|
|
0x540A001F, // 0006 LDINT R2 32
|
|
0x2C040202, // 0007 AND R1 R1 R2
|
|
0x78060002, // 0008 JMPF R1 #000C
|
|
0x50040200, // 0009 LDBOOL R1 1 0
|
|
0x80040200, // 000A RET 1 R1
|
|
0x70020001, // 000B JMP #000E
|
|
0x50040000, // 000C LDBOOL R1 0 0
|
|
0x80040200, // 000D RET 1 R1
|
|
0x80000000, // 000E RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_aps_voltage
|
|
********************************************************************/
|
|
be_local_closure(get_aps_voltage, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_real_hex(0x3AB78035),
|
|
}),
|
|
(be_nested_const_str("get_aps_voltage", -2001930861, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E007D, // 0001 LDINT R3 126
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: set_dcdc_enable
|
|
********************************************************************/
|
|
be_local_closure(set_dcdc_enable, /* name */
|
|
be_nested_proto(
|
|
8, /* nstack */
|
|
3, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 5]) { /* constants */
|
|
/* K0 */ be_const_int(1),
|
|
/* K1 */ be_nested_string("write_bit", -1633976860, 9),
|
|
/* K2 */ be_const_int(0),
|
|
/* K3 */ be_const_int(2),
|
|
/* K4 */ be_const_int(3),
|
|
}),
|
|
(be_nested_const_str("set_dcdc_enable", 1594690786, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[22]) { /* code */
|
|
0x1C0C0300, // 0000 EQ R3 R1 K0
|
|
0x780E0004, // 0001 JMPF R3 #0007
|
|
0x8C0C0101, // 0002 GETMET R3 R0 K1
|
|
0x54160011, // 0003 LDINT R5 18
|
|
0x58180002, // 0004 LDCONST R6 K2
|
|
0x5C1C0400, // 0005 MOVE R7 R2
|
|
0x7C0C0800, // 0006 CALL R3 4
|
|
0x1C0C0303, // 0007 EQ R3 R1 K3
|
|
0x780E0004, // 0008 JMPF R3 #000E
|
|
0x8C0C0101, // 0009 GETMET R3 R0 K1
|
|
0x54160011, // 000A LDINT R5 18
|
|
0x541A0003, // 000B LDINT R6 4
|
|
0x5C1C0400, // 000C MOVE R7 R2
|
|
0x7C0C0800, // 000D CALL R3 4
|
|
0x1C0C0304, // 000E EQ R3 R1 K4
|
|
0x780E0004, // 000F JMPF R3 #0015
|
|
0x8C0C0101, // 0010 GETMET R3 R0 K1
|
|
0x54160011, // 0011 LDINT R5 18
|
|
0x58180000, // 0012 LDCONST R6 K0
|
|
0x5C1C0400, // 0013 MOVE R7 R2
|
|
0x7C0C0800, // 0014 CALL R3 4
|
|
0x80000000, // 0015 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: set_ldo_voltage
|
|
********************************************************************/
|
|
be_local_closure(set_ldo_voltage, /* name */
|
|
be_nested_proto(
|
|
9, /* nstack */
|
|
3, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 4]) { /* constants */
|
|
/* K0 */ be_const_int(2),
|
|
/* K1 */ be_nested_string("write8", -1160975764, 6),
|
|
/* K2 */ be_nested_string("read8", -1492179129, 5),
|
|
/* K3 */ be_const_int(3),
|
|
}),
|
|
(be_nested_const_str("set_ldo_voltage", -204466136, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[39]) { /* code */
|
|
0x540E0CE3, // 0000 LDINT R3 3300
|
|
0x240C0403, // 0001 GT R3 R2 R3
|
|
0x780E0001, // 0002 JMPF R3 #0005
|
|
0x540A000E, // 0003 LDINT R2 15
|
|
0x70020004, // 0004 JMP #000A
|
|
0x540E0063, // 0005 LDINT R3 100
|
|
0x0C0C0403, // 0006 DIV R3 R2 R3
|
|
0x54120011, // 0007 LDINT R4 18
|
|
0x040C0604, // 0008 SUB R3 R3 R4
|
|
0x5C080600, // 0009 MOVE R2 R3
|
|
0x1C0C0300, // 000A EQ R3 R1 K0
|
|
0x780E000C, // 000B JMPF R3 #0019
|
|
0x8C0C0101, // 000C GETMET R3 R0 K1
|
|
0x54160027, // 000D LDINT R5 40
|
|
0x8C180102, // 000E GETMET R6 R0 K2
|
|
0x54220027, // 000F LDINT R8 40
|
|
0x7C180400, // 0010 CALL R6 2
|
|
0x541E000E, // 0011 LDINT R7 15
|
|
0x2C180C07, // 0012 AND R6 R6 R7
|
|
0x541E000E, // 0013 LDINT R7 15
|
|
0x2C1C0407, // 0014 AND R7 R2 R7
|
|
0x54220003, // 0015 LDINT R8 4
|
|
0x381C0E08, // 0016 SHL R7 R7 R8
|
|
0x30180C07, // 0017 OR R6 R6 R7
|
|
0x7C0C0600, // 0018 CALL R3 3
|
|
0x1C0C0303, // 0019 EQ R3 R1 K3
|
|
0x780E000A, // 001A JMPF R3 #0026
|
|
0x8C0C0101, // 001B GETMET R3 R0 K1
|
|
0x54160027, // 001C LDINT R5 40
|
|
0x8C180102, // 001D GETMET R6 R0 K2
|
|
0x54220027, // 001E LDINT R8 40
|
|
0x7C180400, // 001F CALL R6 2
|
|
0x541E00EF, // 0020 LDINT R7 240
|
|
0x2C180C07, // 0021 AND R6 R6 R7
|
|
0x541E000E, // 0022 LDINT R7 15
|
|
0x2C1C0407, // 0023 AND R7 R2 R7
|
|
0x30180C07, // 0024 OR R6 R6 R7
|
|
0x7C0C0600, // 0025 CALL R3 3
|
|
0x80000000, // 0026 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: init
|
|
********************************************************************/
|
|
be_local_closure(init, /* name */
|
|
be_nested_proto(
|
|
5, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 3]) { /* constants */
|
|
/* K0 */ be_nested_string("I2C_Driver", 1714501658, 10),
|
|
/* K1 */ be_nested_string("init", 380752755, 4),
|
|
/* K2 */ be_nested_string("AXP192", 757230128, 6),
|
|
}),
|
|
(be_nested_const_str("init", 380752755, 4)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 9]) { /* code */
|
|
0x60040003, // 0000 GETGBL R1 G3
|
|
0x5C080000, // 0001 MOVE R2 R0
|
|
0xB80E0000, // 0002 GETNGBL R3 K0
|
|
0x7C040400, // 0003 CALL R1 2
|
|
0x8C040301, // 0004 GETMET R1 R1 K1
|
|
0x580C0002, // 0005 LDCONST R3 K2
|
|
0x54120033, // 0006 LDINT R4 52
|
|
0x7C040600, // 0007 CALL R1 3
|
|
0x80000000, // 0008 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_bat_voltage
|
|
********************************************************************/
|
|
be_local_closure(get_bat_voltage, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read12", -3890326, 6),
|
|
/* K1 */ be_const_real_hex(0x3A902DE0),
|
|
}),
|
|
(be_nested_const_str("get_bat_voltage", 706676538, 15)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E0077, // 0001 LDINT R3 120
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: set_ldo_enable
|
|
********************************************************************/
|
|
be_local_closure(set_ldo_enable, /* name */
|
|
be_nested_proto(
|
|
8, /* nstack */
|
|
3, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 3]) { /* constants */
|
|
/* K0 */ be_const_int(2),
|
|
/* K1 */ be_nested_string("write_bit", -1633976860, 9),
|
|
/* K2 */ be_const_int(3),
|
|
}),
|
|
(be_nested_const_str("set_ldo_enable", -1378465255, 14)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[15]) { /* code */
|
|
0x1C0C0300, // 0000 EQ R3 R1 K0
|
|
0x780E0004, // 0001 JMPF R3 #0007
|
|
0x8C0C0101, // 0002 GETMET R3 R0 K1
|
|
0x54160011, // 0003 LDINT R5 18
|
|
0x58180000, // 0004 LDCONST R6 K0
|
|
0x5C1C0400, // 0005 MOVE R7 R2
|
|
0x7C0C0800, // 0006 CALL R3 4
|
|
0x1C0C0302, // 0007 EQ R3 R1 K2
|
|
0x780E0004, // 0008 JMPF R3 #000E
|
|
0x8C0C0101, // 0009 GETMET R3 R0 K1
|
|
0x54160011, // 000A LDINT R5 18
|
|
0x58180002, // 000B LDCONST R6 K2
|
|
0x5C1C0400, // 000C MOVE R7 R2
|
|
0x7C0C0800, // 000D CALL R3 4
|
|
0x80000000, // 000E RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: set_dc_voltage
|
|
********************************************************************/
|
|
be_local_closure(set_dc_voltage, /* name */
|
|
be_nested_proto(
|
|
11, /* nstack */
|
|
3, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 6]) { /* constants */
|
|
/* K0 */ be_const_int(1),
|
|
/* K1 */ be_const_int(3),
|
|
/* K2 */ be_const_int(0),
|
|
/* K3 */ be_const_int(2),
|
|
/* K4 */ be_nested_string("write8", -1160975764, 6),
|
|
/* K5 */ be_nested_string("read8", -1492179129, 5),
|
|
}),
|
|
(be_nested_const_str("set_dc_voltage", -2112985360, 14)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[48]) { /* code */
|
|
0x140C0300, // 0000 LT R3 R1 K0
|
|
0x740E0001, // 0001 JMPT R3 #0004
|
|
0x240C0301, // 0002 GT R3 R1 K1
|
|
0x780E0000, // 0003 JMPF R3 #0005
|
|
0x80000600, // 0004 RET 0
|
|
0x4C0C0000, // 0005 LDNIL R3
|
|
0x541202BB, // 0006 LDINT R4 700
|
|
0x14100404, // 0007 LT R4 R2 R4
|
|
0x78120001, // 0008 JMPF R4 #000B
|
|
0x580C0002, // 0009 LDCONST R3 K2
|
|
0x70020010, // 000A JMP #001C
|
|
0x54120DAB, // 000B LDINT R4 3500
|
|
0x24100404, // 000C GT R4 R2 R4
|
|
0x78120001, // 000D JMPF R4 #0010
|
|
0x540E006F, // 000E LDINT R3 112
|
|
0x7002000B, // 000F JMP #001C
|
|
0x1C100303, // 0010 EQ R4 R1 K3
|
|
0x78120004, // 0011 JMPF R4 #0017
|
|
0x541208E2, // 0012 LDINT R4 2275
|
|
0x24100404, // 0013 GT R4 R2 R4
|
|
0x78120001, // 0014 JMPF R4 #0017
|
|
0x540E003E, // 0015 LDINT R3 63
|
|
0x70020004, // 0016 JMP #001C
|
|
0x541202BB, // 0017 LDINT R4 700
|
|
0x04100404, // 0018 SUB R4 R2 R4
|
|
0x54160018, // 0019 LDINT R5 25
|
|
0x0C100805, // 001A DIV R4 R4 R5
|
|
0x5C0C0800, // 001B MOVE R3 R4
|
|
0x54120025, // 001C LDINT R4 38
|
|
0x1C140301, // 001D EQ R5 R1 K1
|
|
0x78160001, // 001E JMPF R5 #0021
|
|
0x54120026, // 001F LDINT R4 39
|
|
0x70020002, // 0020 JMP #0024
|
|
0x1C140303, // 0021 EQ R5 R1 K3
|
|
0x78160000, // 0022 JMPF R5 #0024
|
|
0x54120022, // 0023 LDINT R4 35
|
|
0x8C140104, // 0024 GETMET R5 R0 K4
|
|
0x5C1C0800, // 0025 MOVE R7 R4
|
|
0x8C200105, // 0026 GETMET R8 R0 K5
|
|
0x5C280800, // 0027 MOVE R10 R4
|
|
0x7C200400, // 0028 CALL R8 2
|
|
0x5426007F, // 0029 LDINT R9 128
|
|
0x2C201009, // 002A AND R8 R8 R9
|
|
0x5426007E, // 002B LDINT R9 127
|
|
0x2C240609, // 002C AND R9 R3 R9
|
|
0x30201009, // 002D OR R8 R8 R9
|
|
0x7C140600, // 002E CALL R5 3
|
|
0x80000000, // 002F RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: write_gpio
|
|
********************************************************************/
|
|
be_local_closure(write_gpio, /* name */
|
|
be_nested_proto(
|
|
8, /* nstack */
|
|
3, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 4]) { /* constants */
|
|
/* K0 */ be_const_int(0),
|
|
/* K1 */ be_const_int(2),
|
|
/* K2 */ be_nested_string("write_bit", -1633976860, 9),
|
|
/* K3 */ be_const_int(3),
|
|
}),
|
|
(be_nested_const_str("write_gpio", -2027026962, 10)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[21]) { /* code */
|
|
0x280C0300, // 0000 GE R3 R1 K0
|
|
0x780E0007, // 0001 JMPF R3 #000A
|
|
0x180C0301, // 0002 LE R3 R1 K1
|
|
0x780E0005, // 0003 JMPF R3 #000A
|
|
0x8C0C0102, // 0004 GETMET R3 R0 K2
|
|
0x54160093, // 0005 LDINT R5 148
|
|
0x5C180200, // 0006 MOVE R6 R1
|
|
0x5C1C0400, // 0007 MOVE R7 R2
|
|
0x7C0C0800, // 0008 CALL R3 4
|
|
0x70020009, // 0009 JMP #0014
|
|
0x280C0303, // 000A GE R3 R1 K3
|
|
0x780E0007, // 000B JMPF R3 #0014
|
|
0x540E0003, // 000C LDINT R3 4
|
|
0x180C0203, // 000D LE R3 R1 R3
|
|
0x780E0004, // 000E JMPF R3 #0014
|
|
0x8C0C0102, // 000F GETMET R3 R0 K2
|
|
0x54160095, // 0010 LDINT R5 150
|
|
0x04180303, // 0011 SUB R6 R1 K3
|
|
0x5C1C0400, // 0012 MOVE R7 R2
|
|
0x7C0C0800, // 0013 CALL R3 4
|
|
0x80000000, // 0014 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: web_sensor
|
|
********************************************************************/
|
|
be_local_closure(web_sensor, /* name */
|
|
be_nested_proto(
|
|
11, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[14]) { /* constants */
|
|
/* K0 */ be_nested_string("wire", -212213352, 4),
|
|
/* K1 */ be_nested_string("string", 398550328, 6),
|
|
/* K2 */ be_nested_string("format", -1180859054, 6),
|
|
/* K3 */ be_nested_string("{s}VBus Voltage{m}%.3f V{e}", 165651270, 27),
|
|
/* K4 */ be_nested_string("{s}VBus Current{m}%.1f mA{e}", 1032721155, 28),
|
|
/* K5 */ be_nested_string("{s}Batt Voltage{m}%.3f V{e}", -1110659097, 27),
|
|
/* K6 */ be_nested_string("{s}Batt Current{m}%.1f mA{e}", 866537156, 28),
|
|
/* K7 */ be_nested_string("{s}Temp AXP{m}%.1f °C{e}", -1990510004, 25),
|
|
/* K8 */ be_nested_string("get_vbus_voltage", -1896756895, 16),
|
|
/* K9 */ be_nested_string("get_bat_voltage", 706676538, 15),
|
|
/* K10 */ be_nested_string("get_bat_current", 1912106073, 15),
|
|
/* K11 */ be_nested_string("get_temp", -924047810, 8),
|
|
/* K12 */ be_nested_string("tasmota", 424643812, 7),
|
|
/* K13 */ be_nested_string("web_send_decimal", 1407210204, 16),
|
|
}),
|
|
(be_nested_const_str("web_sensor", -1394870324, 10)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[26]) { /* code */
|
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
|
0x74060001, // 0001 JMPT R1 #0004
|
|
0x4C040000, // 0002 LDNIL R1
|
|
0x80040200, // 0003 RET 1 R1
|
|
0xA4060200, // 0004 IMPORT R1 K1
|
|
0x8C080302, // 0005 GETMET R2 R1 K2
|
|
0x40120704, // 0006 CONNECT R4 K3 K4
|
|
0x40100905, // 0007 CONNECT R4 R4 K5
|
|
0x40100906, // 0008 CONNECT R4 R4 K6
|
|
0x40100907, // 0009 CONNECT R4 R4 K7
|
|
0x8C140108, // 000A GETMET R5 R0 K8
|
|
0x7C140200, // 000B CALL R5 1
|
|
0x8C180108, // 000C GETMET R6 R0 K8
|
|
0x7C180200, // 000D CALL R6 1
|
|
0x8C1C0109, // 000E GETMET R7 R0 K9
|
|
0x7C1C0200, // 000F CALL R7 1
|
|
0x8C20010A, // 0010 GETMET R8 R0 K10
|
|
0x7C200200, // 0011 CALL R8 1
|
|
0x8C24010B, // 0012 GETMET R9 R0 K11
|
|
0x7C240200, // 0013 CALL R9 1
|
|
0x7C080E00, // 0014 CALL R2 7
|
|
0xB80E1800, // 0015 GETNGBL R3 K12
|
|
0x8C0C070D, // 0016 GETMET R3 R3 K13
|
|
0x5C140400, // 0017 MOVE R5 R2
|
|
0x7C0C0400, // 0018 CALL R3 2
|
|
0x80000000, // 0019 RET 0
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_bat_charge_current
|
|
********************************************************************/
|
|
be_local_closure(get_bat_charge_current, /* name */
|
|
be_nested_proto(
|
|
4, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 2]) { /* constants */
|
|
/* K0 */ be_nested_string("read13", 12887293, 6),
|
|
/* K1 */ be_const_real_hex(0x3F000000),
|
|
}),
|
|
(be_nested_const_str("get_bat_charge_current", 1385293050, 22)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 5]) { /* code */
|
|
0x8C040100, // 0000 GETMET R1 R0 K0
|
|
0x540E0079, // 0001 LDINT R3 122
|
|
0x7C040400, // 0002 CALL R1 2
|
|
0x08040301, // 0003 MUL R1 R1 K1
|
|
0x80040200, // 0004 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_battery_chargin_status
|
|
********************************************************************/
|
|
be_local_closure(get_battery_chargin_status, /* name */
|
|
be_nested_proto(
|
|
6, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 4]) { /* constants */
|
|
/* K0 */ be_nested_string("wire", -212213352, 4),
|
|
/* K1 */ be_nested_string("read", -824204347, 4),
|
|
/* K2 */ be_nested_string("addr", 1087856498, 4),
|
|
/* K3 */ be_const_int(1),
|
|
}),
|
|
(be_nested_const_str("get_battery_chargin_status", -2061725725, 26)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 7]) { /* code */
|
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
|
0x8C040301, // 0001 GETMET R1 R1 K1
|
|
0x880C0102, // 0002 GETMBR R3 R0 K2
|
|
0x58100003, // 0003 LDCONST R4 K3
|
|
0x58140003, // 0004 LDCONST R5 K3
|
|
0x7C040800, // 0005 CALL R1 4
|
|
0x80040200, // 0006 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified function: get_input_power_status
|
|
********************************************************************/
|
|
be_local_closure(get_input_power_status, /* name */
|
|
be_nested_proto(
|
|
6, /* nstack */
|
|
1, /* argc */
|
|
0, /* varg */
|
|
0, /* has upvals */
|
|
NULL, /* no upvals */
|
|
0, /* has sup protos */
|
|
NULL, /* no sub protos */
|
|
1, /* has constants */
|
|
( &(const bvalue[ 5]) { /* constants */
|
|
/* K0 */ be_nested_string("wire", -212213352, 4),
|
|
/* K1 */ be_nested_string("read", -824204347, 4),
|
|
/* K2 */ be_nested_string("addr", 1087856498, 4),
|
|
/* K3 */ be_const_int(0),
|
|
/* K4 */ be_const_int(1),
|
|
}),
|
|
(be_nested_const_str("get_input_power_status", -192138119, 22)),
|
|
(be_nested_const_str("input", -103256197, 5)),
|
|
( &(const binstruction[ 7]) { /* code */
|
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
|
0x8C040301, // 0001 GETMET R1 R1 K1
|
|
0x880C0102, // 0002 GETMBR R3 R0 K2
|
|
0x58100003, // 0003 LDCONST R4 K3
|
|
0x58140004, // 0004 LDCONST R5 K4
|
|
0x7C040800, // 0005 CALL R1 4
|
|
0x80040200, // 0006 RET 1 R1
|
|
})
|
|
)
|
|
);
|
|
/*******************************************************************/
|
|
|
|
|
|
/********************************************************************
|
|
** Solidified class: AXP192
|
|
********************************************************************/
|
|
extern const bclass be_class_I2C_Driver;
|
|
be_local_class(AXP192,
|
|
0,
|
|
&be_class_I2C_Driver,
|
|
be_nested_map(21,
|
|
( (struct bmapnode*) &(const bmapnode[]) {
|
|
{ be_nested_key("get_warning_level", 1737834441, 17, -1), be_const_closure(get_warning_level_closure) },
|
|
{ be_nested_key("get_vbus_current", 1205347942, 16, -1), be_const_closure(get_vbus_current_closure) },
|
|
{ be_nested_key("set_chg_current", 336304386, 15, 14), be_const_closure(set_chg_current_closure) },
|
|
{ be_nested_key("get_bat_current", 1912106073, 15, -1), be_const_closure(get_bat_current_closure) },
|
|
{ be_nested_key("get_bat_power", -1227592443, 13, 9), be_const_closure(get_bat_power_closure) },
|
|
{ be_nested_key("json_append", -1292948012, 11, -1), be_const_closure(json_append_closure) },
|
|
{ be_nested_key("get_vbus_voltage", -1896756895, 16, -1), be_const_closure(get_vbus_voltage_closure) },
|
|
{ be_nested_key("get_temp", -924047810, 8, -1), be_const_closure(get_temp_closure) },
|
|
{ be_nested_key("battery_present", -706570238, 15, -1), be_const_closure(battery_present_closure) },
|
|
{ be_nested_key("get_aps_voltage", -2001930861, 15, -1), be_const_closure(get_aps_voltage_closure) },
|
|
{ be_nested_key("set_dcdc_enable", 1594690786, 15, -1), be_const_closure(set_dcdc_enable_closure) },
|
|
{ be_nested_key("set_ldo_voltage", -204466136, 15, 7), be_const_closure(set_ldo_voltage_closure) },
|
|
{ be_nested_key("init", 380752755, 4, 2), be_const_closure(init_closure) },
|
|
{ be_nested_key("get_bat_voltage", 706676538, 15, 18), be_const_closure(get_bat_voltage_closure) },
|
|
{ be_nested_key("set_ldo_enable", -1378465255, 14, -1), be_const_closure(set_ldo_enable_closure) },
|
|
{ be_nested_key("set_dc_voltage", -2112985360, 14, 13), be_const_closure(set_dc_voltage_closure) },
|
|
{ be_nested_key("write_gpio", -2027026962, 10, -1), be_const_closure(write_gpio_closure) },
|
|
{ be_nested_key("web_sensor", -1394870324, 10, -1), be_const_closure(web_sensor_closure) },
|
|
{ be_nested_key("get_bat_charge_current", 1385293050, 22, 19), be_const_closure(get_bat_charge_current_closure) },
|
|
{ be_nested_key("get_battery_chargin_status", -2061725725, 26, -1), be_const_closure(get_battery_chargin_status_closure) },
|
|
{ be_nested_key("get_input_power_status", -192138119, 22, -1), be_const_closure(get_input_power_status_closure) },
|
|
})),
|
|
(be_nested_const_str("AXP192", 757230128, 6))
|
|
);
|
|
/*******************************************************************/
|
|
|
|
void be_load_AXP192_class(bvm *vm) {
|
|
be_pushntvclass(vm, &be_class_AXP192);
|
|
be_setglobal(vm, "AXP192");
|
|
be_pop(vm, 1);
|
|
}
|