0%

参考

Docker学习:部署本地私有镜像仓库registry (高级应用)_docker registry部署-CSDN博客

三分钟Docker-推送本地镜像到仓库-腾讯云开发者社区-腾讯云 (tencent.com)

Docker registry 、网络类型、跨主机访问 –3_docker it does not belong to any of this network-CSDN博客

docker registry:设置私有的镜像缓存仓库 | shikanon

私有docker registry的ssl访问实现-腾讯云开发者社区-腾讯云 (tencent.com)

KubeEdge中的数据结构设计

Device

字段 类型 说明
ID string 设备唯一编码
Name string 设备名称
Description string 设别描述
State string 设备状态
LastOnline DateTime 最后在线时间
Attributes Map<string,MsgAttr> 设备属性(上报属性)
Twin Map<string,MsgTwin> 设备孪生属性(可控制属性)

MsgAttr

字段 类型 说明
Value string 属性名称
Optional bool 是否可为空
Metadata TypeMetadata 属性类型元数据

MsgTwin

字段 类型 说明
Expected TwinValue 期望值
Actual TwinValue 实际值
Optional bool 是否可为空
Metadata TypeMetadata 属性类型元数据
ExpectedVersion TwinVersion 期望值版本
ActualVersion TwinVersion 实际值版本

数据库表设计

Device

字段 类型 说明
ID 设备实例唯一ID
Name 设备实例名称
Description 设备描述
State 设备状态
LastOnline 最后在线时间

DeviceAttr

字段 类型 说明
ID 属性实例唯一ID
DeviceId 设备实例唯一ID
Name 设备名称
Description 设备描述
Value 设备属性值
Optional bool 是否可空
AttrType 属性类型
Metadata 属性元数据

DeviceTwin

字段 类型 说明
ID
DeviceID
Name
Description
Expected
Actual
ExpectedMeta
ActualMeta
ExpectedVersion
ActualVersion
Optional
AttrType
Metadata

DEVICE

字段 类型 说明
ID int 自增ID
SN varchar(20) 设备唯一编码
NAME varchar(20) 设备名称
MARKED BOOL 设备是否标记
IP varchar(15) 设备IP地址
LOCATION varchar(200) 设备安装位置

DEVICE_ATTR

字段 类型 说明
ID int 自增ID
KEY varchar(20) 属性名
CHANNEL
VALUE int 属性值
DEVICE_ID int 属性所属设备ID
SCALE int 缩放倍率,当数值有小数时可用倍率缩放
UNIT varchar(20) 数值单位

DEVICE_STATE

字段 类型 说明
ID int 自增ID
DEVICE_ID int 属性所属设备ID
PORT int 设备接收端口
VALUE int 数值
UNIT varchar(20) 数值单位

DEVICE_LINKAGE

字段 类型 说明
ID int 自增ID
CAT
DEVICE_ID int 属性所属设备ID
PORT int 设备接收端口
TARGET 联动目标
TRIGGER 联动触发器
TRIGGER_ALARM 联动触发告警
ACTION 联动动作
PARAM 参数

DEVICE_ALARM

字段 类型 说明
ID 自增ID
APP_ID 固件ID
CAT
REPORTER
PORT 端口
CODE 编码
MSG 消息
ALARM_TYPE 告警类型
SEVERITY
STATUS 状态

LibVLCSharp版本

1
2
3
<PackageReference Include="LibVLCSharp" version="3.6.6" />
<PackageReference Include="LibVLCSharp.WPF" version="3.6.6" />
<PackageReference Include="VideoLAN.LibVLC.Windows" version="3.0.16" />

现象播放RTSP视频流时在VideoView播放正常,但会弹出一个窗体同时播放,窗体名VLC (Direct3D11 output)

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public partial class MainWindow : Window
{
private LibVLC m_libVLC;

public MainWindow()
{
InitializeComponent();

this.Loaded += MainWindow_Loaded;

m_libVLC = new LibVLC();
}

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
VideoView.MediaPlayer = new LibVLCSharp.Shared.MediaPlayer(m_libVLC);
VideoView.MediaPlayer.Play(new Media(m_libVLC, new Uri(uri)));
}
}

故障原因

打断点调试发现,Loaded时间执行两次,第一次执行在VideoView播放正常,第二次执行弹出VLC (Direct3D11 output)

解决方法: 控制只初始化和播放一次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public partial class MainWindow : Window
{
private LibVLC m_libVLC;

public MainWindow()
{
InitializeComponent();

this.Loaded += MainWindow_Loaded;

m_libVLC = new LibVLC();
}

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
VideoView.MediaPlayer ??= new LibVLCSharp.Shared.MediaPlayer(m_libVLC)
{
Media = new Media(m_libVLC, new Uri(uri))
};

if (!VideoView.MediaPlayer.IsPlaying)
VideoView.MediaPlayer.Play();
}
}