dashboard handlers & configurator struct
This commit is contained in:
parent
db646d6818
commit
9f9f7845ed
@ -1,5 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
|
import "git.moxitech.ru/moxitech/msu_wz_universal/internal/dashboard"
|
||||||
|
|
||||||
// загрузить настройку
|
// загрузить настройку
|
||||||
// инициализировать подключение к zabbix
|
// инициализировать подключение к zabbix
|
||||||
// инициализировать датчики
|
// инициализировать датчики
|
||||||
@ -16,4 +18,10 @@ func main() {
|
|||||||
// panic(err)
|
// panic(err)
|
||||||
// }
|
// }
|
||||||
// fmt.Println("OK", val)
|
// 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 (
|
require (
|
||||||
github.com/cavaliercoder/go-zabbix v0.0.0-20230131181515-93725c39d639 // indirect
|
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
|
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 h1:eDTc0yCGN1XoC8M1Nb21GbncV0LCuP4DGroC38YBX1o=
|
||||||
github.com/cavaliercoder/go-zabbix v0.0.0-20230131181515-93725c39d639/go.mod h1:o9iZ0ep18zjkTdG1yoCmBZSMAWo2qUXVMxqmEl+6GLo=
|
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 h1:I5ZOMR8kb0DXAFg/88ACurnuwGwYkXWq3eLpJPHMEYc=
|
||||||
github.com/gosnmp/gosnmp v1.38.0/go.mod h1:FE+PEZvKrFz9afP9ii1W3cprXuVZ17ypCcyyfYuu5LY=
|
github.com/gosnmp/gosnmp v1.38.0/go.mod h1:FE+PEZvKrFz9afP9ii1W3cprXuVZ17ypCcyyfYuu5LY=
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package configurator
|
package configurator
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
}
|
DeviceAddress string // адресс устройства
|
||||||
|
DashboardPort string // адресс локального ui
|
||||||
func NewStandartConfig() *Config {
|
DumperFileName string // имя файла для дампа
|
||||||
return &Config{}
|
ZabbixPort string // Zabbix-порт
|
||||||
}
|
ZabbixAddress string // Zabbix-адресс
|
||||||
|
ZabbixUsername string // пользователь
|
||||||
func ReadConfig() *Config {
|
ZabbixPwd string // пароль пользователя
|
||||||
return &Config{}
|
|
||||||
}
|
}
|
||||||
|
@ -1 +1,36 @@
|
|||||||
package dashboard
|
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