Обновление
This commit is contained in:
parent
ba0e47edb7
commit
6477434625
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
osMessageQueueId_t queue;
|
osMessageQueueId_t queue;
|
||||||
osMutexId_t access;
|
// osMutexId_t access;
|
||||||
} tSerialPortVirt;
|
} tSerialPortVirt;
|
||||||
|
|
||||||
void SerialPortVirt_Init(tSerialPortVirt *env, uint16_t queueBufferLen);
|
void SerialPortVirt_Init(tSerialPortVirt *env, uint16_t queueBufferLen);
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
void SerialPortVirt_Init(tSerialPortVirt *env, uint16_t queueBufferLen) {
|
void SerialPortVirt_Init(tSerialPortVirt *env, uint16_t queueBufferLen) {
|
||||||
env->queue = osMessageQueueNew(queueBufferLen, 1, NULL);
|
env->queue = osMessageQueueNew(queueBufferLen, 1, NULL);
|
||||||
env->access = osMutexNew(NULL);
|
// env->access = osMutexNew(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint16_t vSerialPortReceiveQueue(uint8_t *data, uint16_t size, uint32_t timeout, osMessageQueueId_t queueId) {
|
static uint16_t vSerialPortReceiveQueue(uint8_t *data, uint16_t size, uint32_t timeout, osMessageQueueId_t queueId) {
|
||||||
|
|
@ -42,12 +42,11 @@ static uint16_t vSerialPortReceiveQueue(uint8_t *data, uint16_t size, uint32_t t
|
||||||
|
|
||||||
static uint16_t vSerialPortReceive(tSerialPortVirt *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
static uint16_t vSerialPortReceive(tSerialPortVirt *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
||||||
|
|
||||||
uint16_t result = 0;
|
uint16_t result;
|
||||||
|
|
||||||
|
|
||||||
// if (osMutexAcquire(env->access, 1000) == osOK) {
|
|
||||||
result = vSerialPortReceiveQueue(data, size, timeout, env->queue);
|
result = vSerialPortReceiveQueue(data, size, timeout, env->queue);
|
||||||
// osMutexRelease(env->access);
|
|
||||||
// }
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
@ -87,14 +86,21 @@ static uint16_t vSerialPortTransmitQueue(uint8_t *data, uint16_t size, uint32_t
|
||||||
|
|
||||||
static uint16_t vSerialPortTransmit(tSerialPortVirt *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
static uint16_t vSerialPortTransmit(tSerialPortVirt *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
||||||
|
|
||||||
uint16_t result = 0;
|
|
||||||
|
|
||||||
// if (osMutexAcquire(env->access, 1000) == osOK) {
|
// if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
result = vSerialPortTransmitQueue(data, size, timeout, env->queue);
|
// result = vSerialPortTransmitQueue(data, size, timeout, env->queue);
|
||||||
// osMutexRelease(env->access);
|
// osMutexRelease(env->access);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
return result;
|
uint16_t sent = 0;
|
||||||
|
for (uint16_t i = 0; i < size; ++i) {
|
||||||
|
if (osMessageQueuePut(env->queue, &data[i], 0x00, 0) == osOK) {
|
||||||
|
++sent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sent;
|
||||||
}
|
}
|
||||||
|
|
||||||
tSerialPortIO SerialPortVirt_GetIo(tSerialPortVirt *env) {
|
tSerialPortIO SerialPortVirt_GetIo(tSerialPortVirt *env) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue