package HikNetSDK import ( "fmt" "github.com/ebitengine/purego" "runtime" "unsafe" ) var libc uintptr var ( DvrInit func() int newHIKBallCamera func() unsafe.Pointer initBallCamera func(core unsafe.Pointer, ip string, port string, username string, password string, BallMachineType string, ErrorCode unsafe.Pointer, ErrorInfo *byte) bool ballCameraLogout func(core unsafe.Pointer, ErrorCode unsafe.Pointer, ErrorInfo *byte) 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)) } }