Skip to content

Commit dc8d31e

Browse files
author
jenkie
committed
Update Bafang Display library
1 parent cb3d8d6 commit dc8d31e

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

Arduino_Pedelec_Controller/display.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,9 @@ void display_debug(HardwareSerial* localSerial)
12951295
localSerial->print(MY_F(" Light "));
12961296
localSerial->print(BF.Rx.Headlight, HEX);
12971297
localSerial->print(MY_F(" Push "));
1298-
localSerial->println(BF.Rx.PushAssist, HEX);
1298+
localSerial->print(BF.Rx.PushAssist, HEX);
1299+
localSerial->print(MY_F(" Diameter "));
1300+
localSerial->println(BF.Rx.Wheeldiameter,DEC);
12991301
#endif
13001302

13011303

Arduino_Pedelec_Controller/display_bafang.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
3838
static void BAFANG_Service(BAFANG_t* BF_ctx);
3939

4040
uint8_t TxBuff[BF_MAX_TXBUFF];
41+
uint16_t spd_tmp;
4142

4243

4344

@@ -127,9 +128,10 @@ void Bafang_Service(BAFANG_t* BF_ctx)
127128
switch (BF_ctx->RxBuff[1])
128129
{
129130
case BF_CMD_GETSPEED:
130-
TxBuff[0]=0;
131-
TxBuff[1]=min(spd/0.128,255);
132-
TxBuff[2]=TxBuff[1]+32;
131+
spd_tmp=BF_ctx->Rx.Wheeldiameter*0.03887*spd;
132+
TxBuff[0]=(spd_tmp>>8);
133+
TxBuff[1]=(spd_tmp&0xff);
134+
TxBuff[2]=TxBuff[0]+TxBuff[1]+32;
133135
BF_sendmessage(BF_ctx,3);
134136
break;
135137

@@ -143,9 +145,9 @@ void Bafang_Service(BAFANG_t* BF_ctx)
143145
TxBuff[1]=battery_percent_fromcapacity;
144146
BF_sendmessage(BF_ctx,2);
145147

146-
case BF_CMD_GET1:
147-
TxBuff[0]=0;
148-
TxBuff[1]=0;
148+
case BF_CMD_GETPOWER:
149+
TxBuff[0]=power/10;
150+
TxBuff[1]=power/10;
149151
BF_sendmessage(BF_ctx,2);
150152
break;
151153

@@ -204,9 +206,13 @@ void Bafang_Service(BAFANG_t* BF_ctx)
204206
}
205207
break;
206208

207-
case BF_CMD_MISC:
209+
case BF_CMD_LIGHT:
208210
BF_ctx->Rx.Headlight=(BF_ctx->RxBuff[2]==BF_LIGHTON);
209211
break;
212+
213+
case BF_CMD_WHEELDIAM:
214+
BF_ctx->Rx.Wheeldiameter=BF_ctx->RxBuff[2]*256+BF_ctx->RxBuff[3];
215+
break;
210216
}
211217
}
212218
}

Arduino_Pedelec_Controller/display_bafang.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
3838
#define BF_CMD_STARTREQUEST 17
3939
#define BF_CMD_STARTINFO 22
4040
#define BF_CMD_LEVEL 11
41-
#define BF_CMD_MISC 26
41+
#define BF_CMD_LIGHT 26
42+
#define BF_CMD_WHEELDIAM 31
4243
#define BF_CMD_GETSPEED 32
4344
#define BF_CMD_GETERROR 8
4445
#define BF_CMD_GETBAT 17
45-
#define BF_CMD_GET1 10
46+
#define BF_CMD_GETPOWER 10
4647
#define BF_CMD_GET2 49
4748

4849
#define BF_LIGHTON 241
@@ -70,6 +71,7 @@ typedef struct
7071
uint8_t AssistLevel; // 0..9 Power Assist Level
7172
uint8_t Headlight; // BF_HEADLIGHT_OFF / BF_HEADLIGHT_ON
7273
uint8_t PushAssist; // BF_PUSHASSIST_OFF / BF_PUSHASSIST_ON
74+
uint16_t Wheeldiameter; // Wheel Diameter
7375
}RX_PARAM_t;
7476

7577

0 commit comments

Comments
 (0)