OPCAE扫盲

news2024/11/20 12:35:57

目录

1 基本概念

1.1 服务器/客户端

1.2 区域

1.3 报警/条件

1.4 事件

2 条件概念

2.1 子条件

2.2 OPCConditions属性

2.3 Condition质量

2.4 OPCSubConditions属性

2.5 Condition定义

2.6 严重性

2.7 Condition启用/禁用

2.8 Area启用/禁用

2.9 Condition状态集

3 事件概念

3.1 事件通知

3.2 简单事件通知OPCSimpleEventNotifications 属性

3.3 跟踪事件通知OPCTrackingEventNotifications属性

3.4 条件事件通知OPCConditionEventNotifications属性

3.5 事件类别

3.6 订阅事件通知

3.7 OPCEventSubscriptions属性

3.8 条件状态同步

3.9 错误处理


1 基本概念

本文简单介绍OPC AE规范的基本概念。 OPC AE规范描述了OPC事件服务器应该实现的对象和接口,实现在多个OPC客户端间共享事件和警报条件。OPC官方说明文档

1.1 服务器/客户端

OPC AE有几种类型的OPC报警和事件服务器。至少支持:

     •组件能够检测到警报/事件,并将其报告给一个或多个客户端。

     •组件可以从多个来源收集警报和事件信息,并将其报告给一个或多个客户端。

OPC报警和事件服务器的客户端通常是订阅和显示的组件,处理、收集记录报警和事件信息。OPC报警和事件服务器的客户端可能包括(但不限于):

     •操作员站

     •事件/报警记录组件

     •事件/警报管理子系统

下图为OPC AE服务器/客户端的典型结构图。Alarm/Event management Server既是OPC AE Server,也是OPC AE Client。它从Alarm/Event数据源Device Alarm Info和SPC Module采集事件/报警,并将其报告给OPC AE客户端Opeator Station1、Event Logger。

http://api1.wangxinzhihui.com:88/upload/b6bd3ac9-2374-11ee/fccbcba7cbf6a86b3761.png

                   

实现IOPCEventServer接口的任何COM对象都是OPC事件服务器。IOPCEventServer接口提供了一些方法,使OPC客户端能够:

     •确定OPC事件服务器支持的事件类型。

     •输入指定事件的订阅,以便OPC客户端可以接收其事件。

     •指定在OPC事件服务器关闭时要调用的客户端回调接口。

1.2 区域

服务器中可用的事件和条件被组织在一个或多个内工艺区域。区域是工厂设备的分组,通常根据操作员责任来划分。如果区域可用,客户端可以创建一个OPCEventAreaBrowser对象来浏览过程区域组织。客户端可以通过指定进程区域来筛选事件订阅,限制服务器发送的事件通知。

1.3 报警/条件

警报是一种异常条件。条件是OPC事件服务器的一些过程状态集合。例如,标签FIC101可能具有“LevelAlarm”或与之相关的“偏差警报”条件。条件可以被定义(可选地)为包括多个子条件。例如LevelAlarm条件可能包括“HighAlarm”、“HighHighAlarm”和“LowAlarm”,以及“LowLowAlarm”子条件1。

在OPC事件服务器中,条件由OPCCondition2类型的对象表示。每个OPCCondition与一个OPCSource相关联,如下图所示。OPCSource可以是过程标签(例如FIC101)或可能的设备或子系统。如果OPC事件服务器是OPC DA服务器,OPCSource也可能是OPCItem。

条件可以是单一状态,也可以是多状态。多状态条件是指其状态包含多个感兴趣的“范围”或子状态。例如,“LevelAlarm”条件可能具有多个子状态,包括“HighAlarm”和“HighHighAlarm”。

表示每个子状态,由OPCSubCondition类型的对象(该对象也不是COM对象)执行。每个OPCSubCondition与一个OPC条件相关联,如下图所示。多状态条件的子状态必须互斥,例如标签不能同时处于HighAlarm和同时发出HighHighAlarm。

子条件允许客户更容易地处理密切相关的事件通知,使得客户端更容易检测并正确显示报警。例如:FIC101 从“HighAlarm” 切换到 “HighHighAlarm” ,这些子状态被建模为相同条件(“LevelAlarm”)。如果建模为独立的条件,则很难确定这些条件如何排斥。

单个状态条件只有一个子状态感,因此只有一个子条件。比如“硬件故障”,其中硬件设备要么处于故障状态,要么不处于故障状态。

 

http://api1.wangxinzhihui.com:88/upload/b6bd3ac9-2374-11ee/5625c79951eb8818b8db.png

1.4 事件

事件是可检测的发生的事情。事件可能与条件相关,也可能不相关。例如,转换到LevelAlarm状态和恢复正常是与条件相关联的事件。而操作员操作、系统配置更改和系统错误则是与条件无关的事件。

事件在OPC模型中没有直接表示。通过Event Notification告知事件发生,由OPCEventNotification3类实现。

   存在以下三种事件类型:

 1)条件事件:与OPCConditions相关的事件,表示进入或退出由OPCConditions和OPCSubConditions表示的状态转换。例如:FIC101转换为LevelAlarm状态和HighAlarm子状态。

 2)跟踪事件:不与条件相关联的事件,表示发生的事件涉及OPC客户端与OPC事件服务器内的“目标”对象的交互。例如:控制更改,操作员(OPC客户端)更改标签FIC101的设定点(“目标”)。

 3)简单事件:是除上述事件之外的所有事件。例如:由OPC事件服务器表示的系统/设备内的组件故障。

2 条件概念

OPC AE规范描述了OPC事件服务器应该实现的对象和接口,实现在多个OPC客户端间共享事件和警报条件。

警报是一种异常条件。条件是OPC事件服务器的一些过程状态集合。例如,标签FIC101可能具有“LevelAlarm”或与之相关的“偏差警报”条件。条件可以被定义(可选地)为包括多个子条件。例如LevelAlarm条件可能包括“HighAlarm”、“HighHighAlarm”和“LowAlarm”,以及“LowLowAlarm”子条件1。

在OPC事件服务器中,条件由OPCCondition2类型的对象表示。每个OPCCondition与一个OPCSource相关联,如下图所示。OPCSource可以是过程标签(例如FIC101)或可能的设备或子系统。如果OPC事件服务器是OPC DA服务器,OPCSource也可能是OPCItem。

2.1 子条件

条件可以是单一状态,也可以是多状态。多状态条件是指其状态包含多个感兴趣的“范围”或子状态。例如,“LevelAlarm”条件可能具有多个子状态,包括“HighAlarm”和“HighHighAlarm”。

表示每个子状态,由OPCSubCondition类型的对象(该对象也不是COM对象)执行。每个OPCSubCondition与一个OPC条件相关联,如下图所示。多状态条件的子状态必须互斥,例如标签不能同时处于HighAlarm和同时发出HighHighAlarm。

子条件允许客户更容易地处理密切相关的事件通知,使得客户端更容易检测并正确显示报警。例如:FIC101 从“HighAlarm” 切换到 “HighHighAlarm” ,这些子状态被建模为相同条件(“LevelAlarm”)。如果建模为独立的条件,则很难确定这些条件如何排斥。

单个状态条件只有一个子状态感,因此只有一个子条件。比如“硬件故障”,其中硬件设备要么处于故障状态,要么不处于故障状态。

                   

http://api1.wangxinzhihui.com:88/upload/dd4ef554-244e-11ee/316976e7d67e97c601dc.png

2.2 OPCConditions属性

每个OPCCondition都具有以下属性:

Name:条件名称,例如“LevelAlarm”。条件名称在事件服务器中必须是唯一的。

       Active:关联的对象当前处于由条件表示的状态。

ActiveSubCondition:如果处于活动状态,这是当前处于活动状态的SubCondition的名称。对于单状态条件,该值将是条件名称。例如:如果LevelAlarm条件处于活动状态,则ActiveSubCondition值可能为“高报警”。

Enabled:条件激活/禁止。

Quality:条件所基于的数据值的当前质量。

Acked:如果条件激活,则表示条件已得到确认。

LastAckTime: 最近确认的时间。

SubCondiLastActive:最近转换到当前活动子条件的时间。这是确认时必须指定的时间值

CondLastActive:最近转换到此状态的时间。

LastInactive:此条件下最近一次转换的时间。

