Изменения на новый
This commit is contained in:
parent
dca478b809
commit
d7149141dc
|
|
@ -30,6 +30,7 @@ typedef struct {
|
||||||
|
|
||||||
osMessageQueueId_t rxDataQueue;
|
osMessageQueueId_t rxDataQueue;
|
||||||
osMessageQueueId_t rxDataSnifferQueue;
|
osMessageQueueId_t rxDataSnifferQueue;
|
||||||
|
osMessageQueueId_t rxDataSnifferSecondQueue;
|
||||||
} tSerialPortArtery;
|
} tSerialPortArtery;
|
||||||
|
|
||||||
void vSerialPortInit(
|
void vSerialPortInit(
|
||||||
|
|
@ -201,6 +202,8 @@ tSerialPortIO vSerialPortGetIo(tSerialPortArtery *env);
|
||||||
|
|
||||||
tSerialPortIO vSerialPortGetSnifferIo(tSerialPortArtery *env);
|
tSerialPortIO vSerialPortGetSnifferIo(tSerialPortArtery *env);
|
||||||
|
|
||||||
|
tSerialPortIO SerialPort_GetSnifferSecondIo(tSerialPortArtery *env);
|
||||||
|
|
||||||
uint16_t vSerialPortTransmit(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout);
|
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);
|
uint16_t vSerialPortBlindTransmit(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout);
|
||||||
|
|
|
||||||
|
|
@ -524,7 +524,7 @@ void SerialPortFilter_RxDmaBufToQueue(tSerialPortArtery *env, uint32_t bufEnd,
|
||||||
}
|
}
|
||||||
|
|
||||||
void SerialPort_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) {
|
for (uint32_t i = env->rxDmaOffset; i < bufEnd; ++i) {
|
||||||
osMessageQueuePut(env->rxDataQueue, &env->rxDmaBuf[i], 0x0, 0U);
|
osMessageQueuePut(env->rxDataQueue, &env->rxDmaBuf[i], 0x0, 0U);
|
||||||
if (env->rxDataSnifferQueue) {
|
if (env->rxDataSnifferQueue) {
|
||||||
|
|
@ -664,6 +664,12 @@ static uint16_t vSerialPortReceiveSniffer(tSerialPortArtery *env, uint8_t *data,
|
||||||
: 0;
|
: 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) {
|
static uint16_t vSerialPortTransmitOverDma(tSerialPortArtery *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
||||||
uint16_t sent = 0;
|
uint16_t sent = 0;
|
||||||
|
|
@ -784,3 +790,12 @@ tSerialPortIO vSerialPortGetSnifferIo(tSerialPortArtery *env) {
|
||||||
};
|
};
|
||||||
return io;
|
return io;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tSerialPortIO SerialPort_GetSnifferSecondIo(tSerialPortArtery *env) {
|
||||||
|
tSerialPortIO io = {
|
||||||
|
.env = env,
|
||||||
|
.receive = (SerialPortIOTransaction) vSerialPortReceiveSnifferSecond,
|
||||||
|
.transmit = vSerialPortTransmitterGet(env)
|
||||||
|
};
|
||||||
|
return io;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue