3bf078ed3f
- Introduced a new directory `testdata/captures/` containing captured XML archives and README documentation for the camera test framework. - Added a mock server implementation to replay captured SOAP responses for testing. - Created automated tests for Bosch FLEXIDOME indoor 5100i IR using captured responses, validating device information, system date and time, capabilities, and profiles. - Implemented enhanced device features tests, covering hostname, DNS, NTP, network interfaces, scopes, and user management. - Added support for enhanced media and imaging features, including video and audio sources, and imaging options. - Updated types to include new configurations and options for network, imaging, and device capabilities.
40 lines
910 B
Go
40 lines
910 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/0x524A/go-onvif/discovery"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println("Discovering ONVIF cameras on the network...")
|
|
|
|
ctx := context.Background()
|
|
|
|
devices, err := discovery.Discover(ctx, 10*time.Second)
|
|
if err != nil {
|
|
log.Fatalf("Discovery failed: %v", err)
|
|
}
|
|
|
|
if len(devices) == 0 {
|
|
fmt.Println("No ONVIF devices found")
|
|
return
|
|
}
|
|
|
|
fmt.Printf("\nFound %d device(s):\n\n", len(devices))
|
|
for i, device := range devices {
|
|
fmt.Printf("Device #%d:\n", i+1)
|
|
fmt.Printf(" Endpoint Ref: %s\n", device.EndpointRef)
|
|
fmt.Printf(" XAddrs: %v\n", device.XAddrs)
|
|
fmt.Printf(" Device Endpoint: %s\n", device.GetDeviceEndpoint())
|
|
fmt.Printf(" Name: %s\n", device.GetName())
|
|
fmt.Printf(" Location: %s\n", device.GetLocation())
|
|
fmt.Printf(" Types: %v\n", device.Types)
|
|
fmt.Printf(" Scopes: %v\n", device.Scopes)
|
|
fmt.Println()
|
|
}
|
|
}
|