# GpsTerminalEmulator
**Repository Path**: yedajiang44/GpsTerminalEmulator
## Basic Information
- **Project Name**: GpsTerminalEmulator
- **Description**: 部标jtt808终端模拟器
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 18
- **Forks**: 2
- **Created**: 2021-04-29
- **Last Updated**: 2025-09-03
## Categories & Tags
**Categories**: gis
**Tags**: 部标, 808, 模拟器
## README
# GpsTerminalEmulator
基于部标协议的终端模拟器的服务端
特色功能:根据基准点、速度重新插值计算出更为真实的设备定位数据,最大化数据模拟的真实性。
前端代码详见[TerminalEmulatorWeb](https://github.com/yedajiang44/TerminalEmulatorWeb)
## 部署使用
为了方便大家使用,已提供 docker 镜像,
> docker 安装请参照官方文档
- `touch docker-compose.yml`
- 复制[docker-compose.yml](./docker-compose.yml)内容至刚才新建的`docker-compose.yml`文件中
- 执行`docker-compose up -d`
> 如果提示内核优化失败说明你的宿主内核较低,注释掉内核优化参数或使用高版本内核宿主
- 浏览器打开`localhost:4000`
## 二次开发
### 开发环境
- net7.0
- PostgreSql
- 部标 Jt808 服务端(非必须)
### 生成迁移
- 为了快速开发,该项目的 808 协议解析器使用的是我自己的库,因此请先添加我私人的 nuget 服务`http://nuget.yedajiang44.com/v3/index.json`或直接移除`Jt808TerminalEmulator.Core`项目里的`GpsPlatform.Jt808Protocol`包,并使用你自己的协议库
- 按需更改 [appsettings.json](src/Jt808TerminalEmulator.Api/appsettings.json) 如数据库连接
- 由于项目使用 `codefirst`,因此无需手动创建数据库,但是在运行项目前需要执行迁移,可以执行`migration.sh`脚本,也可以直接执行迁移命令
### 运行项目
直接运行`Jt808TerminalEmulator.Api`项目,直到控制台输出如下内容
```
_ _ _ _ _ _ ___ ___ ___ _
| | | | ___ | | | | ___ | | | |_ ( _ ) / _ \ ( _ ) | |
| |_| | / _ \ | | | | / _ \ _ | | | __| / _ \ | | | | / _ \ | |
| _ | | __/ | | | | | (_) | _ | |_| | | |_ | (_) | | |_| | | (_) | |_|
|_| |_| \___| |_| |_| \___/ ( ) \___/ \__| \___/ \___/ \___/ (_)
|/
```
## 友情提醒及免责声明
为避免该项目被投机者利用,特做此声明:`违反以下提醒造成的一切违法行为由使用者个人或单位自行承担,与作者无关`
- 本项目仅适用于本地开发或内部测试时使用
- 请勿恶意并发进攻他人服务器
- 请勿为了运营商考核而使用本工具
**如果同意以上声明方可使用该项目**
## 已知问题
- efcore 部分使用跟踪查询导致查询速度较慢
- 定位中无方向数据
- 模拟时未进行注册鉴权
## Rodmap
- 修复已知问题
- 添加压测功能
## License
[Apache License 2.0](LICENSE)