AcknowledgerID:上次确认此条件的客户端的ID。

Comment:上次确认此条件时,客户端传入的备注。

2.3 Condition质量

条件(Condition)通常基于一个或多个具有“质量”属性的OPCItem。条件也有相关的质量。如果过程值为“不确定”,则“LevelAlarm”情况也令人怀疑。与OPCItems一样,条件将具有强制的“质量”属性。当质量发生变化时,它将生成一个事件通知。

由服务器决定如何获得“质量”的值。服务器也可能定义一种特殊的EventCategory,用于报告值的不良质量属性。

质量属性的值符合OPC DA中的OPC质量标志定义规范。

2.4 OPCSubConditions属性

每个OPCSubCondition都具有以下属性:

Name:子条件的名称。例如“HighAlarm”表示“液位报警”。在单一状态报警的情况下,子条件名称为与关联的条件名称相同。子条件的名称必须为在其相关条件下是唯一的。

Definition:由子条件表示的子状态的表达式。

Severity:此子条件生成的任何事件的严重性。请注意,同一条件的不同子条件可能具有不同的严重程度。

Description:子条件生成的事件通知中的文本字符串。

2.5 Condition定义

条件定义是特定于服务器的。例如:

1.一个或多个OPCItem上的布尔表达式。例:FIC101.PV>100和FIC101.PV<150。这是LevelAlarm条件的HighAlarm子条件的定义。

2.引用由底层系统或设备定义的条件的文本字符串,例如:“设备故障”。

3.与OPC事件服务器相关联的条件的文本字符串。例如:

•在指定时间关闭

•服务器过载

•底层系统/设备故障

•等等。

2.6 严重性

严重程度值表示子条件的紧急程度。这也通常被称为“优先级”,尤其是与过程警报有关的优先级。值的范围从1到1000,其中1是严重性最低,1000为最高。通常,严重性为1表示信息性事件,而1000的值表示灾难性事件,可能导致严重的经济损失或生命损失。

预计很少有服务器实现能够支持1000个不同的严重性级别。因此服务器开发人员负责将其严重性级别分布在1–1000范围内,客户端可以采用线性分布的方式。例如:

http://api1.wangxinzhihui.com:88/upload/dd4ef554-244e-11ee/444af4dd11b64dd99ce3.png

 

下图为底层设备严重性到OPC严重性范围的映射表。

 

http://api1.wangxinzhihui.com:88/upload/dd4ef554-244e-11ee/6f6f3924b679d696ba84.png

有些服务器可能不支持任何灾难性事件,因此它们可能会选择映射它们的所有严重程度都划分为1–1000范围的一个子集(例如,1–666)。

2.7 Condition启用/禁用

客户端可以启用和禁用条件。

•服务器可以选择在被禁用时继续测试某个条件。但是,无法生成事件通知,也无法确认。

•禁用状态下是否定义以下条件属性取决于服务器:

Active、ActiveSubCondition、Quality、Acked、LastAckTime、SubCondLastActive、CondLastActive、LastInactive、AcknowledgerID和Comment。

•在刷新时,将不会为禁用条件生成事件通知。

•启用时,与“激活条件”事件通知关联的时间属性为启用后首次发现该条件的时间,或该条件变为活动状态的时间。

2.8 Area启用/禁用

客户端可以启用和禁用区域。

如果源的条件状态设置为“已启用”,并且的层次结构中的所有区域都已启用,则源启用。

如果源的条件状态设置为禁用或其层次结构中的任何区域禁用,则该源将被禁用。

举例说明,如下图所示。

http://api1.wangxinzhihui.com:88/upload/dd4ef554-244e-11ee/70ac1ef4029f884f76c5.png

 

图中以“S”命名的对象为源,以命名的对象为区域。高亮显示的对象处于禁用状态(即,A2、A11、S3和S5被禁用)。假设客户端正在订阅模型中所有区域和源的事件。

   1)尽管源“S2”为启用状态,但是A11不是。因此,客户端不能接收到这个条件的事件。

   2)源“S4”为启用状态,且包含的区域(A12,A1以及A0)君均为启用,所以,客户端没可以接收到这个条件的事件。

   3)源“S5”为禁用状态,尽管包含的区域都已启用,客户端不能接收到这个条件的事件。

