Kaynağa Gözat

移除Golang的内容

kunmeng 3 ay önce
ebeveyn
işleme
d563b72610
10 değiştirilmiş dosya ile 4 ekleme ve 428 silme
  1. 1 0
      .gitignore
  2. 0 155
      HikBallCamera.go
  3. 0 103
      HikNvr.go
  4. 0 66
      Hikvision.go
  5. 0 72
      Type.go
  6. 0 5
      go.mod
  7. 0 2
      go.sum
  8. 0 12
      openLibary_unix.go
  9. 0 13
      openLibrary_windows.go
  10. 3 0
      src/HIKBallCamera.cpp

+ 1 - 0
.gitignore

@@ -3,6 +3,7 @@
 /.fleet
 /cmake-build-debug-visual-studio
 /cmake-build-release-visual-studio
+/cmake-build-debug
 *.lib
 *.dll
 *.so

+ 0 - 155
HikBallCamera.go

@@ -1,155 +0,0 @@
-package HikNetSDK
-
-import (
-    "fmt"
-    "sync"
-    "unsafe"
-)
-
-type HIKBallCamera struct {
-    core          unsafe.Pointer
-    State         bool
-    BallCameraCfg BallCamera
-    mux           sync.RWMutex
-}
-
-func NewHIKBallCamera(BallCameraCfg BallCamera) *HIKBallCamera {
-    return &HIKBallCamera{
-        core:          newHIKBallCamera(),
-        BallCameraCfg: BallCameraCfg,
-        State:         false,
-        mux:           sync.RWMutex{},
-    }
-}
-
-func (hikBC *HIKBallCamera) Login() bool {
-    hikBC.mux.Lock()
-    hikBC.State = initBallCamera(hikBC.core, hikBC.BallCameraCfg.Ip, hikBC.BallCameraCfg.Port, hikBC.BallCameraCfg.User, hikBC.BallCameraCfg.Password, hikBC.BallCameraCfg.Type)
-    hikBC.mux.Unlock()
-    return hikBC.State
-}
-
-func (hikBC *HIKBallCamera) opt(action func() bool) bool {
-    hikBC.mux.RLock()
-    if hikBC.State {
-        hikBC.mux.RUnlock()
-        hikBC.mux.Lock()
-        hikBC.State = action()
-        hikBC.mux.Unlock()
-    } else {
-        hikBC.mux.RUnlock()
-    }
-    return hikBC.State
-}
-
-func (hikBC *HIKBallCamera) PTZGet(P, T, Z *float32) bool {
-    return hikBC.opt(func() bool {
-        return ptzGet(hikBC.core, unsafe.Pointer(P), unsafe.Pointer(T), unsafe.Pointer(Z))
-    })
-}
-
-func (hikBC *HIKBallCamera) PtzTo(Action int, P, T, Z float32) bool {
-    return hikBC.opt(func() bool {
-        return ptzTo(hikBC.core, Action, P, T, Z)
-    })
-}
-
-func (hikBC *HIKBallCamera) StartBus(Direction, Speed int) bool {
-    return hikBC.opt(func() bool {
-        return startBus(hikBC.core, Direction, Speed)
-    })
-}
-
-func (hikBC *HIKBallCamera) StopBus(Direction int) bool {
-    return hikBC.opt(func() bool {
-        return stopBus(hikBC.core, Direction)
-    })
-}
-
-func (hikBC *HIKBallCamera) OneClickToSeeInFullView(point Point) bool {
-    TransPoint := hikBC.WarpingPtByHomography(hikBC.BallCameraCfg.Matrix.Matrix, point)
-    return hikBC.PtzTo(5,
-        float32(hikBC.mapping(hikBC.BallCameraCfg.Matrix.PStart, hikBC.BallCameraCfg.Matrix.PMax, TransPoint.X, hikBC.BallCameraCfg.Matrix.PPositiveDirection, "inv")),
-        float32(hikBC.mapping(hikBC.BallCameraCfg.Matrix.TStart, hikBC.BallCameraCfg.Matrix.TMax, TransPoint.Y, hikBC.BallCameraCfg.Matrix.TPositiveDirection, "inv")),
-        0.0,
-    )
-
-}
-
-func (hikBC *HIKBallCamera) PTZ2FullView() (Point, error) {
-    var ptz PTZ
-    if !hikBC.PTZGet(&ptz.P, &ptz.T, &ptz.Z) {
-        return Point{}, fmt.Errorf("PTZ Get Error")
-    }
-    return hikBC.WarpingPtByHomography(hikBC.BallCameraCfg.Matrix.InvMatrix, Point{
-        X: hikBC.mapping(hikBC.BallCameraCfg.Matrix.PStart, hikBC.BallCameraCfg.Matrix.PMax, float64(ptz.P), hikBC.BallCameraCfg.Matrix.PPositiveDirection, ""),
-        Y: hikBC.mapping(hikBC.BallCameraCfg.Matrix.TStart, hikBC.BallCameraCfg.Matrix.TMax, float64(ptz.T), hikBC.BallCameraCfg.Matrix.TPositiveDirection, "")}), nil
-}
-
-func (hikBC *HIKBallCamera) WarpingPtByHomography(matrix []float64, p Point) Point {
-    var x, y, z float64
-    x = matrix[0]*p.X + matrix[1]*p.Y + 1.*matrix[2]
-    y = matrix[3]*p.X + matrix[4]*p.Y + 1.*matrix[5]
-    z = matrix[6]*p.X + matrix[7]*p.Y + 1.*matrix[8]
-
-    x /= z
-    y /= z
-    return Point{X: x, Y: y}
-}
-
-func (hikBC *HIKBallCamera) Invert3x3() bool {
-
-    a := hikBC.BallCameraCfg.Matrix.Matrix[0]
-    b := hikBC.BallCameraCfg.Matrix.Matrix[1]
-    c := hikBC.BallCameraCfg.Matrix.Matrix[2]
-    d := hikBC.BallCameraCfg.Matrix.Matrix[3]
-    e := hikBC.BallCameraCfg.Matrix.Matrix[4]
-    f := hikBC.BallCameraCfg.Matrix.Matrix[5]
-    g := hikBC.BallCameraCfg.Matrix.Matrix[6]
-    h := hikBC.BallCameraCfg.Matrix.Matrix[7]
-    i := hikBC.BallCameraCfg.Matrix.Matrix[8]
-
-    det := a*(e*i-f*h) - b*(d*i-f*g) + c*(d*h-e*g)
-
-    if det == 0 {
-        return false
-    }
-
-    invDet := 1.0 / det
-    hikBC.BallCameraCfg.Matrix.InvMatrix = []float64{
-        (e*i - f*h) * invDet,
-        (c*h - b*i) * invDet,
-        (b*f - c*e) * invDet,
-        (f*g - d*i) * invDet,
-        (a*i - c*g) * invDet,
-        (c*d - a*f) * invDet,
-        (d*h - e*g) * invDet,
-        (b*g - a*h) * invDet,
-        (a*e - b*d) * invDet,
-    }
-    return true
-}
-
-func (hikBC *HIKBallCamera) mapping(startV float64, max float64, value float64, direction string, method string) float64 {
-    if direction == "+" {
-        if method == "inv" {
-            if value > (max - startV) {
-                return value - (max - startV)
-            } else {
-                return startV + value // 映射
-            }
-        } else {
-            if value > startV {
-                return value - startV
-            } else {
-                return (max - startV) + value // 映射
-            }
-        }
-    } else {
-        if value > startV {
-            return startV + max - value
-        } else {
-            return startV - value
-        }
-    }
-}

