* Add send scs

* Create scs dict

* Fix compilation errors

* Fix compile error

* Change default include

* Add Timer SCS manager

* Remove unused files

* Fix bugs

* Add documentation

* Add SCS manager

bozza

* Refactor

* Use same naming convention

* Add tick provider

* Update header

* Fix header bit translation

* Test HandleNext OK

* Remove linting

* Remove indents

* Add documentation

* Improve docs

* Remove pointer

* Remove mailbox

* Remove useless comment

* Add newline

* Fix compile errors

* Separate scs entries from manager

* Refactor

* Fix include guards

Co-authored-by: nicolagutierrez <nicolagutierrez.ng@gmail.com>
This commit was merged in pull request #3.
This commit is contained in:
Stefano Calabretti
2022-02-23 21:08:47 +01:00
committed by GitHub
parent 7aa61ed9ad
commit 4d5c1934a4
20 changed files with 717 additions and 313 deletions
+32 -11
View File
@@ -14,6 +14,7 @@ typedef struct {
} TransmissionParams;
static TransmissionParams buildParams(CanHandle *hcan, MmrCanPacket packet);
static HalStatus send(TransmissionParams *tp);
static HalStatus sendNormal(TransmissionParams *tp);
static HalStatus sendMulti(TransmissionParams *tp);
@@ -24,10 +25,33 @@ static void setMessageType(TransmissionParams *header, MmrCanMessageType type);
static void syncHeaders(TransmissionParams *tp);
static CanMailbox __mailbox;
HalStatus MMR_CAN_Send(CanHandle *hcan, MmrCanPacket packet) {
TransmissionParams tp = {
TransmissionParams tp =
buildParams(hcan, packet);
syncHeaders(&tp);
return packet.length <= MMR_CAN_MAX_DATA_LENGTH
? sendNormal(&tp)
: sendMulti(&tp);
}
HalStatus MMR_CAN_SendNoTamper(CanHandle *hcan, MmrCanPacket packet) {
TransmissionParams tp =
buildParams(hcan, packet);
return send(&tp);
}
static TransmissionParams buildParams(CanHandle *hcan, MmrCanPacket packet) {
return (TransmissionParams) {
.handle = hcan,
.packet = &packet,
.headers.mmr = packet.header,
.headers.tx = {
.IDE = CAN_ID_EXT,
.RTR = CAN_RTR_DATA,
@@ -35,11 +59,6 @@ HalStatus MMR_CAN_Send(CanHandle *hcan, MmrCanPacket packet) {
.TransmitGlobalTime = DISABLE,
},
};
syncHeaders(&tp);
return packet.length <= MMR_CAN_MAX_DATA_LENGTH
? sendNormal(&tp)
: sendMulti(&tp);
}
@@ -72,11 +91,13 @@ static HalStatus sendSingleMultiFrame(TransmissionParams *tp) {
uint8_t length =
computeNextMessageLength(tp->packet);
tp->packet->length -= length;
tp->packet->data += length;
tp->headers.tx.DLC = length;
tp->packet->length -= length;
return send(tp);
HalStatus result = send(tp);
tp->packet->data += length;
return result;
}
@@ -87,13 +108,13 @@ static HalStatus send(TransmissionParams *tp) {
tp->handle,
&tp->headers.tx,
tp->packet->data,
tp->packet->mailbox
&__mailbox
);
}
static void syncHeaders(TransmissionParams *tp) {
tp->headers.tx.ExtId = *MMR_CAN_HeaderToBits(&tp->headers.mmr);
tp->headers.tx.ExtId = MMR_CAN_HeaderToBits(tp->headers.mmr);
}