2.9 Condition状态集

下图为OPC Condition的示例状态机。

http://api1.wangxinzhihui.com:88/upload/dd4ef554-244e-11ee/a6d1917d3c198dd14308.png

 

1)每个状态转换都是一个事件。在每次状态转换时都会发送事件通知消息。

2)每个与条件相关的事件通知,需要确认的包括:条件名称、条件最近进入活动状态或转换为新的子条件的时间,以及事件通知的唯一标识Cookie。信息由OPC客户端在确认条件时指定,OPC事件服务器识别正在发生的特定事件(状态转换)使用此信息。。如果接收到具有过期的SubCondLastActive属性的确认(这可能是由于系统中的延迟造成的),条件状态不会得到确认。

3)请注意,确认会影响条件状态,如果条件当前处于活动状态或它当前处于非活动状态,并且最近的活动状态未被确认。如果不活动,未确认条件再次变为活动状态,所有后续确认都将被验证,针对新激活的条件状态属性。服务器可以选择使用Cookie属性的事件通知,以记录“旧”条件激活的确认,但此类“晚”确认对该状况的当前状态没有影响。

4)条件激活状态的确认可能来自OPC客户端,也可能是由于OPC事件服务器内部的逻辑。例如,对相关OPC条件的确认,可能导致该OPC条件被确认,或者OPC条件可能被设置为当条件变为不活动时自动确认。

5)对于不跟踪或不需要确认的情况,状态转换更简单——只是在启用-非活动、启用-活动和禁用状态之间切换。

6)建议事件服务器生成用于启用和禁用操作的跟踪事件,而不是为每个被启用或禁用的条件实例生成事件通知。如果不符合这个建议,则按区域启用和禁用可能会导致大量事件通知。

3 事件概念

OPC AE规范描述了OPC事件服务器应该实现的对象和接口,实现在多个OPC客户端间共享事件和警报条件。

事件是一种可检测的对OPC事件服务器、设备、OPC客户端具有重要意义的事情。事件可能与条件相关,也可能不相关。例如,转换到LevelAlarm状态和恢复正常是与条件相关联的事件。而操作员操作、系统配置更改和系统错误则是与条件无关的事件。

事件在OPC模型中没有直接表示。通过Event Notification告知事件发生,由OPCEventNotification3类实现。

   存在以下三种事件类型:

1)条件事件:与OPCConditions相关的事件,表示进入或退出由OPCConditions和OPCSubConditions表示的状态转换。例如:FIC101转换为LevelAlarm状态和HighAlarm子状态。

2)跟踪事件:不与条件相关联的事件,表示发生的事件涉及OPC客户端与OPC事件服务器内的“目标”对象的交互。例如:控制更改,操作员(OPC客户端)更改标签FIC101的设定点(“目标”)。

3)简单事件:是除上述事件之外的所有事件。例如:由OPC事件服务器表示的系统/设备内的组件故障。

3.1 事件通知

OPCEventNotifications使用OPC客户端在事件订阅中提供的连接点回调接口发送到订阅客户端。OPCEventNotifications的层级结构如下图所示。

http://api1.wangxinzhihui.com:88/upload/61cbe100-2509-11ee/3842dcff40f94bc8b771.png

                   

3.2 简单事件通知OPCSimpleEventNotifications 属性

OPCSimpleEventNotifications具有以下标准属性。请注意OPCConditionEventNotifications和OPCTrackingEventNotifications也包括这些标准属性。

Source:生成事件通知的对象的引用。例如:当标签FIC101进入LevelAlarm条件(与条件相关的事件),Source就是标签名FIC101;它也可以是跟踪事件,如操作员更改FIC101的设定点值,Source就是标签名FIC101;对于简单事件,如系统错误,Source值可能为“system”。

Time:事件发生的时间。

Type:条件事件、跟踪事件、简单事件。

EventCategory:事件所属的类别。

Severity:事件的紧迫性。可能的取值范围为1-1000。

Messgage:描述事件的消息文本。对于与条件相关的事件,一般包括活动子条件的描述属性。

3.3 跟踪事件通知OPCTrackingEventNotifications属性

OPCTrackingEventNotifications除了具备OPCSimpleEventNotifications的属性,还具备以下属性:

