|
|
@@ -6,6 +6,7 @@ import (
|
|
|
"net"
|
|
|
"os"
|
|
|
"os/exec"
|
|
|
+ "strings"
|
|
|
"syscall"
|
|
|
"time"
|
|
|
|
|
|
@@ -30,6 +31,8 @@ type SImgMark struct {
|
|
|
CamModelName string // 相机型号名
|
|
|
CamSerialNum string // 相机序列号
|
|
|
ImgExposureTime float64 // 曝光时间值
|
|
|
+ ImgWidth uint // 图像的宽度
|
|
|
+ ImgHeight uint // 图像的高度
|
|
|
}
|
|
|
|
|
|
// 配置连接网口相机的网卡ip
|
|
|
@@ -75,6 +78,18 @@ func PowerOnGigeCamera(on bool) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+// 取网口相机电源的开关状态
|
|
|
+func GetGigeCameraPowerCtrl() (bool, error) {
|
|
|
+ data, err := os.ReadFile("/sys/class/gpio/gpio22/value")
|
|
|
+ if err != nil {
|
|
|
+ return false, err
|
|
|
+ }
|
|
|
+
|
|
|
+ value := strings.TrimSpace(string(data))
|
|
|
+
|
|
|
+ return value == "1", nil
|
|
|
+}
|
|
|
+
|
|
|
func PingOnce(host string, timeoutSec int) error {
|
|
|
cmd := exec.Command("ping", "-c", "1", "-W", fmt.Sprint(timeoutSec), host)
|
|
|
return cmd.Run()
|
|
|
@@ -199,6 +214,8 @@ func TakePhoto(imgType int, saveImgPath string, timeout int) (SImgMark, error) {
|
|
|
CamModelName: hkMark.CamModelName,
|
|
|
CamSerialNum: hkMark.CamSerialNum,
|
|
|
ImgExposureTime: hkMark.ImgExposureTime,
|
|
|
+ ImgWidth: hkMark.ImgWidth,
|
|
|
+ ImgHeight: hkMark.ImgHeight,
|
|
|
}, nil
|
|
|
}
|
|
|
errs = append(errs, fmt.Errorf("HK: %w", err))
|
|
|
@@ -211,6 +228,8 @@ func TakePhoto(imgType int, saveImgPath string, timeout int) (SImgMark, error) {
|
|
|
CamModelName: dhMark.CamModelName,
|
|
|
CamSerialNum: dhMark.CamSerialNum,
|
|
|
ImgExposureTime: dhMark.ImgExposureTime,
|
|
|
+ ImgWidth: dhMark.ImgWidth,
|
|
|
+ ImgHeight: dhMark.ImgHeight,
|
|
|
}, nil
|
|
|
}
|
|
|
errs = append(errs, fmt.Errorf("DH: %w", err))
|