isapi_smart_regionEntrance.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package isapi
  2. import (
  3. "encoding/json"
  4. "encoding/xml"
  5. "github.com/sirupsen/logrus"
  6. )
  7. // RegionEntranceParam 进入区域
  8. type RegionEntranceParam struct {
  9. ID string `xml:"id" json:"id"`
  10. Enabled string `xml:"enabled" json:"enabled"`
  11. NormalizedScreenSize struct {
  12. NormalizedScreenWidth string `xml:"normalizedScreenWidth" json:"normalizedScreenWidth"`
  13. NormalizedScreenHeight string `xml:"normalizedScreenHeight" json:"normalizedScreenHeight"`
  14. } `xml:"normalizedScreenSize" json:"normalizedScreenSize"`
  15. RegionEntranceRegionList struct {
  16. Size string `xml:"size,attr" json:"size"`
  17. RegionEntranceRegion []struct {
  18. ID string `xml:"id" json:"id"`
  19. SensitivityLevel string `xml:"sensitivityLevel" json:"sensitivityLevel"`
  20. DetectionTarget string `xml:"detectionTarget" json:"detectionTarget"`
  21. AlarmConfidence string `xml:"alarmConfidence" json:"alarmConfidence"`
  22. RegionCoordinatesList struct {
  23. RegionCoordinates []struct {
  24. PositionX string `xml:"positionX" json:"positionX"`
  25. PositionY string `xml:"positionY" json:"positionY"`
  26. } `xml:"RegionCoordinates" json:"RegionCoordinates"`
  27. } `xml:"RegionCoordinatesList" json:"RegionCoordinatesList"`
  28. } `xml:"RegionEntranceRegion" json:"RegionEntranceRegion"`
  29. } `xml:"RegionEntranceRegionList" json:"RegionEntranceRegionList"`
  30. IsSupportMultiScene string `xml:"isSupportMultiScene" json:"isSupportMultiScene"`
  31. IsSupportHumanMisinfoFilter string `xml:"isSupportHumanMisinfoFilter" json:"isSupportHumanMisinfoFilter"`
  32. IsSupportVehicleMisinfoFilter string `xml:"isSupportVehicleMisinfoFilter" json:"isSupportVehicleMisinfoFilter"`
  33. IsSupportTargetMultiSelect string `xml:"isSupportTargetMultiSelect" json:"isSupportTargetMultiSelect"`
  34. }
  35. func (c *Client) GetRegionEntranceCap() (resp RegionEntranceCap, err error) {
  36. bytes, err := c.CommonGet("/ISAPI/Smart/regionEntrance/1/capabilities")
  37. if err != nil {
  38. logrus.Error("请求出错", err)
  39. return
  40. }
  41. err = xml.Unmarshal(bytes, &resp)
  42. return
  43. }
  44. func (c *Client) GetSizeRe() (resp SmartCalibrationList, err error) {
  45. bytes, err := c.CommonGet("/ISAPI/Smart/channels/1/calibrations/regionEntrance")
  46. if err != nil {
  47. logrus.Error("请求出错", err)
  48. return
  49. }
  50. err = xml.Unmarshal(bytes, &resp)
  51. return
  52. }
  53. func (c *Client) PutSizeRe(data []byte) (resp ResponseStatus, err error) {
  54. var info SmartCalibrationList
  55. err = json.Unmarshal(data, &info)
  56. if err != nil {
  57. logrus.Error(err)
  58. return ResponseStatus{}, err
  59. }
  60. marshal, err := xml.Marshal(info)
  61. if err != nil {
  62. logrus.Error(err)
  63. return ResponseStatus{}, err
  64. }
  65. respData, err := c.CommonPut(marshal, "/ISAPI/Smart/channels/1/calibrations/regionEntrance")
  66. if err != nil {
  67. logrus.Error(err)
  68. return ResponseStatus{}, err
  69. }
  70. err = xml.Unmarshal(respData, &resp)
  71. if err != nil {
  72. logrus.Error(err)
  73. return ResponseStatus{}, err
  74. }
  75. return
  76. }
  77. // GetRegionEntrance 获取区域侦测参数
  78. func (c *Client) GetRegionEntrance() (resp RegionEntranceParam, err error) {
  79. bytes, err := c.CommonGet("/ISAPI/Smart/regionEntrance/1")
  80. if err != nil {
  81. logrus.Error("请求出错", err)
  82. return
  83. }
  84. err = xml.Unmarshal(bytes, &resp)
  85. return
  86. }
  87. // PutRegionEntrance 配置区域侦测参数
  88. func (c *Client) PutRegionEntrance(data []byte) (resp ResponseStatus, err error) {
  89. var info RegionEntranceParam
  90. err = json.Unmarshal(data, &info)
  91. if err != nil {
  92. logrus.Error(err)
  93. return ResponseStatus{}, err
  94. }
  95. marshal, err := xml.Marshal(info)
  96. if err != nil {
  97. logrus.Error(err)
  98. return ResponseStatus{}, err
  99. }
  100. respData, err := c.CommonPut(marshal, "/ISAPI/Smart/regionEntrance/1")
  101. if err != nil {
  102. logrus.Error(err)
  103. return ResponseStatus{}, err
  104. }
  105. err = xml.Unmarshal(respData, &resp)
  106. if err != nil {
  107. logrus.Error(err)
  108. return ResponseStatus{}, err
  109. }
  110. return
  111. }
  112. type RegionEntranceCap struct {
  113. ID string `xml:"id"`
  114. Enabled struct {
  115. Text string `xml:",chardata" json:"value"`
  116. Opt string `xml:"opt,attr" json:"opt"`
  117. } `xml:"enabled" json:"enabled"`
  118. NormalizedScreenSize struct {
  119. NormalizedScreenWidth string `xml:"normalizedScreenWidth" json:"normalizedScreenWidth"`
  120. NormalizedScreenHeight string `xml:"normalizedScreenHeight" json:"normalizedScreenHeight"`
  121. } `xml:"normalizedScreenSize" json:"normalizedScreenSize"`
  122. RegionEntranceRegionList struct {
  123. Size string `xml:"size,attr" json:"size"`
  124. RegionEntranceRegion []struct {
  125. ID string `xml:"id" json:"id"`
  126. SensitivityLevel struct {
  127. Text string `xml:",chardata" json:"value"`
  128. Min string `xml:"min,attr" json:"min"`
  129. Max string `xml:"max,attr" json:"max"`
  130. } `xml:"sensitivityLevel" json:"sensitivityLevel"`
  131. RegionCoordinatesList struct {
  132. RegionCoordinates []struct {
  133. PositionX string `xml:"positionX" json:"positionX"`
  134. PositionY string `xml:"positionY" json:"positionY"`
  135. } `xml:"RegionCoordinates" json:"RegionCoordinates"`
  136. } `xml:"RegionCoordinatesList" json:"RegionCoordinatesList"`
  137. MinRegionCoordinatesNum string `xml:"minRegionCoordinatesNum" json:"minRegionCoordinatesNum"`
  138. MaxRegionCoordinatesNum string `xml:"maxRegionCoordinatesNum" json:"maxRegionCoordinatesNum"`
  139. DetectionTarget struct {
  140. Text string `xml:",chardata" json:"value"`
  141. Opt string `xml:"opt,attr" json:"opt"`
  142. } `xml:"detectionTarget" json:"detectionTarget"`
  143. AlarmConfidence struct {
  144. Text string `xml:",chardata" json:"value"`
  145. Opt string `xml:"opt,attr" json:"opt"`
  146. Def string `xml:"def,attr" json:"def"`
  147. } `xml:"alarmConfidence" json:"alarmConfidence"`
  148. } `xml:"RegionEntranceRegion" json:"RegionEntranceRegion"`
  149. } `xml:"RegionEntranceRegionList" json:"RegionEntranceRegionList"`
  150. IsSupportMultiScene string `xml:"isSupportMultiScene" json:"isSupportMultiScene"`
  151. IsSupportHumanMisinfoFilter string `xml:"isSupportHumanMisinfoFilter" json:"isSupportHumanMisinfoFilter"`
  152. IsSupportVehicleMisinfoFilter string `xml:"isSupportVehicleMisinfoFilter" json:"isSupportVehicleMisinfoFilter"`
  153. IsSupportTargetMultiSelect string `xml:"isSupportTargetMultiSelect" json:"isSupportTargetMultiSelect"`
  154. IsSupportAllDayUpload string `xml:"isSupportAllDayUpload" json:"isSupportAllDayUpload"`
  155. }