summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2017-03-22 22:49:41 +0100
committernorly <ny-git@enpas.org>2017-03-22 22:49:41 +0100
commitb991d41291c8bbd85f41d8c8361207b3b9ff3496 (patch)
treebddbbffc54ba8d6b01c8077defbe1c2b84062bca
parentd76d7c087d4018321bd48981a3a1e93b63cf20f0 (diff)
Extract len_done from BAP_Frame
-rw-r--r--vw-bap.c13
-rw-r--r--vw-bap.h3
2 files changed, 8 insertions, 8 deletions
diff --git a/vw-bap.c b/vw-bap.c
index a8036d7..52c37e8 100644
--- a/vw-bap.c
+++ b/vw-bap.c
@@ -100,9 +100,9 @@ struct BAP_Frame* vw_bap_handle_can_frame(struct BAP_RXer *bap, struct can_frame
}
memcpy(&bap_frame->data[0], &frame->data[frame->can_dlc - this_len], this_len);
- bap_frame->len_done = this_len;
+ bap->len_done[mfchannel] = this_len;
- if (bap_frame->len_done == bap_frame->len) {
+ if (bap->len_done[mfchannel] == bap_frame->len) {
/* Frame is complete, remove from buffer */
bap->mfchannel[mfchannel] = NULL;
return bap_frame;
@@ -123,7 +123,7 @@ struct BAP_Frame* vw_bap_handle_can_frame(struct BAP_RXer *bap, struct can_frame
this_len = frame->can_dlc - 1;
- if ((bap_frame->len_done + this_len) > bap_frame->len) {
+ if ((bap->len_done[mfchannel] + this_len) > bap_frame->len) {
printf("bap_handle_can_frame: len_done + this_len > len\n");
free(bap_frame);
@@ -132,12 +132,12 @@ struct BAP_Frame* vw_bap_handle_can_frame(struct BAP_RXer *bap, struct can_frame
return NULL;
}
- memcpy(&bap_frame->data[bap_frame->len_done],
+ memcpy(&bap_frame->data[bap->len_done[mfchannel]],
&frame->data[frame->can_dlc - this_len],
this_len);
- bap_frame->len_done += this_len;
+ bap->len_done[mfchannel] += this_len;
- if (bap_frame->len_done == bap_frame->len) {
+ if (bap->len_done[mfchannel] == bap_frame->len) {
/* Frame is complete, remove from buffer */
bap->mfchannel[mfchannel] = NULL;
return bap_frame;
@@ -165,7 +165,6 @@ struct BAP_Frame* vw_bap_handle_can_frame(struct BAP_RXer *bap, struct can_frame
bap_frame->len = this_len;
memcpy(&bap_frame->data[0], &frame->data[frame->can_dlc - this_len], this_len);
- bap_frame->len_done = this_len;
return bap_frame;
}
diff --git a/vw-bap.h b/vw-bap.h
index 0c8690f..0210104 100644
--- a/vw-bap.h
+++ b/vw-bap.h
@@ -15,13 +15,14 @@ struct BAP_Frame {
BAP_SubNode subnode;
BAP_SubFunction function;
BAP_FrameLen len;
- BAP_FrameLen len_done;
+
char data[4096];
};
struct BAP_RXer {
struct BAP_Frame *mfchannel[8];
+ BAP_FrameLen len_done[8];
};