git init
This commit is contained in:
107
Hikvision.go
Normal file
107
Hikvision.go
Normal file
@@ -0,0 +1,107 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/ebitengine/purego"
|
||||
"runtime"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var libc uintptr
|
||||
|
||||
var (
|
||||
DVR_Init 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
|
||||
)
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
libc, err = openLibrary(getSystemLibrary())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
purego.RegisterLibFunc(&DVR_Init, 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")
|
||||
|
||||
}
|
||||
|
||||
func getSystemLibrary() string {
|
||||
switch runtime.GOOS {
|
||||
case "linux":
|
||||
return "libc.so.6"
|
||||
case "windows":
|
||||
return "Hikvision_Network_SDK_Packaging_Library.dll"
|
||||
default:
|
||||
panic(fmt.Errorf("GOOS=%s is not supported", runtime.GOOS))
|
||||
}
|
||||
}
|
||||
|
||||
type HIKBallCamera struct {
|
||||
core unsafe.Pointer
|
||||
}
|
||||
|
||||
func NewHIKBallCamera() *HIKBallCamera {
|
||||
return &HIKBallCamera{
|
||||
core: newHIKBallCamera(),
|
||||
}
|
||||
}
|
||||
|
||||
func (h *HIKBallCamera) Login(ip string, port string, username string, password string, BallMachineType string) bool {
|
||||
return initBallCamera(h.core, ip, port, username, password, BallMachineType)
|
||||
}
|
||||
func (h *HIKBallCamera) PtzTo(Action int, P, T, Z float32) bool {
|
||||
return ptzTo(h.core, Action, P, T, Z)
|
||||
}
|
||||
func (h *HIKBallCamera) PTZGet(P, T, Z *float32) bool {
|
||||
return ptzGet(h.core, unsafe.Pointer(P), unsafe.Pointer(T), unsafe.Pointer(Z))
|
||||
}
|
||||
func (h *HIKBallCamera) StopBus(Direction int) bool {
|
||||
return stopBus(h.core, Direction)
|
||||
}
|
||||
func (h *HIKBallCamera) StartBus(Direction, Speed int) bool {
|
||||
return startBus(h.core, Direction, Speed)
|
||||
}
|
||||
|
||||
type HIKNvr struct {
|
||||
core unsafe.Pointer
|
||||
}
|
||||
|
||||
func NewHIKNvr() *HIKNvr {
|
||||
return &HIKNvr{
|
||||
core: newHIKNvr(),
|
||||
}
|
||||
}
|
||||
|
||||
func (h *HIKNvr) Login(ip string, port string, username string, password string, nvrType int) bool {
|
||||
return initNvr(h.core, ip, port, username, password, nvrType)
|
||||
}
|
||||
|
||||
func (h *HIKNvr) CheckTimeRegionWithMonth(year int, month int) string {
|
||||
return checkTimeRegionWithMonth(h.core, year, month)
|
||||
}
|
||||
func (h *HIKNvr) CheckTimeRegionWithDay(year int, month int, day int) string {
|
||||
return checkTimeRegionWithDay(h.core, year, month, day)
|
||||
}
|
||||
Reference in New Issue
Block a user