]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Update FlexRay blocks to correct version from master
authorMichal Horn <hornmich@fel.cvut.cz>
Thu, 9 Jul 2015 11:47:17 +0000 (13:47 +0200)
committerMichal Horn <hornmich@fel.cvut.cz>
Thu, 9 Jul 2015 11:50:42 +0000 (13:50 +0200)
rpp/blocks/sfunction_frayreceive.c
rpp/blocks/sfunction_fraytransmit.c
rpp/blocks/tlc_c/sfunction_frayreceive.tlc
rpp/blocks/tlc_c/sfunction_fraytransmit.tlc

index 81d7f4b222cc06764ec82ca90f81bc63e8a5d6ba..f8decdbf36366a1c957bd817c123ac2d7cad5809 100644 (file)
@@ -44,6 +44,7 @@ Parameters:
   - { name: "payloadPreambleIndicatorTr", type: "bool" }
   - { name: "singleTransmit", type: "bool" }
   - { name: "slotId", type: "uint32" }
+  - { name: "bufferId", type: "uint32" }
 
 # Description and Help is in Markdown mark-up
 Description: &desc |
@@ -72,6 +73,7 @@ enum params {
        payloadPreambleIndicatorTr_IDX  = 4,
        singleTransmit_IDX                              = 5,
        slotId_IDX                                              = 6,
+       bufferId_IDX                                    = 7,
        PARAM_COUNT
 };
 
@@ -144,6 +146,7 @@ static void mdlSetWorkWidths(SimStruct *S)
     ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
     ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
     ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
+    ssRegDlgParamAsRunTimeParam(S, bufferId_IDX, bufferId_IDX, "bufferId", SS_UINT32);
 }
 #endif
 
index b7525333566dc7068c0dfb073e6a0a6d3eaf51a9..db9e4f8133416dbfa2a5ec0455f0b17c8f58a457 100644 (file)
@@ -42,6 +42,7 @@ Parameters:
   - { name: "payloadPreambleIndicatorTr", type: "bool" }
   - { name: "singleTransmit", type: "bool" }
   - { name: "slotId", type: "uint32" }
+  - { name: "bufferId", type: "uint32" }
 
 # Description and Help is in Markdown mark-up
 Description: &desc |
@@ -70,6 +71,7 @@ enum params {
        payloadPreambleIndicatorTr_IDX  = 4,
        singleTransmit_IDX                              = 5,
        slotId_IDX                                              = 6,
+       bufferId_IDX                                    = 7,
        PARAM_COUNT
 };
 
@@ -127,6 +129,7 @@ static void mdlSetWorkWidths(SimStruct *S)
        ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
        ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
        ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
+    ssRegDlgParamAsRunTimeParam(S, bufferId_IDX, bufferId_IDX, "bufferId", SS_UINT32);
 }
 #endif
 
index 9524b5283b0f3411c9119224b912e691f1436b38..7734e95b033634ab1581ee5a2ef3f9813acd4fbe 100644 (file)
   %assign payloadPreambleIndicatorTr_val = LibBlockParameterValue(payloadPreambleIndicatorTr, 0)
   %assign singleTransmit_val                    = LibBlockParameterValue(singleTransmit, 0)
   %assign slotId_val                                    = LibBlockParameterValue(slotId, 0)
+  %assign bufferId_val                                          = LibBlockParameterValue(bufferId, 0)
+
+  %if EXISTS(::rpp_fr_bufferId_%<bufferId_val>_flg) == 1
+    %<LibBlockReportError(block, "Buffer ID is already used by another FlexRay block.")>
+  %endif
+  %assign ::rpp_fr_bufferId_%<bufferId_val>_flg = 1
 
   %openfile buffer
+  // Buffer %<bufferId_val>
   {
        %if %<channel_val>==1
          .channel = FR_CHANNEL_A,
@@ -78,8 +85,8 @@
 
     %if !SLibCodeGenForSim()
                %% Get parameters
-        %assign slotId_val = LibBlockParameterValue(slotId, 0)
         %assign maxPayload_val = LibBlockParameterValue(maxPayload, 0)
+        %assign bufferId_val = LibBlockParameterValue(bufferId, 0)
 
         %% Get IO signals
         %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
                  Fr_RxLPduStatusType rec_status;
                %endif
 
-               retVal = rpp_fr_receive_lpdu(0, %<slotId_val>, rec_msg, &rec_status, &rec_length);
+
+               retVal = rpp_fr_receive_lpdu(0, %<bufferId_val>, rec_msg, &rec_status, &rec_length);
                if (retVal == FAILURE) {
-                       rpp_sci_printf("Receiving a message from slot %#x failed.\n", %<slotId_val>);
+                       rpp_sci_printf("Receiving a message from buffer %#x failed.\n", %<bufferId_val>);
                        %<err_flag> = TRUE;
                        %<message> = 0;
                        %<length> = 0;
                                %<length> = 0;
                        }
                        else {
-                               rpp_sci_printf("Message from slot %#x received:%#x\n", %<slotId_val>, rec_msg[0]);
+                               rpp_sci_printf("Message from buffer %#x received:%#x\n", %<bufferId_val>, rec_msg[0]);
                                %<trigger> = 1;
                                for (i = 0; i < %<maxPayload_val>*2; i++) {
                                        *(&%<message>+i) = rec_msg[i];
index e245e4838a50de170f9dc885b6b2f8779fe5d56d..3be2f757c8aea5f9550810948f6e8bec07748186 100644 (file)
   %assign payloadPreambleIndicatorTr_val = LibBlockParameterValue(payloadPreambleIndicatorTr, 0)
   %assign singleTransmit_val                    = LibBlockParameterValue(singleTransmit, 0)
   %assign slotId_val                                    = LibBlockParameterValue(slotId, 0)
+  %assign bufferId_val                                          = LibBlockParameterValue(bufferId, 0)
+
+  %if EXISTS(::rpp_fr_bufferId_%<bufferId_val>_flg) == 1
+    %<LibBlockReportError(block, "Buffer ID is already used by another FlexRay block.")>
+  %endif
+  %assign ::rpp_fr_bufferId_%<bufferId_val>_flg = 1
 
   %openfile buffer
   {
+    // Buffer %<bufferId_val>
        %if channel_val == 1U
          .channel = FR_CHANNEL_A,
        %elseif channel_val == 2U
                %% Get parameters
         %assign slotId_val = LibBlockParameterValue(slotId, 0)
         %assign maxPayload_val = LibBlockParameterValue(maxPayload, 0)
+        %assign bufferId_val = LibBlockParameterValue(bufferId, 0)
 
         %% Get IO signals
         %assign message = LibBlockInputSignal(0, "", "", 0)
         %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
 
-               rpp_sci_printf("sending message %#x on slot %d.\n", %<message>, %<slotId_val>);
+               rpp_sci_printf("sending message %#x on slot %d from buffer %d.\n", %<message>, %<slotId_val>, %<bufferId_val>);
 
-               retVal = rpp_fr_transmit_lpdu(0, %<slotId_val>, &%<message>, %<maxPayload_val>*2);
+               retVal = rpp_fr_transmit_lpdu(0, %<bufferId_val>, &%<message>, %<maxPayload_val>*2);
                if (retVal == FAILURE) {
-                       rpp_sci_printf("Sending a message to slot %#x failed.\n", %<slotId_val>);
+                       rpp_sci_printf("Sending a message from buffer %#x failed.\n", %<bufferId_val>);
                        %<err_flag> = TRUE;
                }
     %endif