Изменения на новый

This commit is contained in:
cfif 2025-06-19 13:38:04 +03:00
parent dca478b809
commit d7149141dc
2 changed files with 20 additions and 2 deletions

View File

@ -30,6 +30,7 @@ typedef struct {
osMessageQueueId_t rxDataQueue;
osMessageQueueId_t rxDataSnifferQueue;
osMessageQueueId_t rxDataSnifferSecondQueue;
} tSerialPortArtery;
void vSerialPortInit(
@ -201,7 +202,9 @@ tSerialPortIO vSerialPortGetIo(tSerialPortArtery *env);
tSerialPortIO vSerialPortGetSnifferIo(tSerialPortArtery *env);
uint16_t vSerialPortTransmit(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout);
tSerialPortIO SerialPort_GetSnifferSecondIo(tSerialPortArtery *env);
uint16_t vSerialPortTransmit(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout);
uint16_t vSerialPortBlindTransmit(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout);

View File

@ -524,7 +524,7 @@ void SerialPortFilter_RxDmaBufToQueue(tSerialPortArtery *env, uint32_t bufEnd,
}
void SerialPort_RxDmaBufToQueue(tSerialPortArtery *env, uint32_t bufEnd) {
osStatus_t res;
for (uint32_t i = env->rxDmaOffset; i < bufEnd; ++i) {
osMessageQueuePut(env->rxDataQueue, &env->rxDmaBuf[i], 0x0, 0U);
if (env->rxDataSnifferQueue) {
@ -664,6 +664,12 @@ static uint16_t vSerialPortReceiveSniffer(tSerialPortArtery *env, uint8_t *data,
: 0;
}
static uint16_t vSerialPortReceiveSnifferSecond(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout) {
return env->rxDataSnifferSecondQueue
? vSerialPortReceiveQueue(env, data, size, timeout, env->rxDataSnifferSecondQueue)
: 0;
}
static uint16_t vSerialPortTransmitOverDma(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout) {
uint16_t sent = 0;
@ -784,3 +790,12 @@ tSerialPortIO vSerialPortGetSnifferIo(tSerialPortArtery *env) {
};
return io;
}
tSerialPortIO SerialPort_GetSnifferSecondIo(tSerialPortArtery *env) {
tSerialPortIO io = {
.env = env,
.receive = (SerialPortIOTransaction) vSerialPortReceiveSnifferSecond,
.transmit = vSerialPortTransmitterGet(env)
};
return io;
}