# openwrt-pass-through
**Repository Path**: chenbb12345/openwrt-pass-through
## Basic Information
- **Project Name**: openwrt-pass-through
- **Description**: 这是之前的工程esp32_network123,移植到openwrt / mt7688上的版本,功能为:一个简单的透传模块小demo。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-02-19
- **Last Updated**: 2023-03-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
这是<[基于ESP32实现一个WIFI透传模块demo](https://blog.csdn.net/chenbb8/article/details/128134389)>的openwrt移植版本,仅用于复习openwrt操作,作为一个demo级别的项目,它对于一些AT指令参数的判断并不严格。
# 环境
编程系统:ubuntu 16.04
虚拟机:VMare Workstation 16
IDE:vscode 1.73.1
board:BOJINGnet_MT7688A开发板
板子openwrt版本:官方openwrt 19.07中的Target Porfile:MediaTek LinkIt Smart 7688分支编译
# 硬件连接
console uart:使用普通usb type-c数据线连接电脑和开发板
at/data uart:使用usb rs232数据线连接电脑和开发板
# 准备
- 使用开发板虚拟机的,直接跳过。(厂家22年10月提供的固件,有串口读取丢包的bug)
- 通过git下载openwrt,并切换分支到版本19.07,使用Target Porfile:MediaTek LinkIt Smart 7688编译固件。
需要修改LINKIT7688.dts中的默认console为ttyS0,否则无法使用板子的usb type-c作为串口console。
#### 编译
**以下命令假定终端已经定位到openwrt目录中**
- 将本项目的工程拷贝到”./package“中,把文件夹改名为upass
- 执行命令"make menuconfig"
- 勾选"Utilities"->"upass",退出并保存设置
- 执行命令"make -j1 V=sc ./package/upass/compile"
- 编译好的固件路径为“/bin/packages/mipsel_24kc/base/upass_1.0_mipsel_24kc.ipk”
#### 安装
拷贝安装包到目标板中,在目标板的终端里执行命令"opkg install ./mipsel_24kc/base/upass_1.0_mipsel_24kc.ipk"
# 指令说名
参考一下某透传模块的指令,提取出以下几条(**每条指令后应该加上换行符,比如"\n"、“\r\n”,否则将不识别**)
**以下命令是通过at/data uart接口执行**
- 扫描AP
指令 | ATWS
---|---
响应| 成功
AP : <num>,<ssid>,<chl>,<sec>,<rssi>,<bssid>
.....
[ATWS] OK
失败
[ATWS] ERROR:
error_code | 1: 系统忙
2: 无scan结果为空
- 连接到 AP
指令 | ATPN=<ssid>,<pwd>
---|---
响应 | 成功
[ATPN] OK
失败
[ATPN] ERROR:
error_code | 1: 命令格式错误
2: 参数错误
3: 连接 AP失败
4: dhcp 超时
5:无ap信息
- 建立socket
指令 | ATPC=<mode>,<Remote Addr>,<Remote Port>
---|---
响应 | 成功
[ATPC] OK
失败
[ATPC] ERROR:
参数 | mode:
0:TCP
error_code | 1: 命令格式错误
2: 参数错误
3: 连接 server失败
4: 尚未连接AP
注意|连接成功后直接进入透传模式