+ 0 - 103
HikNvr.go

@@ -1,103 +0,0 @@
-package HikNetSDK
-
-import (
-    "sync"
-    "unsafe"
-)
-
-type HIKNvr struct {
-    core      unsafe.Pointer
-    State     bool
-    NvrConfig Nvr
-    mux       sync.RWMutex
-}
-
-func NewHIKNvr(nvrConfig Nvr) *HIKNvr {
-    return &HIKNvr{
-        core:      newHIKNvr(),
-        NvrConfig: nvrConfig,
-        State:     false,
-        mux:       sync.RWMutex{},
-    }
-}
-
-func (h *HIKNvr) opt(action func() bool) bool {
-    h.mux.RLock()
-    if h.State {
-        h.mux.RUnlock()
-        h.mux.Lock()
-        h.State = action()
-        h.mux.Unlock()
-    }
-    h.mux.RUnlock()
-    return h.State
-}
-
-func (h *HIKNvr) Login() bool {
-    h.mux.Lock()
-    h.State = initNvr(h.core, h.NvrConfig.Ip, h.NvrConfig.Port, h.NvrConfig.User, h.NvrConfig.Password, h.NvrConfig.Channel)
-    h.mux.Unlock()
-    return h.State
-}
-
-func (h *HIKNvr) CheckTimeRegionWithMonth(year int, month int) string {
-    h.mux.RLock()
-    if h.State {
-        h.mux.RUnlock()
-        data := checkTimeRegionWithMonth(h.core, year, month)
-        if data == "" {
-            h.mux.Lock()
-            h.State = false
-            h.mux.Unlock()
-        } else {
-            h.mux.Lock()
-            h.State = true
-            h.mux.Unlock()
-            return data
-        }
-    } else {
-        h.mux.RUnlock()
-    }
-    return ""
-}
-
-func (h *HIKNvr) CheckTimeRegionWithDay(year int, month int, day int) string {
-    h.mux.RLock()
-    if h.State {
-        h.mux.RUnlock()
-        data := checkTimeRegionWithDay(h.core, year, month, day)
-        if data == "" {
-            h.mux.Lock()
-            h.State = false
-            h.mux.Unlock()
-        } else {
-            h.mux.Lock()
-            h.State = true
-            h.mux.Unlock()
-            return data
-        }
-    } else {
-        h.mux.RUnlock()
-    }
-    return ""
-}
-func (h *HIKNvr) UTCDiff() int {
-    h.mux.RLock()
-    if h.State {
-        data := nvrUTCDiff(h.core)
-        h.mux.RUnlock()
-        if nvrUTCDiff(h.core) == 5000 {
-            h.mux.Lock()
-            h.State = false
-            h.mux.Unlock()
-        } else {
-            h.mux.Lock()
-            h.State = true
-            h.mux.Unlock()
-            return data
-        }
-    } else {
-        h.mux.RUnlock()
-    }
-    return 5000
-}

