discovery.go 889 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. "lc/common/onvif/discovery"
  6. "lc/common/onvif/profiles/devicemgmt"
  7. "lc/common/onvif/profiles/media"
  8. "lc/common/onvif/soap"
  9. )
  10. func main() {
  11. // discovery devices
  12. devices, err := discovery.StartDiscovery(5 * time.Second)
  13. if err != nil {
  14. return
  15. }
  16. if len(devices) == 0 {
  17. fmt.Printf("No devices descovered\n")
  18. return
  19. }
  20. // Create soap client
  21. client := soap.NewClient(
  22. soap.WithTimeout(time.Second * 5),
  23. )
  24. client.AddHeader(soap.NewWSSSecurityHeader("video", "123456qwe"))
  25. for _, d := range devices {
  26. dev := devicemgmt.NewDevice(client, d.XAddr)
  27. {
  28. dev.GetDeviceInformation(&devicemgmt.GetDeviceInformation{})
  29. }
  30. {
  31. dev.GetServices(&devicemgmt.GetServices{})
  32. }
  33. {
  34. dev.GetCapabilities(&devicemgmt.GetCapabilities{})
  35. }
  36. m := media.NewMedia(client, d.XAddr)
  37. {
  38. m.GetStreamUri(&media.GetStreamUri{})
  39. }
  40. }
  41. }