package hk_takephoto import ( "syscall" "time" "github.com/vishvananda/netlink" "hnyfkj.com.cn/rtu/linux/baseapp" ) // 相机模块的名称 const MODULE_NAME = "TakePhoto" func SetupIface(iface, cidr string) error { link, err := netlink.LinkByName(iface) if err != nil { return err } if err = netlink.LinkSetUp(link); err != nil { return err } addr, err := netlink.ParseAddr(cidr) if err != nil { return err } if err = netlink.AddrAdd(link, addr); err != nil && err != syscall.EEXIST { return err } return nil } // 相机模块初始化, 设置必要的运行环境参数, 只有成功才能进行后续的拍照操作 func ModuleInit() bool { myUsbfsMemSize := 200 // 单位: 兆字节 bSetOK := false for range 5 { if baseapp.IsExit1() { return false } if getSysUsbfsMemCurrentSize() >= myUsbfsMemSize { bSetOK = true break // 已满足启动拍照程序的条件, 退出循环 } ret := setSysUsbfsMemSize(myUsbfsMemSize) if ret == -1 { time.Sleep(1 * time.Second) } } if !bSetOK { baseapp.Logger.Errorf("[%s] 无法将系统\"usbfs\"的内存大小设置为: %dMB, 相机模块初始化失败!!", MODULE_NAME, myUsbfsMemSize) return false } if err := SetupIface("eth1", "192.168.100.123/24"); err != nil { baseapp.Logger.Errorf( "[%s] 设置网口 %s 的 IP 地址失败: %v", MODULE_NAME, "eth1", err, ) return false } return true }