1. NVR 和 BallCamera 添加 Status 功能

This commit is contained in:
kunmeng
2025-04-30 16:48:33 +08:00
parent a97fc849b8
commit cefba47e97
5 changed files with 17 additions and 5 deletions

View File

@@ -432,3 +432,7 @@ func verify(data []byte) (byte, error) {
func (this *BallCamera) Logout() error { func (this *BallCamera) Logout() error {
return Core.Logout(this.userId) return Core.Logout(this.userId)
} }
func (this *BallCamera) Status() bool {
return Core.NET_DVR_RemoteControl(this.userId)
}

View File

@@ -12,8 +12,8 @@ func TestCamera(t *testing.T) {
if err != nil { if err != nil {
return return
} }
Camera, err := NewBallCamera("192.168.211.48", 8000, "admin", "okwy1234", BuKongQiu) //Camera, err := NewBallCamera("192.168.211.48", 8000, "admin", "okwy1234", BuKongQiu)
//Camera, err := NewBallCamera("192.168.211.64", 8000, "admin", "ubis3333", Base) Camera, err := NewBallCamera("192.168.211.64", 8000, "admin", "ubis3333", Base)
if err != nil { if err != nil {
t.Errorf("NewBallCamera() error = %v", err) t.Errorf("NewBallCamera() error = %v", err)
return return

View File

@@ -58,6 +58,10 @@ func Login(Ip string, Port int, Username string, Password string) (LONG, NET_DVR
return LONG(cUserId), DeviceInfo, nil return LONG(cUserId), DeviceInfo, nil
} }
func NET_DVR_RemoteControl(userId LONG) bool {
return C.NET_DVR_RemoteControl(C.LONG(userId), C.DWORD(20005), nil, C.DWORD(0)) == C.TRUE
}
func Logout(userId LONG) error { func Logout(userId LONG) error {
if userId > -1 { if userId > -1 {
cResult := C.NET_DVR_Logout(C.LONG(userId)) cResult := C.NET_DVR_Logout(C.LONG(userId))

8
Nvr.go
View File

@@ -28,7 +28,7 @@ func NewNvr(Ip string, Port int, Username, Password string) (*Nvr, error) {
}, nil }, nil
} }
func (this *Nvr) getNvrUTCDiff() (int, error) { func (this *Nvr) GetTimeZone() (int, error) {
var data Core.NET_DVR_NETAPPCFG var data Core.NET_DVR_NETAPPCFG
var dataPtr = unsafe.Pointer(data.GetCPtr()) var dataPtr = unsafe.Pointer(data.GetCPtr())
err := Core.GetDVRConfig(this.userId, 222, 0, dataPtr, Core.DWORD(unsafe.Sizeof(data.GetC()))) err := Core.GetDVRConfig(this.userId, 222, 0, dataPtr, Core.DWORD(unsafe.Sizeof(data.GetC())))
@@ -105,7 +105,7 @@ func (this *Nvr) CheckTimeRegionWithDay(Year, Month, Day, Channel uint16) ([]Tim
if err != nil { if err != nil {
return nil, err return nil, err
} }
ByUTCDiff, err := this.getNvrUTCDiff() ByUTCDiff, err := this.GetTimeZone()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -166,6 +166,10 @@ func (this *Nvr) Logout() error {
return Core.Logout(this.userId) return Core.Logout(this.userId)
} }
func (this *Nvr) Status() bool {
return Core.NET_DVR_RemoteControl(this.userId)
}
type TimeRange struct { type TimeRange struct {
StartTime time.Time StartTime time.Time
EndTime time.Time EndTime time.Time

View File

@@ -15,7 +15,7 @@ func TestNewNvr(t *testing.T) {
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
diff, err := nvr.getNvrUTCDiff() diff, err := nvr.GetTimeZone()
if err != nil { if err != nil {
return return
} }