ActorID: 发起导致跟踪相关事件的操作的OPC客户端的标识符。例如,如果跟踪相关事件是FIC101的设置点的更改,则ActorID可能是对发起更改的客户端应用程序的引用,或者可能是指定更改的操作员的用户ID。

3.4 条件事件通知OPCConditionEventNotifications属性

OPCConditionEventNotifications除了具备OPCSimpleEventNotifications的属性,还具备以下属性:

ConditionName:关联OPCCondition名称

SubConditionName:当前激活的OPCSubCondition的名称

NewState:表示条件的新状态。表示条件的Enabled、Active和Acked属性新值

AckRequired:是否需要确认的标识符。许多事件与条件相关的通知通常不需要确认,例如:接收到确认或转换到非活动状态。此外可以配置一些条件,对于转换到该状态,或子条件之间的转换(例如转换为LevelAlarm或转换从HighAlarm到HighHighAlarm)不需要确认。在这种情况下,服务器自动将条件置于已确认状态,因此将永远不会收到确认。

ActiveTime:转换到事件通知的相关条件或子条件的时间。

Cookie:服务器定义的与事件通知关联的cookie。客户在确认时使用此值。该值对客户端是不透明的。

ActorID:确认条件的OPC客户端的标识符。

3.5 事件类别

EventCategories定义OPC事件服务器支持的事件分组。例如:事件类别可能包括“过程事件”、“系统事件”或“批处理事件”。事件类别可以为所有事件类型定义,即简单、跟踪和条件相关。特定事件类别可以仅包括一种类型的事件。给定来源(例如“System”或“FIC101”)可以为多个事件类别生成事件。事件类别的名称必须为在事件服务器中是唯一的。

事件类别的名称包含在每个事件通知中。事件订阅可以是根据事件类别筛选。

3.6 订阅事件通知

为了接收事件通知,OPC客户端必须订阅这些通知。订阅通过后,创建一个OPCEventSubscription对象与OPC事件服务器进行交互。OPC客户端可以有一个或多个OPCEventSubscriptions对象与单个OPC事件服务器进行交互。

OPCEventSubscriptions是“可连接对象”,因为它们实现DCOM连接点接口。这是用于向OPC客户端发送事件通知的机制。

OPCEventSubscriptions提供了一个接口,允许OPC客户端指定筛选器。此外它们实现了标准的DCOM连接点接口,将事件发生通知OPC客户端。

3.7 OPCEventSubscriptions属性

OPCEventSubscription具备如下属性:

Filter:用于选择客户端感兴趣事件的结构。空过滤器会导致OPC客户端接收所有事件通知。

OPCEventSubscription只有一个筛选器。

可以使用以下标准选择事件:

•事件类型:即简单、条件或跟踪。

•事件类别

•最低严重性,即严重性大于或等于指定严重性的所有事件。

•最高严重性,即严重性小于或等于指定严重性的所有事件。

•过程区域

•事件源

单个标准的值列表在逻辑上被“或”运算在一起(例如:如果指定两个事件类别,将接收两个类别的事件通知)。如果指定了多个标准,它们将被逻辑地“与”在一起,即仅那些满足所有标准的事件将被选择。例如:指定最低优先级和最高优先级,将导致事件的选择优先级介于两个值之间。

例如:

Type = CONDITION

Category = PROCESS

LowSeverity = 600

Area = AREA1, AREA2

   以上表示选择区域AREA1、AREA2内具有高紧急性(大于或等于600)的“过程”类别的条件关联事件。

       

3.8 条件状态同步

OPC客户端通过向每个活动的OPCEventSubscription对象请求“刷新”,获得所有处于活动或处于非活动但未确认的条件状态。服务器通过事件回调机制向客户端发送适当的事件。当调用客户端的回调时,服务器将指示调用是用于刷新还是原始通知,刷新和原始事件通知将不会混合在同一个回调调用中。

此设计假设客户端只需要条件的当前状态信息,因此仅将与条件相关的事件通知刷新。需要注意的是,“刷新”不是一般的重放功能,因为服务器不需要维护事件历史记录。

