Skip to content

Commit f98f277

Browse files
committed
Replace previous function with getLatestMessageOfEveryReceivedArbId()
1 parent 1f79afe commit f98f277

File tree

4 files changed

+20
-10
lines changed

4 files changed

+20
-10
lines changed

lib/binding.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ export class CanBridge {
7575
stopHeartbeats: (descriptor: string, sendDisabledHeartbeatsFirst: boolean) => void;
7676
ackHeartbeats: () => void;
7777
/**
78-
* @return Object that maps arbitration IDs to the timestamp a message with that ID was last received at
78+
* @return Object that maps arbitration IDs to the last-received message with that ID
7979
*/
80-
getTimestampsForAllReceivedMessages: (descriptor: string) => Record<number, number>;
80+
getLatestMessageOfEveryReceivedArbId: (descriptor: string) => Record<number, CanMessage>;
8181

8282
constructor() {
8383
try {
@@ -107,7 +107,7 @@ export class CanBridge {
107107
this.startRevCommonHeartbeat = addon.startRevCommonHeartbeat;
108108
this.ackHeartbeats = addon.ackHeartbeats;
109109
this.stopHeartbeats = addon.stopHeartbeats;
110-
this.getTimestampsForAllReceivedMessages = addon.getTimestampsForAllReceivedMessages;
110+
this.getLatestMessageOfEveryReceivedArbId = addon.getLatestMessageOfEveryReceivedArbId;
111111
} catch (e: any) {
112112
throw new CanBridgeInitializationError(e);
113113
}

src/addon.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
5050
Napi::Function::New(env, stopHeartbeats));
5151
exports.Set(Napi::String::New(env, "ackHeartbeats"),
5252
Napi::Function::New(env, ackHeartbeats));
53-
exports.Set(Napi::String::New(env, "getTimestampsForAllReceivedMessages"),
54-
Napi::Function::New(env, getTimestampsForAllReceivedMessages));
53+
exports.Set(Napi::String::New(env, "getLatestMessageOfEveryReceivedArbId"),
54+
Napi::Function::New(env, getLatestMessageOfEveryReceivedArbId));
5555
return exports;
5656
}
5757

src/canWrapper.cc

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ Napi::Array getImageElements(const Napi::CallbackInfo& info) {
724724
return elements;
725725
}
726726

727-
Napi::Object getTimestampsForAllReceivedMessages(const Napi::CallbackInfo& info) {
727+
Napi::Object getLatestMessageOfEveryReceivedArbId(const Napi::CallbackInfo& info) {
728728
Napi::Env env = info.Env();
729729
std::string descriptor = info[0].As<Napi::String>().Utf8Value();
730730

@@ -751,9 +751,19 @@ Napi::Object getTimestampsForAllReceivedMessages(const Napi::CallbackInfo& info)
751751
Napi::Object result = Napi::Object::New(env);
752752
for (auto& m: messages) {
753753
uint32_t arbId = m.first;
754-
// GetTimestampUs() actually returns timestamps in milliseconds
755-
uint32_t timestampMs = m.second->GetTimestampUs();
756-
result.Set(arbId, timestampMs);
754+
auto message = m.second;
755+
756+
size_t messageSize = message->GetSize();
757+
const uint8_t* messageData = message->GetData();
758+
Napi::Array napiMessage = Napi::Array::New(env, messageSize);
759+
for (int i = 0; i < messageSize; i++) {
760+
napiMessage[i] = messageData[i];
761+
}
762+
Napi::Object messageInfo = Napi::Object::New(env);
763+
messageInfo.Set("messageID", message->GetMessageId());
764+
messageInfo.Set("timeStamp", message->GetTimestampUs());
765+
messageInfo.Set("data", napiMessage);
766+
result.Set(arbId, messageInfo);
757767
}
758768

759769
return result;

src/canWrapper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ void setSparkMaxHeartbeatData(const Napi::CallbackInfo& info);
2828
void startRevCommonHeartbeat(const Napi::CallbackInfo& info);
2929
void stopHeartbeats(const Napi::CallbackInfo& info);
3030
void ackHeartbeats(const Napi::CallbackInfo& info);
31-
Napi::Object getTimestampsForAllReceivedMessages(const Napi::CallbackInfo& info);
31+
Napi::Object getLatestMessageOfEveryReceivedArbId(const Napi::CallbackInfo& info);
3232
#endif

0 commit comments

Comments
 (0)