| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package main
- import (
- "context"
- "errors"
- "fmt"
- "github.com/google/uuid"
- "hnyfkj.com.cn/rtu/linux/baseapp"
- )
- const MODULE_NAME = "YFKJ_SSH_CLIENT"
- var (
- coupler *MQTTCoupler
- Version = "1.0.0.1"
- ErrBrokerAddressEmpty = errors.New("mqtt server address is empty")
- ErrIMEINotAvailable = errors.New("device imei is not available")
- )
- func main() {
- if baseapp.IsArgsParam("-h") {
- help()
- return
- }
- if baseapp.IsArgsParam("-v") {
- fmt.Println("程序版本:", Version, "\n构建时间:", baseapp.BuildTime)
- return
- }
- devIMEI := baseapp.GetArgsParamStr("-c", "")
- if devIMEI == "" {
- help()
- return
- }
- if err := loadAppConfig(); err != nil {
- fmt.Printf("[%s] 错误: %v!!", MODULE_NAME, err)
- return
- }
- if CfgServers.MQTTSrv.Address == "" {
- fmt.Printf("[%s] 错误: %v!!", MODULE_NAME, ErrBrokerAddressEmpty)
- return
- }
- ctx, cancel := context.WithCancel(context.Background())
- coupler = &MQTTCoupler{
- ctx: ctx,
- cancel: cancel,
- broker: CfgServers.MQTTSrv.Address,
- username: CfgServers.MQTTSrv.Username,
- password: CfgServers.MQTTSrv.Password,
- clientID: uuid.New().String(),
- imei: devIMEI,
- cwd: "/",
- }
- if err := coupler.init2(); err != nil {
- fmt.Printf("[%s] 错误: %v!!", MODULE_NAME, err)
- return
- }
- term() // 启动终端模拟器卍
- }
- // SHELL终端模拟器
- // 1, 连接远程设备, 是否成功
- // 2, 等待用户输入, 封装请求
- // 3, 没有用户输入, 封装心跳
- // 4, 发送请求数据, 远程执行
- // 5, 耗时用户请求, 允许中断, Ctrl+C
- // 6, 等待返回结果, 打印输出
- // 7, 循环等待下次, 直到退出
- func term() {
- for {
- }
- }
- func help() {
- h := `
- -h 显示帮助提示
- -v 当前程序版本
- -c 连接目标设备(IMEI), 例如: -c 869523059113051
- `
- fmt.Println(h)
- }
|