tty use mq
This commit is contained in:
@@ -47,14 +47,14 @@ struct chrg_tty_t chrgtty[TOTAL_TTY] = {
|
||||
static rt_err_t chrg_rs485_tty_input (rt_device_t dev, rt_size_t size)
|
||||
{
|
||||
rt_err_t ret;
|
||||
rt_uint8_t ch;
|
||||
rt_size_t i;
|
||||
struct chrg_tty_t *pTTY = &chrgtty[IDX_TTY_RS485];
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
if (rt_device_read(dev, 0, &ch, 1)) {
|
||||
rt_ringbuffer_put_force(pTTY->rb, &ch, 1);
|
||||
ret = rt_sem_release(&pTTY->sem_rx);
|
||||
if ((RT_NULL != dev) && (RT_NULL != pTTY->mq) && (size > 0)) {
|
||||
pTTY->msg_mq.dev = dev;
|
||||
pTTY->msg_mq.size = size;
|
||||
ret = rt_mq_send(pTTY->mq, &pTTY->msg_mq, sizeof(struct mq_msg_t));
|
||||
if (RT_EOK != ret) {
|
||||
LOG_E("send mq '%s' failed.", pTTY->name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,14 +64,14 @@ static rt_err_t chrg_rs485_tty_input (rt_device_t dev, rt_size_t size)
|
||||
static rt_err_t chrg_lcd_tty_input (rt_device_t dev, rt_size_t size)
|
||||
{
|
||||
rt_err_t ret;
|
||||
rt_uint8_t ch;
|
||||
rt_size_t i;
|
||||
struct chrg_tty_t *pTTY = &chrgtty[IDX_TTY_LCD];
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
if (rt_device_read(dev, 0, &ch, 1)) {
|
||||
rt_ringbuffer_put_force(pTTY->rb, &ch, 1);
|
||||
ret = rt_sem_release(&pTTY->sem_rx);
|
||||
if ((RT_NULL != dev) && (RT_NULL != pTTY->mq) && (size > 0)) {
|
||||
pTTY->msg_mq.dev = dev;
|
||||
pTTY->msg_mq.size = size;
|
||||
ret = rt_mq_send(pTTY->mq, &pTTY->msg_mq, sizeof(struct mq_msg_t));
|
||||
if (RT_EOK != ret) {
|
||||
LOG_E("send mq '%s' failed.", pTTY->name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,14 +81,14 @@ static rt_err_t chrg_lcd_tty_input (rt_device_t dev, rt_size_t size)
|
||||
static rt_err_t chrg_north_tty_input (rt_device_t dev, rt_size_t size)
|
||||
{
|
||||
rt_err_t ret;
|
||||
rt_uint8_t ch;
|
||||
rt_size_t i;
|
||||
struct chrg_tty_t *pTTY = &chrgtty[IDX_TTY_NORTH];
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
if (rt_device_read(dev, 0, &ch, 1)) {
|
||||
rt_ringbuffer_put_force(pTTY->rb, &ch, 1);
|
||||
ret = rt_sem_release(&pTTY->sem_rx);
|
||||
if ((RT_NULL != dev) && (RT_NULL != pTTY->mq) && (size > 0)) {
|
||||
pTTY->msg_mq.dev = dev;
|
||||
pTTY->msg_mq.size = size;
|
||||
ret = rt_mq_send(pTTY->mq, &pTTY->msg_mq, sizeof(struct mq_msg_t));
|
||||
if (RT_EOK != ret) {
|
||||
LOG_E("send mq '%s' failed.", pTTY->name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,14 +98,14 @@ static rt_err_t chrg_north_tty_input (rt_device_t dev, rt_size_t size)
|
||||
static rt_err_t chrg_south_tty_input (rt_device_t dev, rt_size_t size)
|
||||
{
|
||||
rt_err_t ret;
|
||||
rt_uint8_t ch;
|
||||
rt_size_t i;
|
||||
struct chrg_tty_t *pTTY = &chrgtty[IDX_TTY_SOUTH];
|
||||
|
||||
for (i = 0; i < size; i++) {
|
||||
if (rt_device_read(dev, 0, &ch, 1)) {
|
||||
rt_ringbuffer_put_force(pTTY->rb, &ch, 1);
|
||||
ret = rt_sem_release(&pTTY->sem_rx);
|
||||
if ((RT_NULL != dev) && (RT_NULL != pTTY->mq) && (size > 0)) {
|
||||
pTTY->msg_mq.dev = dev;
|
||||
pTTY->msg_mq.size = size;
|
||||
ret = rt_mq_send(pTTY->mq, &pTTY->msg_mq, sizeof(struct mq_msg_t));
|
||||
if (RT_EOK != ret) {
|
||||
LOG_E("send mq '%s' failed.", pTTY->name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,15 +166,9 @@ rt_err_t chrg_tty_open (struct chrg_tty_t *pTTY)
|
||||
return RT_ERROR;
|
||||
}
|
||||
|
||||
ret = rt_sem_init(&pTTY->sem_rx, pTTY->name, 0, RT_IPC_FLAG_FIFO);
|
||||
if (ret != RT_EOK) {
|
||||
LOG_E("sem init '%s' failed.", pTTY->name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
pTTY->rb = rt_ringbuffer_create(64);
|
||||
if (RT_NULL == pTTY->rb) {
|
||||
rt_kprintf("create rb failed.\r\n");
|
||||
pTTY->mq = rt_mq_create(pTTY->name, sizeof(struct mq_msg_t), 16, RT_IPC_FLAG_FIFO);
|
||||
if (RT_NULL == pTTY->mq) {
|
||||
LOG_E("create mq '%s' failed.", pTTY->name);
|
||||
return RT_ERROR;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user