mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 17:59:27 +02:00
Compare commits
7 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d8153c48bb | ||
![]() |
f3a6157080 | ||
![]() |
867512eecd | ||
![]() |
f9109d0348 | ||
![]() |
9943406836 | ||
![]() |
18ee9d6c27 | ||
![]() |
31ea1f0928 |
5 changed files with 31 additions and 12 deletions
|
@ -106,3 +106,20 @@ Navigate to Battery-Emulator/test folder
|
||||||
sudo cmake CMakeLists.txt
|
sudo cmake CMakeLists.txt
|
||||||
sudo make
|
sudo make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Downloading a pull request build to test locally 🛜
|
||||||
|
If you want to test a pull request, you can download the precompiled binaries from the build system. To do this,start by clicking on the "**Checks**" tab
|
||||||
|
|
||||||
|
<img width="779" height="312" alt="image" src="https://github.com/user-attachments/assets/fc7783c1-ba61-440e-ab09-b53d2b49f1bb" />
|
||||||
|
|
||||||
|
Then select which hardware you need the binaries for. Currently we build for these hardwares:
|
||||||
|
- LilyGo T-CAN485
|
||||||
|
- Stark CMR
|
||||||
|
- LilyGo T-2CAN
|
||||||
|
|
||||||
|
<img width="647" height="476" alt="image" src="https://github.com/user-attachments/assets/fbb97719-0155-4792-9d91-c51e6052fa57" />
|
||||||
|
|
||||||
|
After selecting the hardware you need, click the "**Upload Artifact**", and there will be a download link. Download the file, and [OTA Update](https://github.com/dalathegreat/Battery-Emulator/wiki/OTA-Update) your device with this file!
|
||||||
|
|
||||||
|
<img width="1714" height="697" alt="image" src="https://github.com/user-attachments/assets/2e17f90f-cc7d-4265-b7bc-7aa5cc6b6ec8" />
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The current software version, shown on webserver
|
// The current software version, shown on webserver
|
||||||
const char* version_number = "9.1.2";
|
const char* version_number = "9.2.dev";
|
||||||
|
|
||||||
// Interval timers
|
// Interval timers
|
||||||
volatile unsigned long currentMillis = 0;
|
volatile unsigned long currentMillis = 0;
|
||||||
|
|
|
@ -21,6 +21,9 @@ class StarkHal : public Esp32Hal {
|
||||||
public:
|
public:
|
||||||
const char* name() { return "Stark CMR Module"; }
|
const char* name() { return "Stark CMR Module"; }
|
||||||
|
|
||||||
|
//Always enable BMS power on Stark CMR, it does not collide with any pin definitions
|
||||||
|
virtual bool always_enable_bms_power() { return true; }
|
||||||
|
|
||||||
// Not needed, GPIO 16 has hardware pullup for PSRAM compatibility
|
// Not needed, GPIO 16 has hardware pullup for PSRAM compatibility
|
||||||
virtual gpio_num_t PIN_5V_EN() { return GPIO_NUM_NC; }
|
virtual gpio_num_t PIN_5V_EN() { return GPIO_NUM_NC; }
|
||||||
|
|
||||||
|
|
|
@ -1249,14 +1249,14 @@ const char* getCANInterfaceName(CAN_Interface interface) {
|
||||||
|
|
||||||
<label>Access point name: </label>
|
<label>Access point name: </label>
|
||||||
<input type='text' name='APNAME' value="%APNAME%"
|
<input type='text' name='APNAME' value="%APNAME%"
|
||||||
pattern="[A-Za-z0-9!#*]{8,63}"
|
pattern="[A-Za-z0-9!#*-]{8,63}"
|
||||||
title="Name must be 8-63 characters long and may only contain letters, numbers and some special characters: !#*"
|
title="Name must be 8-63 characters long and may only contain letters, numbers and some special characters: !#*-"
|
||||||
required />
|
required />
|
||||||
|
|
||||||
<label>Access point password: </label>
|
<label>Access point password: </label>
|
||||||
<input type='text' name='APPASSWORD' value="%APPASSWORD%"
|
<input type='text' name='APPASSWORD' value="%APPASSWORD%"
|
||||||
pattern="[A-Za-z0-9!#*]{8,63}"
|
pattern="[A-Za-z0-9!#*-]{8,63}"
|
||||||
title="Password must be 8-63 characters long and may only contain letters, numbers and some special characters: !#*"
|
title="Password must be 8-63 characters long and may only contain letters, numbers and some special characters: !#*-"
|
||||||
required />
|
required />
|
||||||
|
|
||||||
<label>Wifi channel 0-14: </label>
|
<label>Wifi channel 0-14: </label>
|
||||||
|
@ -1266,8 +1266,8 @@ const char* getCANInterfaceName(CAN_Interface interface) {
|
||||||
|
|
||||||
<label>Custom Wifi hostname: </label>
|
<label>Custom Wifi hostname: </label>
|
||||||
<input type='text' name='HOSTNAME' value="%HOSTNAME%"
|
<input type='text' name='HOSTNAME' value="%HOSTNAME%"
|
||||||
pattern="[A-Za-z0-9!*]+"
|
pattern="[A-Za-z0-9!#*-]+"
|
||||||
title="Optional: Hostname may only contain only letters, numbers, ! and *" />
|
title="Optional: Hostname may only contain letters, numbers and some special characters: !#*-" />
|
||||||
|
|
||||||
<label>Use static IP address: </label>
|
<label>Use static IP address: </label>
|
||||||
<input type='checkbox' name='STATICIP' value='on' %STATICIP% />
|
<input type='checkbox' name='STATICIP' value='on' %STATICIP% />
|
||||||
|
@ -1312,11 +1312,11 @@ const char* getCANInterfaceName(CAN_Interface interface) {
|
||||||
min="1" max="65535" step="1"
|
min="1" max="65535" step="1"
|
||||||
title="Port number (1-65535)" />
|
title="Port number (1-65535)" />
|
||||||
<label>MQTT user: </label><input type='text' name='MQTTUSER' value="%MQTTUSER%"
|
<label>MQTT user: </label><input type='text' name='MQTTUSER' value="%MQTTUSER%"
|
||||||
pattern="[A-Za-z0-9!#*]+"
|
pattern="[A-Za-z0-9!#*-]+"
|
||||||
title="MQTT username can only contain letters, numbers and some special characters: !#*" />
|
title="MQTT username can only contain letters, numbers and some special characters: !#*-" />
|
||||||
<label>MQTT password: </label><input type='password' name='MQTTPASSWORD' value="%MQTTPASSWORD%"
|
<label>MQTT password: </label><input type='password' name='MQTTPASSWORD' value="%MQTTPASSWORD%"
|
||||||
pattern="[A-Za-z0-9!#*]+"
|
pattern="[A-Za-z0-9!#*-]+"
|
||||||
title="MQTT password can only contain letters, numbers and some special characters: !#*" />
|
title="MQTT password can only contain letters, numbers and some special characters: !#*-" />
|
||||||
<label>MQTT timeout ms: </label>
|
<label>MQTT timeout ms: </label>
|
||||||
<input name='MQTTTIMEOUT' type='number' value="%MQTTTIMEOUT%"
|
<input name='MQTTTIMEOUT' type='number' value="%MQTTTIMEOUT%"
|
||||||
min="1" max="60000" step="1"
|
min="1" max="60000" step="1"
|
||||||
|
|
|
@ -240,7 +240,6 @@ void init_mDNS() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_WiFi_AP() {
|
void init_WiFi_AP() {
|
||||||
ssidAP = std::string("BatteryEmulator") + WiFi.macAddress().c_str();
|
|
||||||
|
|
||||||
DEBUG_PRINTF("Creating Access Point: %s\n", ssidAP.c_str());
|
DEBUG_PRINTF("Creating Access Point: %s\n", ssidAP.c_str());
|
||||||
DEBUG_PRINTF("With password: %s\n", passwordAP.c_str());
|
DEBUG_PRINTF("With password: %s\n", passwordAP.c_str());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue