dashboard handlers & configurator struct
This commit is contained in:
parent
db646d6818
commit
9f9f7845ed
@ -1,5 +1,7 @@
|
||||
package main
|
||||
|
||||
import "git.moxitech.ru/moxitech/msu_wz_universal/internal/dashboard"
|
||||
|
||||
// загрузить настройку
|
||||
// инициализировать подключение к zabbix
|
||||
// инициализировать датчики
|
||||
@ -16,4 +18,10 @@ func main() {
|
||||
// panic(err)
|
||||
// }
|
||||
// fmt.Println("OK", val)
|
||||
|
||||
// Paralel running server
|
||||
go func() {
|
||||
dashboard.StartServer()
|
||||
}()
|
||||
select {}
|
||||
}
|
||||
|
27
app/template.html
Normal file
27
app/template.html
Normal file
@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Тестовая Страница</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #f4f4f4;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
h1 {
|
||||
color: #333;
|
||||
}
|
||||
p {
|
||||
font-size: 1.2em;
|
||||
color: #555;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Добро пожаловать на тестовую страницу!</h1>
|
||||
<p>Это пример HTML-шаблона, отданного через HTTP сервер на Go.</p>
|
||||
</body>
|
||||
</html>
|
2
go.mod
2
go.mod
@ -4,5 +4,7 @@ go 1.22.7
|
||||
|
||||
require (
|
||||
github.com/cavaliercoder/go-zabbix v0.0.0-20230131181515-93725c39d639 // indirect
|
||||
github.com/goburrow/modbus v0.1.0 // indirect
|
||||
github.com/goburrow/serial v0.1.0 // indirect
|
||||
github.com/gosnmp/gosnmp v1.38.0 // indirect
|
||||
)
|
||||
|
4
go.sum
4
go.sum
@ -1,4 +1,8 @@
|
||||
github.com/cavaliercoder/go-zabbix v0.0.0-20230131181515-93725c39d639 h1:eDTc0yCGN1XoC8M1Nb21GbncV0LCuP4DGroC38YBX1o=
|
||||
github.com/cavaliercoder/go-zabbix v0.0.0-20230131181515-93725c39d639/go.mod h1:o9iZ0ep18zjkTdG1yoCmBZSMAWo2qUXVMxqmEl+6GLo=
|
||||
github.com/goburrow/modbus v0.1.0 h1:DejRZY73nEM6+bt5JSP6IsFolJ9dVcqxsYbpLbeW/ro=
|
||||
github.com/goburrow/modbus v0.1.0/go.mod h1:Kx552D5rLIS8E7TyUwQ/UdHEqvX5T8tyiGBTlzMcZBg=
|
||||
github.com/goburrow/serial v0.1.0 h1:v2T1SQa/dlUqQiYIT8+Cu7YolfqAi3K96UmhwYyuSrA=
|
||||
github.com/goburrow/serial v0.1.0/go.mod h1:sAiqG0nRVswsm1C97xsttiYCzSLBmUZ/VSlVLZJ8haA=
|
||||
github.com/gosnmp/gosnmp v1.38.0 h1:I5ZOMR8kb0DXAFg/88ACurnuwGwYkXWq3eLpJPHMEYc=
|
||||
github.com/gosnmp/gosnmp v1.38.0/go.mod h1:FE+PEZvKrFz9afP9ii1W3cprXuVZ17ypCcyyfYuu5LY=
|
||||
|
@ -1,12 +1,11 @@
|
||||
package configurator
|
||||
|
||||
type Config struct {
|
||||
}
|
||||
|
||||
func NewStandartConfig() *Config {
|
||||
return &Config{}
|
||||
}
|
||||
|
||||
func ReadConfig() *Config {
|
||||
return &Config{}
|
||||
DeviceAddress string // адресс устройства
|
||||
DashboardPort string // адресс локального ui
|
||||
DumperFileName string // имя файла для дампа
|
||||
ZabbixPort string // Zabbix-порт
|
||||
ZabbixAddress string // Zabbix-адресс
|
||||
ZabbixUsername string // пользователь
|
||||
ZabbixPwd string // пароль пользователя
|
||||
}
|
||||
|
@ -1 +1,36 @@
|
||||
package dashboard
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// StartServer запускает HTTP сервер с тестовой ручкой
|
||||
func StartServer() {
|
||||
// Определяем тестовую ручку
|
||||
http.HandleFunc("/setup", TestHandler)
|
||||
|
||||
// Указываем порт, на котором будет работать сервер
|
||||
port := ":9090"
|
||||
fmt.Printf("Сервер запущен на http://localhost%s\n", port)
|
||||
|
||||
// Запускаем сервер
|
||||
if err := http.ListenAndServe(port, nil); err != nil {
|
||||
fmt.Printf("Ошибка при запуске сервера: %s\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// Загружаем HTML шаблон
|
||||
tmpl, err := template.ParseFiles("template.html")
|
||||
if err != nil {
|
||||
http.Error(w, "Ошибка загрузки шаблона", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
// Отправляем HTML на клиент
|
||||
if err := tmpl.Execute(w, nil); err != nil {
|
||||
http.Error(w, "Ошибка при выполнении шаблона", http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
|
33
internal/wiren-connector/connector.go
Normal file
33
internal/wiren-connector/connector.go
Normal file
@ -0,0 +1,33 @@
|
||||
package wirenconnector
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/goburrow/modbus"
|
||||
)
|
||||
|
||||
// Подключаемся к плате на базе wirenboard
|
||||
func Connect(ip string, port string) {
|
||||
handler := modbus.NewTCPClientHandler(fmt.Sprintf("%s:502", ip))
|
||||
handler.Timeout = 10 * time.Second
|
||||
handler.SlaveId = 1
|
||||
|
||||
err := handler.Connect()
|
||||
if err != nil {
|
||||
fmt.Printf("Ошибка подключения: %v\n", err)
|
||||
return
|
||||
}
|
||||
defer handler.Close()
|
||||
|
||||
client := modbus.NewClient(handler)
|
||||
|
||||
// Чтение регистров (пример)
|
||||
results, err := client.ReadHoldingRegisters(0, 10)
|
||||
if err != nil {
|
||||
fmt.Printf("Ошибка чтения регистров: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf("Результаты: %v\n", results)
|
||||
}
|
Loading…
Reference in New Issue
Block a user