+ 0 - 66
Hikvision.go

@@ -1,66 +0,0 @@
-package HikNetSDK
-
-import (
-	"fmt"
-	"github.com/ebitengine/purego"
-	"runtime"
-	"unsafe"
-)
-
-var libc uintptr
-
-var (
-	DvrInit func() bool
-
-	newHIKBallCamera func() unsafe.Pointer
-	initBallCamera   func(core unsafe.Pointer, ip string, port string, username string, password string, BallMachineType string) bool
-	ptzTo            func(core unsafe.Pointer, Action int, P float32, T float32, Z float32) bool
-	ptzGet           func(unsafe.Pointer, unsafe.Pointer, unsafe.Pointer, unsafe.Pointer) bool
-	stopBus          func(unsafe.Pointer, int) bool
-	startBus         func(unsafe.Pointer, int, int) bool
-
-	newHIKNvr                func() unsafe.Pointer
-	initNvr                  func(unsafe.Pointer, string, string, string, string, int) bool
-	checkTimeRegionWithMonth func(core unsafe.Pointer, year int, month int) string
-	checkTimeRegionWithDay   func(core unsafe.Pointer, year int, month int, day int) string
-	nvrUTCDiff               func(core unsafe.Pointer) int
-)
-
-func init() {
-	var err error
-	libc, err = openLibrary(getSystemLibrary())
-	if err != nil {
-		panic(err)
-	}
-
-	purego.RegisterLibFunc(&DvrInit, libc, "DVR_Init")
-
-	purego.RegisterLibFunc(&newHIKBallCamera, libc, "NewHIKBallCamera")
-	purego.RegisterLibFunc(&initBallCamera, libc, "InitBallCamera")
-	purego.RegisterLibFunc(&ptzTo, libc, "PtzGotoPut")
-	purego.RegisterLibFunc(&ptzGet, libc, "PtzGet")
-	purego.RegisterLibFunc(&stopBus, libc, "StopBus")
-	purego.RegisterLibFunc(&startBus, libc, "StartBus")
-
-	purego.RegisterLibFunc(&newHIKNvr, libc, "NewHIKNvr")
-	purego.RegisterLibFunc(&initNvr, libc, "InitNvr")
-	purego.RegisterLibFunc(&checkTimeRegionWithMonth, libc, "CheckTimeRegionWithMonth")
-	purego.RegisterLibFunc(&checkTimeRegionWithDay, libc, "CheckTimeRegionWithDay")
-	purego.RegisterLibFunc(&nvrUTCDiff, libc, "NvrUTCDiff")
-
-}
-
-func getSystemLibrary() string {
-	switch runtime.GOOS {
-	case "linux":
-		if runtime.GOARCH == "amd64" || runtime.GOARCH == "386" {
-			return "libHikNetSDKPkg_linux_amd64.so"
-		} else {
-			return "libHikNetSDKPkg_linux_arm64.so"
-		}
-	case "windows":
-		return "HikNetSDKPkg_win_amd64.dll"
-	default:
-		panic(fmt.Errorf("GOOS=%s is not supported", runtime.GOOS))
-	}
-}

