Skip to content

Commit 6b1fc05

Browse files
committed
Adding optional CAN enable Pin config
1 parent 968a6ae commit 6b1fc05

File tree

4 files changed

+36
-4
lines changed

4 files changed

+36
-4
lines changed

data/settings.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ <h2>Settings</h2>
2323

2424
<p><label for="canTXPin">CAN TX Pin: </label><input id="canTXPin" name="canTXPin" type="text" value="%canTXPin%"/></p>
2525
<p><label for="canRXPin">CAN RX Pin: </label><input id="canRXPin" name="canRXPin" type="text" value="%canRXPin%"/></p>
26+
<p><label for="canEnablePin">CAN Enable Pin: </label><input id="canEnablePin" name="canEnablePin" type="text" value="%canEnablePin%"/> Set to 0 if not required</p>
2627

28+
<p><strong>Open Inverter Can board:- TX Pin: 25 RX Pin: 26</strong></p>
29+
<p><strong>Lilygo T-Can board:- TX Pin: 27 RX Pin: 26 Can Enable Pin: 23</strong></p>
2730
<a href="#" onclick="ui.settingsForm('settingsForm');"><button>
2831
<img class="buttonimg" src="/icon-check-circle.png">Modify</button></a>
2932
</form>

esp32-web-interface.ino

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,13 +587,20 @@ static void handleNodeId()
587587
static void handleSettings()
588588
{
589589
bool updated = true;
590-
if(server.hasArg("canRXPin") && server.hasArg("canRXPin"))
590+
if(server.hasArg("canRXPin") && server.hasArg("canRXPin") && server.hasArg("canEnablePin"))
591591
{
592592
config.setCanRXPin(atoi(server.arg("canRXPin").c_str()));
593593
config.setCanTXPin(atoi(server.arg("canTXPin").c_str()));
594+
config.setCanEnablePin(atoi(server.arg("canEnablePin").c_str()));
595+
594596
config.saveSettings();
595597
OICan::Init(OICan::GetNodeId(), OICan::GetBaudRate(), config.getCanTXPin(), config.getCanRXPin());
596598

599+
600+
if (config.getCanEnablePin() > 0) {
601+
pinMode(config.getCanEnablePin(), OUTPUT);
602+
digitalWrite(config.getCanEnablePin(), LOW);
603+
}
597604
}
598605
else
599606
{
@@ -602,6 +609,8 @@ static void handleSettings()
602609
file.close();
603610
html.replace("%canRXPin%", String(config.getCanRXPin()).c_str());
604611
html.replace("%canTXPin%", String(config.getCanTXPin()).c_str());
612+
html.replace("%canEnablePin%", String(config.getCanEnablePin()).c_str());
613+
605614
server.send(200, "text/html", html);
606615
updated = false;
607616
}
@@ -727,6 +736,11 @@ void setup(void){
727736

728737
config.load();
729738

739+
if (config.getCanEnablePin() > 0) {
740+
pinMode(config.getCanEnablePin(), OUTPUT);
741+
digitalWrite(config.getCanEnablePin(), LOW);
742+
}
743+
730744
OICan::Init(1, OICan::Baud500k, config.getCanTXPin(), config.getCanRXPin());
731745

732746
updater.setup(&server);

src/config.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ void Config::load() {
1212
settings.version = EEPROM_VERSION;
1313
settings.canRXPin = GPIO_NUM_26;
1414
settings.canTXPin = GPIO_NUM_25;
15+
settings.canEnablePin = 0;
1516
}
1617
}
1718
int Config::getCanRXPin() {
@@ -22,14 +23,23 @@ int Config::getCanTXPin() {
2223
return settings.canTXPin;
2324
}
2425

25-
void Config::setCanRXPin(int pin) {
26-
settings.canRXPin = pin;
26+
int Config::getCanEnablePin() {
27+
return settings.canEnablePin;
28+
}
29+
30+
31+
void Config::setCanEnablePin(int pin) {
32+
settings.canEnablePin = pin;
2733
}
2834

2935
void Config::setCanTXPin(int pin) {
3036
settings.canTXPin = pin;
3137
}
3238

39+
void Config::setCanRXPin(int pin) {
40+
settings.canRXPin = pin;
41+
}
42+
3343
void Config::saveSettings() {
3444
EEPROM.put(0, settings); //save all change to eeprom
3545
EEPROM.commit();

src/config.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#ifndef CONFIG_H
22
#define CONFIG_H
33

4-
#define EEPROM_VERSION 1
4+
#define EEPROM_VERSION 2
55
typedef struct {
66
int version;
77
int canRXPin;
88
int canTXPin;
9+
int canEnablePin;
910
} EEPROMSettings;
1011

1112

@@ -20,6 +21,10 @@ class Config
2021
int getCanTXPin();
2122
void setCanTXPin(int pin);
2223

24+
25+
int getCanEnablePin();
26+
void setCanEnablePin(int pin);
27+
2328
void saveSettings();
2429
private:
2530
EEPROMSettings settings;

0 commit comments

Comments
 (0)