rain_monitor/main.go
fengyarnom 94308d81a0 init
2025-06-27 18:09:37 +08:00

53 lines
1.2 KiB
Go

package main
import (
"flag"
"log"
"rain_monitor/api"
"rain_monitor/db"
"rain_monitor/modbus"
"rain_monitor/scheduler"
)
var (
dbHost = flag.String("db-host", "8.134.185.53", "数据库主机地址")
dbPort = flag.Int("db-port", 3306, "数据库端口")
dbUser = flag.String("db-user", "remote", "数据库用户名")
dbPassword = flag.String("db-password", "root", "数据库密码")
dbName = flag.String("db-name", "rain_monitor", "数据库名称")
)
func main() {
// 解析命令行参数
flag.Parse()
// 初始化数据库连接
dbConfig := db.DBConfig{
Host: *dbHost,
Port: *dbPort,
User: *dbUser,
Password: *dbPassword,
DBName: *dbName,
}
log.Println("正在连接数据库...")
err := db.InitDB(dbConfig)
if err != nil {
log.Fatalf("数据库初始化失败: %v", err)
}
defer db.CloseDB()
log.Println("数据库连接成功")
// 启动TCP服务器
log.Println("正在启动TCP服务器...")
go modbus.StartTCPServer()
// 启动定时任务调度器
log.Println("正在启动定时任务调度器...")
go scheduler.StartScheduler()
// 启动Web服务器
log.Println("正在启动Web服务器...")
api.StartWebServer() // 这个函数会阻塞主线程
}