Skip to content

Commit 4fd62bb

Browse files
author
NoahAndrews
committed
Add sendDisabledHeartbeatsFirst parameter to stopHeartbeats()
1 parent 06b6b44 commit 4fd62bb

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

lib/binding.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export class CanBridge {
6363
setThreadPriority: (descriptor: string, priority: ThreadPriority) => void;
6464
setSparkMaxHeartbeatData: (descriptor: string, heartbeatData: number[]) => void;
6565
startRevCommonHeartbeat: (descriptor: string) => void;
66-
stopHeartbeats: (descriptor: string) => void;
66+
stopHeartbeats: (descriptor: string, sendDisabledHeartbeatsFirst: boolean) => void;
6767
ackHeartbeats: () => void;
6868

6969
constructor() {

src/canWrapper.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -807,8 +807,13 @@ void setSparkMaxHeartbeatData(const Napi::CallbackInfo& info) {
807807

808808
void stopHeartbeats(const Napi::CallbackInfo& info) {
809809
std::string descriptor = info[0].As<Napi::String>().Utf8Value();
810+
bool sendDisabledHeartbeatsFirst = info[1].As<Napi::Boolean>().Value();
811+
812+
// 0 sends and then cancels, -1 cancels without sending
813+
const int repeatPeriod = sendDisabledHeartbeatsFirst ? 0 : -1;
814+
810815
std::scoped_lock lock{watchdogMtx};
811816
// Send disabled SPARK and REV common heartbeats and un-schedule them for the future
812-
_sendCANMessage(descriptor, SPARK_HEARTBEAT_ID, disabledSparkHeartbeat, SPARK_HEARTBEAT_LENGTH, 0);
813-
_sendCANMessage(descriptor, REV_COMMON_HEARTBEAT_ID, disabledRevCommonHeartbeat, REV_COMMON_HEARTBEAT_LENGTH, 0);
817+
_sendCANMessage(descriptor, SPARK_HEARTBEAT_ID, disabledSparkHeartbeat, SPARK_HEARTBEAT_LENGTH, repeatPeriod);
818+
_sendCANMessage(descriptor, REV_COMMON_HEARTBEAT_ID, disabledRevCommonHeartbeat, REV_COMMON_HEARTBEAT_LENGTH, repeatPeriod);
814819
}

0 commit comments

Comments
 (0)