+ 0 - 72
Type.go

@@ -1,72 +0,0 @@
-package HikNetSDK
-
-import "encoding/json"
-
-type HikCfg struct {
-	Nvr        map[string]Nvr        `json:"Nvr"`
-	BallCamera map[string]BallCamera `json:"BallCamera"`
-}
-
-type Nvr struct {
-	Name     string `json:"Name"`
-	Ip       string `json:"Ip"`
-	Port     string `json:"Port"`
-	User     string `json:"User"`
-	Password string `json:"Password"`
-	Channel  int    `json:"Channel"`
-}
-
-type BallCamera struct {
-	Type     string `json:"Type"`
-	Name     string `json:"Name"`
-	Ip       string `json:"Ip"`
-	Port     string `json:"Port"`
-	User     string `json:"User"`
-	Password string `json:"Password"`
-	RtspUrl  string `json:"RtspUrl"`
-	Matrix   Matrix `json:"Matrix"`
-	Channel  int    `json:"Channel"`
-}
-
-type Matrix struct {
-	PStart             float64   `json:"P_Start"`
-	PMax               float64   `json:"P_Max"`
-	PPositiveDirection string    `json:"p_Positive_Direction"`
-	TStart             float64   `json:"T_Start"`
-	TMax               float64   `json:"T_Max"`
-	TPositiveDirection string    `json:"T_Positive_Direction"`
-	Matrix             []float64 `json:"Matrix"`
-	InvMatrix          []float64 `json:"InvMatrix"`
-	PointSet           map[string]PointPair `json:"PointSet"`
-}
-
-type PointPair struct {
-	X float64 `json:"X"`
-	Y float64 `json:"Y"`
-	P float64 `json:"P"`
-	T float64 `json:"T"`
-}
-
-
-type PTZ struct {
-	P float32 `json:"P"`
-	T float32 `json:"T"`
-	Z float32 `json:"Z"`
-}
-
-type MoveCfg struct {
-	Speed     int `json:"Speed"`
-	Direction int `json:"Direction"`
-}
-type Point struct {
-	X float64 `json:"X"`
-	Y float64 `json:"Y"`
-}
-
-func (h *HikCfg) Json() []byte {
-	marshal, err := json.Marshal(h)
-	if err != nil {
-		return nil
-	}
-	return marshal
-}

+ 0 - 5
go.mod

@@ -1,5 +0,0 @@
-module gitea.com/kunmeng/HikNetSDKPkg
-
-go 1.23.1
-
-require github.com/ebitengine/purego v0.8.0

+ 0 - 2
go.sum

@@ -1,2 +0,0 @@
-github.com/ebitengine/purego v0.8.0 h1:JbqvnEzRvPpxhCJzJJ2y0RbiZ8nyjccVUrSM3q+GvvE=
-github.com/ebitengine/purego v0.8.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=

+ 0 - 12
openLibary_unix.go

@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// SPDX-FileCopyrightText: 2023 The Ebitengine Authors
-
-//go:build darwin || freebsd || linux
-
-package HikNetSDK
-
-import "github.com/ebitengine/purego"
-
-func openLibrary(name string) (uintptr, error) {
-	return purego.Dlopen(name, purego.RTLD_NOW|purego.RTLD_GLOBAL)
-}

+ 0 - 13
openLibrary_windows.go

@@ -1,13 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// SPDX-FileCopyrightText: 2023 The Ebitengine Authors
-
-package HikNetSDK
-
-import "syscall"
-
-func openLibrary(name string) (uintptr, error) {
-	// Use [syscall.LoadLibrary] here to avoid external dependencies (#270).
-	// For actual use cases, [golang.org/x/sys/windows.NewLazySystemDLL] is recommended.
-	handle, err := syscall.LoadLibrary(name)
-	return uintptr(handle), err
-}

+ 3 - 0
src/HIKBallCamera.cpp

@@ -1,4 +1,7 @@
 #include "HIKBallCamera.h"
+
+#include <cstring>
+
 #include "FormatTrans.h"
 #include <vector>
 #include <sstream>