修复设计模式下控件连接设备的问题:添加DesignMode条件检查,仅在非设计模式下初始化设备管理器并连接设备
This commit is contained in:
@@ -19,6 +19,33 @@ namespace JoyD.Windows.CS.Toprie
|
||||
// 是否正在接收图像
|
||||
private bool _isReceivingImage = false;
|
||||
|
||||
// 项目路径,用于数据文件的存取
|
||||
private string _projectPath = "";
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置项目路径,控件所需的数据文件将在此目录中进行存取
|
||||
/// </summary>
|
||||
[Category("配置")]
|
||||
[Description("设置项目路径,控件所需的数据文件将在此目录中进行存取")]
|
||||
[DefaultValue("")]
|
||||
public string ProjectPath
|
||||
{
|
||||
get { return _projectPath; }
|
||||
set
|
||||
{
|
||||
// 只有当值发生变化时才进行同步
|
||||
if (_projectPath != value)
|
||||
{
|
||||
_projectPath = value;
|
||||
// 如果DeviceManager已经初始化,则同步更新其ProjectPath属性
|
||||
if (_deviceManager != null)
|
||||
{
|
||||
_deviceManager.ProjectPath = _projectPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 显示错误的定时器
|
||||
private System.Windows.Forms.Timer _errorDisplayTimer;
|
||||
|
||||
@@ -39,6 +66,12 @@ namespace JoyD.Windows.CS.Toprie
|
||||
try
|
||||
{
|
||||
string logFile = Path.Combine(Application.StartupPath, "log.txt");
|
||||
// 确保日志文件目录存在
|
||||
string logDir = Path.GetDirectoryName(logFile);
|
||||
if (!Directory.Exists(logDir))
|
||||
{
|
||||
Directory.CreateDirectory(logDir);
|
||||
}
|
||||
if (File.Exists(logFile))
|
||||
{
|
||||
File.WriteAllText(logFile, string.Empty);
|
||||
@@ -78,28 +111,28 @@ namespace JoyD.Windows.CS.Toprie
|
||||
/// </summary>
|
||||
private void InitializeDeviceManager()
|
||||
{
|
||||
_deviceManager = new DeviceManager
|
||||
// 只有在非设计模式下才初始化设备管理器
|
||||
if (!DesignMode)
|
||||
{
|
||||
AutoReconnectEnabled = true,
|
||||
ReconnectInterval = 2000 // 2秒
|
||||
};
|
||||
_deviceManager = new DeviceManager
|
||||
{
|
||||
AutoReconnectEnabled = true,
|
||||
ReconnectInterval = 2000, // 2秒
|
||||
ProjectPath = !string.IsNullOrEmpty(ProjectPath) ? ProjectPath : Application.StartupPath
|
||||
};
|
||||
|
||||
// 确保DeviceManager的设计模式状态与控件一致
|
||||
DeviceManager.IsDesignMode = DesignMode;
|
||||
// 设置静态属性
|
||||
DeviceManager.MaxReconnectAttempts = 5;
|
||||
|
||||
// 设置静态属性
|
||||
DeviceManager.MaxReconnectAttempts = 5;
|
||||
// 注册图像接收事件
|
||||
_deviceManager.ImageReceived += DeviceManager_ImageReceived;
|
||||
|
||||
// 注册图像接收事件
|
||||
_deviceManager.ImageReceived += DeviceManager_ImageReceived;
|
||||
// 注册连接状态变更事件
|
||||
_deviceManager.ConnectionStatusChanged += DeviceManager_ConnectionStatusChanged;
|
||||
|
||||
// 注册连接状态变更事件
|
||||
_deviceManager.ConnectionStatusChanged += DeviceManager_ConnectionStatusChanged;
|
||||
|
||||
// 注册连接异常事件
|
||||
_deviceManager.ConnectionException += DeviceManager_ConnectionException;
|
||||
|
||||
|
||||
// 注册连接异常事件
|
||||
_deviceManager.ConnectionException += DeviceManager_ConnectionException;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -152,7 +152,10 @@ namespace JoyD.Windows.CS.Toprie
|
||||
{
|
||||
// 设计模式标志,用于在设计模式下跳过实际的设备连接和初始化
|
||||
public static bool IsDesignMode { get; set; } = false;
|
||||
|
||||
|
||||
// 项目路径,用于数据文件的存取
|
||||
private string _projectPath = "";
|
||||
|
||||
// A8SDK实例
|
||||
private A8SDK _a8Sdk;
|
||||
// 设备ID列表
|
||||
@@ -243,6 +246,16 @@ namespace JoyD.Windows.CS.Toprie
|
||||
private Thread _imageReconnectThread;
|
||||
private Stream _imageStream;
|
||||
|
||||
/// <summary>
|
||||
/// 项目路径属性
|
||||
/// 用于设置控件存取数据文件的目录
|
||||
/// </summary>
|
||||
public string ProjectPath
|
||||
{
|
||||
get { return _projectPath; }
|
||||
set { _projectPath = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查网络是否可用
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user