1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openLuat-LuatOS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
luat_cmux.h 2.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Wendal Chen Отправлено 3 лет назад f592757
#ifndef LUAT_CMUX_H
#define LUAT_CMUX_H
#include "luat_base.h"
#include "luat_dbg.h"
typedef struct luat_cmux
{
uint8_t state;
uint8_t main_state;
uint8_t shell_state;
uint8_t log_state;
uint8_t dbg_state;
uint8_t download_state;
}luat_cmux_t;
#define LUAT_CMUX_CH_MAIN 0
#define LUAT_CMUX_CH_SHELL 1
#define LUAT_CMUX_CH_LOG 2
#define LUAT_CMUX_CH_DBG 3
#define LUAT_CMUX_CH_DOWNLOAD 4
#define CMUX_HEAD_FLAG_BASIC (unsigned char)0xF9
#define CMUX_HEAD_FLAG_ADV (unsigned char)0x7E
#define CMUX_CONTROL_PF 16
#define CMUX_ADDRESS_CR 2
#define CMUX_ADDRESS_EA 1
#define CMUX_FRAME_SABM 47
#define CMUX_FRAME_UA 99
#define CMUX_FRAME_DM 15
#define CMUX_FRAME_DISC 67
#define CMUX_FRAME_UIH 239
#define CMUX_FRAME_UI 3
#define CMUX_DHCL_MASK 63 /* DLCI number is port number, 63 is the mask of DLCI; C/R bit is 1 when we send data */
#define CMUX_DATA_MASK 127 /* when data length is out of 127( 0111 1111 ), we must use two bytes to describe data length in the cmux frame */
#define CMUX_HIGH_DATA_MASK 32640 /* 32640 (‭ 0111 1111 1000 0000 ‬), the mask of high data bits */
#define CMUX_ADDRESS(buff) (buff[1])
#define CMUX_ADDRESS_DLC(buff) (buff[1]>>2)
#define CMUX_CONTROL(buff) (buff[2])
#define CMUX_CONTROL_ISSABM(buff) (buff[2]==(CMUX_FRAME_SABM | CMUX_CONTROL_PF))
#define CMUX_CONTROL_ISUA(buff) (buff[2]==(CMUX_FRAME_UA & ~CMUX_CONTROL_PF))
#define CMUX_CONTROL_ISDM(buff) (buff[2]==(CMUX_FRAME_DM & ~CMUX_CONTROL_PF))
#define CMUX_CONTROL_ISDISC(buff) (buff[2]==(CMUX_FRAME_DISC | CMUX_CONTROL_PF))
#define CMUX_CONTROL_ISUIH(buff) (buff[2]==(CMUX_FRAME_UIH & ~CMUX_CONTROL_PF))
#define CMUX_CONTROL_ISUI(buff) (buff[2]==(CMUX_FRAME_UI & ~CMUX_CONTROL_PF))
#define CMUX_BUFFER_SIZE 1024
extern uint8_t echo_enable;
extern uint8_t cmux_state;
extern uint8_t cmux_main_state;
extern uint8_t cmux_shell_state;
extern uint8_t cmux_log_state;
extern uint8_t cmux_dbg_state;
extern uint8_t cmux_download_state;
void luat_cmux_write(int port, uint8_t control,char* buff, size_t len);
void luat_cmux_read(unsigned char* buff,size_t len);
#endif
1
https://gitlife.ru/oschina-mirror/openLuat-LuatOS.git
git@gitlife.ru:oschina-mirror/openLuat-LuatOS.git
oschina-mirror
openLuat-LuatOS
openLuat-LuatOS
master