- { 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 |
payloadPreambleIndicatorTr_IDX = 4,
singleTransmit_IDX = 5,
slotId_IDX = 6,
+ bufferId_IDX = 7,
PARAM_COUNT
};
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
- { 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 |
payloadPreambleIndicatorTr_IDX = 4,
singleTransmit_IDX = 5,
slotId_IDX = 6,
+ bufferId_IDX = 7,
PARAM_COUNT
};
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
%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,
%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];
%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