刷新事件通知可能以任意顺序发送,并且可能不按顺序发送。当服务器回复刷新请求时,条件可能会更改状态,刷新事件通知可能不再反映客户端接收到它时的当前条件状态。类似地,客户端可以在接收到刷新事件通知之后接收原始事件通知。客户端需要比较时间戳,以确保其状态正确情况。

客户端必须显式调用Refresh()方法才能获得刷新事件通知。这是与OPC DA接口不同,在OPC DA接口中,激活或向组添加项目会导致隐式刷新。

3.9 错误处理

OPC事件服务器可能会将内部或源错误报告为标准事件,可能是简单事件或条件相关事件。服务器错误的事件属于OPC_SERVER_ERROR事件类别。

在事件源失去通信的情况下,该事件源的当前活动条件源应该更新其质量属性以表示通信丢失。可以通过将质量设置为“坏”并将子状态设置为“通信故障”来完成。这一质量变化必须向所有订阅者发出事件通知。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1011003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

域控操作一:更换域用户桌面背景

1,创建背景图片文件夹并设置共享文件夹&#xff1a; 创建文件夹&#xff0c;将图片放进去&#xff0c;设置共享&#xff0c;权限改为Everyone 2&#xff0c;打开域控服务器设置组策略 在需要的组织单位OU内创建GPO设置名字为统一桌面背景 用户配置–管理模板–桌面–桌面 Act…

期权怎样的加仓才是合理的加仓?

期权加仓的手法是期权投资中常见的一种操作的手段,一般是在行情有大涨趋势的时候,投资者通过追加仓位来扩大收益和缩小持仓成本的策略&#xff0c;下文为大家介绍期权怎样的加仓才是合理的加仓&#xff1f;本文来自&#xff1a;期权酱 一、期权交易怎么加仓最合适&#xff1f;期…

[H5动画制作系列 ] Text及Button 的基础原理Demo

准备工作: 舞台上方是个动态文本框,名称为:myText,舞台下方是一个按钮元件(myButton)的实例,名称是:myButton1,当点击按钮时,能够在文本框上和控制台(console)输出:当前帧号以及全局i的变量值。建立两个图层,一个图层布局按钮和文本框,另一个图层专门部署代码。 操作步骤: 步…

WebGL 正确处理对象前后的关系——隐藏面消除(深度测试)/ 深度冲突

目录 前言 验证WebGL处理对象前后关系的规则——后绘制的图形覆盖先绘制的图形 隐藏面消除&#xff08;深度测试&#xff09; 开启隐藏面消除功能&#xff0c;需要遵循以下两步&#xff1a; 1.开启隐藏面消除功能。 gl.enable&#xff08;&#xff09;函数规范 2.在绘制…

计算机毕业设计 基于SSM的电影推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

zabbix 钉钉微信企微告警(动作操作消息内容模板)

一、环境配置 1、配置zabbix服务端 2、配置监控主机&监控项&监控模板 zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客 二、触发器 触发器的本质就是一个条件判断&#xff0c;对于不同的监控数据来说&#xff0c;我…

小剧场短剧影视小程序源码分享,搭建自己的短剧小程序

拥有一个属于自己的短剧小程序&#xff0c;是现代人追求创作梦想和与观众互动的新方式。近年来&#xff0c;小剧场短剧影视小程序的兴起为广大创作者提供了展示才华和与观众互动的平台。如果你也渴望搭建一个自己的短剧小程序&#xff0c;那么你来对地方了&#xff01;在本文中…

一个Python终端增强开源库

迷途小书童 读完需要 4分钟 速读仅需 2 分钟 1 简介 rich 是由 Will McGugan 开发的一个开源库&#xff0c;旨在提供更好的终端文本渲染和样式处理能力。它提供了丰富的文本格式化选项&#xff0c;包括颜色、粗体、斜体、下划线、对齐等。rich 不仅适用于命令行界面的美化&…

MYSQL 窗体汇总函数

如果我们想要汇总当天数据&#xff0c;当月数据&#xff0c;当年数据的。如果不懂窗体函数&#xff0c;可能会比较费劲&#xff0c;那小编就说了&#xff0c;我用java处理同样可以达到效果啊。可问题是。明明有现成的函数&#xff0c;为啥要用java处理&#xff0c;当然同时&…

【zlm】 webrtc源码讲解

