| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package main
- import (
- "fmt"
- "time"
- gps "hnyfkj.com.cn/rtu/bxs-sy/air530z"
- modem "hnyfkj.com.cn/rtu/bxs-sy/air720u"
- "hnyfkj.com.cn/rtu/bxs-sy/baseapp"
- mcu "hnyfkj.com.cn/rtu/bxs-sy/mcu_ctrl_board"
- takephoto "hnyfkj.com.cn/rtu/bxs-sy/mvs_takephoto"
- "hnyfkj.com.cn/rtu/bxs-sy/netmgr"
- "hnyfkj.com.cn/rtu/bxs-sy/reporter"
- )
- func main() {
- if baseapp.IsArgsParam("-h") {
- help()
- return
- }
- if baseapp.IsArgsParam("-v") {
- fmt.Println("程序版本:", baseapp.Version, "\n构建时间:", baseapp.BuildTime)
- return
- }
- baseapp.ModuleInit()
- baseapp.SingleInstanceRun() // 异步非阻塞
- baseapp.Logger.Infof("程序版本: %s 构建时间: %s\n程序开始运行...",
- baseapp.Version, baseapp.BuildTime)
- // 01, 初始化卫星定位模块
- gps.ModuleInit()
- // 02, 初始化4G调制解调器
- if !modem.ModuleInit(false) {
- goto end_p
- }
- // 03, 初始化网络管理模块
- netmgr.ModuleInit()
- netmgr.WaitAllOK(time.Duration(10) * time.Second) // 等待联网成功和NTP时间同步成功
- // 04, 初始化相机拍照模块
- if !takephoto.ModuleInit() {
- goto end_p
- }
- // 05, 初始化单片机控制板
- if !mcu.ModuleInit() {
- goto end_p
- }
- // 06, 后台服务器业务交互
- if !reporter.ModuleInit() {
- goto end_p
- }
- // 07, 阻塞等待退出信号量
- select {
- case <-baseapp.IsExit2():
- case <-mcu.NotifyPwrWillOff():
- }
- // 08, 退出程序并释放资源
- end_p:
- reporter.ModuleExit()
- mcu.ModuleExit()
- modem.ModuleExit()
- gps.ModuleExit()
- baseapp.Logger.Info("程序退出")
- baseapp.ExitLogger() // 安全的关闭日志模块
- baseapp.SafeExit() // 安全的关闭退出程序
- }
- func help() {
- h := `
- -h 显示帮助提示
- -v 当前程序版本
- `
- fmt.Println(h)
- }
|