Refactor and simplify package structure and interfaces.
Reorganize code by removing unused files, restructuring package organization, and updating import references to new paths. This simplifies handling of smart and protocol-related operations, improves maintainability, and eliminates redundancy.
This commit is contained in:
@ -3,7 +3,9 @@ package main
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"gitea.unprism.ru/KRBL/n9m/v2"
|
||||
"gitea.unprism.ru/KRBL/n9m/v2/pkg/models"
|
||||
"gitea.unprism.ru/KRBL/n9m/v2/pkg/protocol"
|
||||
"gitea.unprism.ru/KRBL/n9m/v2/pkg/smart"
|
||||
"io"
|
||||
"net"
|
||||
"os"
|
||||
@ -30,9 +32,9 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func handleSpecialPackages(_ *n9m.SmartPackage, pack n9m.Package) error {
|
||||
func handleSpecialPackages(_ *smart.SmartPackage, pack protocol.Package) error {
|
||||
switch pack.SSRC {
|
||||
case n9m.SpecialPayloadTypeGPS:
|
||||
case protocol.SpecialPayloadTypeGPS:
|
||||
fmt.Printf("%+v\n", pack.GPS)
|
||||
return nil
|
||||
default:
|
||||
@ -40,16 +42,16 @@ func handleSpecialPackages(_ *n9m.SmartPackage, pack n9m.Package) error {
|
||||
}
|
||||
}
|
||||
|
||||
func handleCertificateConnect(sPack *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
var params n9m.CertificateConnectRequest
|
||||
func handleCertificateConnect(sPack *smart.SmartPackage, pack protocol.Package) (err error) {
|
||||
var params models.CertificateConnectRequest
|
||||
|
||||
if err = pack.GetParametersAs(¶ms); err != nil {
|
||||
return fmt.Errorf("failed to get parameters: %w", err)
|
||||
}
|
||||
|
||||
var response = n9m.CertificateConnectResponse{
|
||||
var response = models.CertificateConnectResponse{
|
||||
ErrorCode: 0,
|
||||
CommandMask: n9m.CommandMaskAll,
|
||||
CommandMask: models.CommandMaskAll,
|
||||
}
|
||||
|
||||
pack.SetResponse(response)
|
||||
@ -61,7 +63,7 @@ func handleCertificateConnect(sPack *n9m.SmartPackage, pack n9m.Package) (err er
|
||||
fmt.Println("Connected:", params.SerialNumber)
|
||||
sPack.Storage["serial"] = params.SerialNumber
|
||||
|
||||
var request n9m.ConfigModelGetRequest
|
||||
var request models.ConfigModelGetRequest
|
||||
request.MDVR = "?"
|
||||
|
||||
pack.Payload.Module = "CONFIGMODEL"
|
||||
@ -73,7 +75,7 @@ func handleCertificateConnect(sPack *n9m.SmartPackage, pack n9m.Package) (err er
|
||||
return
|
||||
}
|
||||
|
||||
func handleKeepAlive(sPack *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
func handleKeepAlive(sPack *smart.SmartPackage, pack protocol.Package) (err error) {
|
||||
serial := sPack.Storage["serial"]
|
||||
fmt.Println(serial, "still alive!")
|
||||
|
||||
@ -83,12 +85,12 @@ func handleKeepAlive(sPack *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func handleGetConfig(sPack *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
func handleGetConfig(sPack *smart.SmartPackage, pack protocol.Package) (err error) {
|
||||
serial := sPack.Storage["serial"]
|
||||
|
||||
os.WriteFile(fmt.Sprintf("./%s.json", serial), pack.RawPayload, 0644)
|
||||
|
||||
var request n9m.ConfigModelSetRequest
|
||||
var request models.ConfigModelSetRequest
|
||||
|
||||
if err = pack.GetParametersAs(&request); err != nil {
|
||||
fmt.Println(err)
|
||||
@ -98,22 +100,22 @@ func handleGetConfig(sPack *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func handleUselessAlarms(sPack *n9m.SmartPackage, pack n9m.Package, response n9m.SendAlarmInfoResponse) (err error) {
|
||||
func handleUselessAlarms(sPack *smart.SmartPackage, pack protocol.Package, response models.SendAlarmInfoResponse) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleVideoLossAlarm(sPack *n9m.SmartPackage, pack n9m.Package, response n9m.SendAlarmInfoResponse) (err error) {
|
||||
func handleVideoLossAlarm(sPack *smart.SmartPackage, pack protocol.Package, response models.SendAlarmInfoResponse) (err error) {
|
||||
fmt.Println("Video loss alarm!")
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleCameraCoveredAlarm(sPack *n9m.SmartPackage, pack n9m.Package, response n9m.SendAlarmInfoResponse) (err error) {
|
||||
func handleCameraCoveredAlarm(sPack *smart.SmartPackage, pack protocol.Package, response models.SendAlarmInfoResponse) (err error) {
|
||||
fmt.Println("Camera covered alarm!")
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleSPI(_ *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
var params n9m.SpiParameters
|
||||
func handleSPI(_ *smart.SmartPackage, pack protocol.Package) (err error) {
|
||||
var params models.SpiParameters
|
||||
|
||||
if err = pack.GetParametersAs(¶ms); err != nil {
|
||||
return
|
||||
@ -124,20 +126,20 @@ func handleSPI(_ *n9m.SmartPackage, pack n9m.Package) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func createSmartPackage(conn net.Conn) (pack *n9m.SmartPackage) {
|
||||
pack = n9m.NewSmartPackage(conn)
|
||||
func createSmartPackage(conn net.Conn) (pack *smart.SmartPackage) {
|
||||
pack = smart.NewSmartPackage(conn)
|
||||
|
||||
pack.AddPayloadHandler(n9m.PayloadTypeSpecial, handleSpecialPackages)
|
||||
pack.AddPayloadHandler(protocol.PayloadTypeSpecial, handleSpecialPackages)
|
||||
|
||||
pack.AddJSONHandler("CERTIFICATE", "CONNECT", handleCertificateConnect)
|
||||
pack.AddJSONHandler("CERTIFICATE", "KEEPALIVE", handleKeepAlive)
|
||||
pack.AddJSONHandler("CONFIGMODEL", "GET", handleGetConfig)
|
||||
pack.AddJSONHandler("DEVEMM", "SPI", handleSPI)
|
||||
|
||||
pack.AddAlarmHandler(n9m.AlarmTypeMotionDetection, handleUselessAlarms)
|
||||
pack.AddAlarmHandler(protocol.AlarmTypeMotionDetection, handleUselessAlarms)
|
||||
|
||||
pack.AddAlarmHandler(n9m.AlarmTypeVideoLoss, handleVideoLossAlarm)
|
||||
pack.AddAlarmHandler(n9m.AlarmTypeCameraCovered, handleCameraCoveredAlarm)
|
||||
pack.AddAlarmHandler(protocol.AlarmTypeVideoLoss, handleVideoLossAlarm)
|
||||
pack.AddAlarmHandler(protocol.AlarmTypeCameraCovered, handleCameraCoveredAlarm)
|
||||
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user