目录 前端WEB 服务器收到请求 服务端的处理 播放 拉流 参考文章 前端WEB 服务器收到请求 POST /index/api/webrtc?applive&streamtest&typeplay HTTP/1.1 HttpSession::onRecvHeaderHttpSession::Handle_Req_POSTHttpSession::Handle_Req_POSTif (totalConte…

iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机?

iPhone苹果手机15机型区域版本识别代码 CH代码为国行 LL代码为美版 ZP代码为港版 iPhone苹果15手机怎么看是国行还是美版或港版的苹果iPhone15手机&#xff1f; 1、打开苹果iPhone15手机桌面上的「设置」&#xff1b; 2、在iPhone苹果15手机设置内找到「通用」并点击打开&…

MySQL修改时间添加时间自动更新

第一种: database.php设置 false改为true;然后看是使用的什么框架 如果是tp5需要数据库是create_time和update_time字段 laravel的话,需要的是created_at和updated_at字段 如果想自定义的话,就在model文件里加上 protected $createTime create_at;// 默认的字段为create_t…

腾讯mini项目-【指标监控服务重构】2023-08-01

今日已办 合并 Traefik 和 Profile 的 Trace 对 Traceparent Header 理解有误 Trace Context (w3.org) 故需要解析 TraceHeader 才能获取trace_id、parent_id func (profileCtx *ProfileContext) UnpackKafkaMessage(ctx context.Context) (needBreak bool, tpsStatus strin…

浅谈C++|模板篇

一.模板模板概念 模板就是建立通用的模具&#xff0c;大大提高复用性 模板的特点&#xff1a; 1.模板不可以直接使用&#xff0c;它只是一个框架 2.模板的通用并不是万能的 C另一种编程思想称为泛型编程&#xff0c;主要利用的技术就是模板。 C提供两种模板机制:函数模板和类模…

机器学习(14)---逻辑回归(含手写公式、推导过程和手写例题)

逻辑回归 一、逻辑回归概述二、模型、策略和优化&#xff08;手写&#xff09;三、w和b的梯度下降公式推导四、例题分析4.1 题目4.2 解答 一、逻辑回归概述 1. 逻辑回归也称作logistic回归分析&#xff0c;是一种广义的线性回归分析模型&#xff0c;属于机器学习中的监督学习。…

《Web安全基础》07. 反序列化漏洞

web 1&#xff1a;基本概念1.1&#xff1a;序列化&反序列化1.2&#xff1a;反序列化漏洞1.3&#xff1a;POP 链 2&#xff1a;PHP 反序列化2.1&#xff1a;序列化&反序列化2.2&#xff1a;魔术方法 3&#xff1a;JAVA 反序列化3.1&#xff1a;序列化&反序列化3.2&a…

vue移动端页面适配

页面的适配&#xff0c;就是一个页面能在PC端正常访问&#xff0c;同时也可以在移动端正正常访问。 现在我们可以通过弹性布局【Flexible布局】、媒体查询和响应式布局。除此之外&#xff0c;还可以通过rem和vw针对性地解决页面适配问题。 响应式布局 响应式布局的核心&…

【C++】day6学习成果

#include <iostream>using namespace std;template<typename T> class MyVector { private:T *p; //动态数组的首地址 用来保存数据int Size; //动态数组的元素个数int max1size; //动态数组的最大长度 public://无参数 - 构造一个空的ve…

react路由01——react-routerV6 中路由传递参数的几种方式

react路由01——react-routerV6 中路由传递参数的几种方式 1. 前言1.1 关于react- router&#xff0c;上官网1.2 react脚手架demo 2. 路由简单配置——无参数3. 路由传参方式3.1 params参数3.1.1 params参数——useParams钩子3.1.2 params参数——useMatch钩子 3.2 search参数3…

FFmpeg深入学习

文章目录 前言一、FFmpeg 基础指令二、FFmpeg 应用之视频播放器1、音视频播放流程2、音视频同步 三、FFplay 播放器1、FFmpeg 播放器的整体框架2、ffplay 的初体验及快捷键3、ffplay 模块划分4、ffplay 原理及流程 四、FFmpeg 编解码及转码1、FFmpeg 转码全流程简介2、FFmpeg 转…