Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/us charger #8

Merged
merged 6 commits into from
Apr 25, 2024
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,15 @@ class auto_charger { // Variables Half-Implemented (Not Thermistors ADC)
set_enable(false);
send_heartbeat();
}
bool is_charger_ready() const {
if(connector_v > (CHARGING_VOLTAGE * 0.9)){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"以上"だとしたら符号が違う。
( 大差ないとは思います。 )

If it is "more than", the sign is different.
( I don't think there is much difference. )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。ここのしきい値はあまり厳密な値ではなく、Charger側のSSRがONしたかどうかが見れればよいので、> で問題ありません。

Thank you very much. The threshold value here is not very strict, but just enough to see if the SSR on the Charger side is turned on or not, so > is fine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど。承知しました。

I see. I understand.

LOG("charger ready voltage:%f.\n", connector_v);
return true;
}else {
LOG("connector_v:%f THRESH:%f\n", connector_v, (CHARGING_VOLTAGE * 0.9));
return false;
}
}
void get_connector_temperature(int &positive, int &negative) const {
positive = clamp(static_cast<int>(connector_temp[0]), 0, 255);
negative = clamp(static_cast<int>(connector_temp[1]), 0, 255);
Expand Down Expand Up @@ -475,7 +484,15 @@ class auto_charger { // Variables Half-Implemented (Not Thermistors ADC)
send_heartbeat();
}
void send_heartbeat() { /* Creates the message to send to the robot using the "compose" function below */
uint8_t buf[8], param[3]{++heartbeat_counter, static_cast<uint8_t>(sw.read()), rsoc}; // Message composed of 8 bytes, 3 bytes parameters -- Declaration
uint8_t sw_state{0};

if(is_connected()){
sw_state = 1;
}else{
sw_state = 0;
}
kokosabu marked this conversation as resolved.
Show resolved Hide resolved

uint8_t buf[8], param[3]{++heartbeat_counter, sw_state, rsoc}; // Message composed of 8 bytes, 3 bytes parameters -- Declaration
serial_message::compose(buf, serial_message::HEARTBEAT, param);
#ifndef SERIAL_DEBUG
serial.write(buf, sizeof buf);
Expand Down Expand Up @@ -882,8 +899,10 @@ class state_controller { // Variables Implemented
LOG("plugged to manual charger\n");
set_new_state(POWER_STATE::MANUAL_CHARGE);
} else if (!charge_guard_asserted && ac.is_docked() && bmu.is_chargable()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac.is_docked()とis_charger_ready()の2つで電圧を評価しているのがやや気持ち悪い感じがします。is_docked()が本来は充電中ではない充電器が出している5Vを検出するための関数であるのに、目的外の利用になっているような感じです。
ただ弊害はなく、is_dockedを消しちゃうと温度センサの評価が無くなったりもするので、このまま修正しなくていいのかなと思いました。

LOG("docked to auto charger\n");
set_new_state(POWER_STATE::AUTO_CHARGE);
if(ac.is_charger_ready() == true){
LOG("docked to auto charger\n");
set_new_state(POWER_STATE::AUTO_CHARGE);
}
kokosabu marked this conversation as resolved.
Show resolved Hide resolved
}
break;
case POWER_STATE::AUTO_CHARGE:
Expand Down Expand Up @@ -1105,7 +1124,7 @@ class state_controller { // Variables Implemented
watchdog.kick();
}
void poll_10s() {
uint8_t buf[8]{'2', '1', '0'}; // version
uint8_t buf[8]{'2', '2', '0'}; // version
can.send(CANMessage{0x203, buf});
}
can_driver can;
Expand Down
Loading