点击或拖拽改变大小

LogValueLimit 类

一个用于数值范围记录的类,可以按照时间进行分类统计,比如计算一个温度值的每天的开始值,结束值,最大值,最小值,平均值信息。详细见API文档信息。
A class used to record the value range, which can be classified according to time, such as calculating the start value, end value, maximum value, minimum value, and average value of a temperature value. See the API documentation for details.
继承层次
SystemObject
  HslCommunication.LogNetLogStatisticsBaseValueLimit
    HslCommunication.LogNetLogValueLimit

命名空间:  HslCommunication.LogNet
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:11.8.2.0 (11.8.2.0)
语法
public class LogValueLimit : LogStatisticsBase<ValueLimit>

LogValueLimit 类型公开以下成员。

构造函数
  名称说明
公共方法LogValueLimit
实例化一个新的数据统计内容,需要指定当前的时间统计方式,按小时,按天,按月等等,还需要指定统计的数据数量,比如按天统计30天。
To instantiate a new data statistics content, you need to specify the current time statistics method, by hour, by day, by month, etc., and also need to specify the number of statistics, such as 30 days by day.
Top
属性
  名称说明
公共属性ArrayLength
获取当前的统计类信息的数据总量
Get the total amount of current statistical information
(继承自 LogStatisticsBaseT。)
公共属性GenerateMode
获取当前的统计类信息时间统计规则
Get the current statistical information time statistics rule
(继承自 LogStatisticsBaseT。)
公共属性ValueCount
当前设置数据的总的数量
The total amount of data currently set
Top
方法
  名称说明
公共方法AnalysisNewValue
新增一个数据用于分析,将会根据当前的时间来决定插入数据位置,如果数据位置发生了变化,则数据向左发送移动。如果没有移动或是移动完成后,最后一个数进行数据更新,包括最大值,最小值,平均值。
Add a new data for analysis, and will determine the position to insert the data according to the current time. If the data position changes, the data will be sent to the left. If there is no movement or after the movement is completed, data update for the last number, including maximum, minimum, and average.
公共方法AnalysisNewValueByTime
新增一个数据用于分析,将会指定的时间来决定插入数据位置,如果数据位置发生了变化,则数据向左发送移动。如果没有移动或是移动完成后,最后一个数进行数据更新,包括最大值,最小值,平均值。
dd a new data for analysis, and will determine the position to insert the data according to the specified time. If the data position changes, the data will be sent to the left. If there is no movement or after the movement is completed, data update for the last number, including maximum, minimum, and average.
公共方法Equals (继承自 Object。)
受保护的方法Finalize (继承自 Object。)
公共方法GetDataMarkFromDateTime
根据指定的时间,获取到该时间指定的数据标记信息
According to the specified time, get the data mark information specified at that time
(继承自 LogStatisticsBaseT。)
公共方法GetDataMarkFromTimeNow
根据当前数据统计的时间模式,获取最新的数据标记信息
Obtain the latest data mark information according to the time mode of current data statistics
(继承自 LogStatisticsBaseT。)
公共方法GetHashCode (继承自 Object。)
公共方法GetStatisticsSnapAndDataMark
获取当前的统计信息的数据快照,这是数据的副本,修改了里面的值不影响
Get a data snapshot of the current statistics. This is a copy of the data. Modifying the value inside does not affect
(继承自 LogStatisticsBaseT。)
公共方法GetStatisticsSnapshot
获取当前的统计信息的数据快照,这是数据的副本,修改了里面的值不影响
Get a data snapshot of the current statistics. This is a copy of the data. Modifying the value inside does not affect
(继承自 LogStatisticsBaseT。)
公共方法GetStatisticsSnapshotByTime
根据指定的时间范围来获取统计的数据信息快照,包含起始时间,包含结束时间,这是数据的副本,修改了里面的值不影响
Get a snapshot of statistical data information according to the specified time range, including the start time, also the end time. This is a copy of the data. Modifying the value inside does not affect
(继承自 LogStatisticsBaseT。)
公共方法GetType (继承自 Object。)
公共方法LoadFromBinary
从二进制的数据内容加载,会对数据的合法性进行检查,如果数据不匹配,会报异常
Loading from the binary data content will check the validity of the data. If the data does not match, an exception will be reported
公共方法LoadFromFile
从指定的文件加载对应的统计信息,通常是调用SaveToFile(String)方法存储的文件,如果文件不存在,将会跳过加载
Load the corresponding statistical information from the specified file, usually the file stored by calling the SaveToFile(String) method. If the file does not exist, the loading will be skipped
受保护的方法MemberwiseClone (继承自 Object。)
公共方法Reset
重置当前的统计信息,需要指定统计的数据内容,最后一个数据的标记信息,本方法主要用于还原统计信息
To reset the current statistical information, you need to specify the content of the statistical data, and the tag information of the last data. This method is mainly used to restore statistical information
(继承自 LogStatisticsBaseT。)
公共方法SaveToBinary
将当前所有的数据都写入到二进制的内存里去,可以用来写入文件或是网络发送。
Write all current data into binary memory, which can be used to write files or send over the network.
公共方法SaveToFile
将当前的统计信息及数据内容写入到指定的文件里面,需要指定文件的路径名称
Write the current statistical information and data content to the specified file, you need to specify the path name of the file
受保护的方法StatisticsCustomAction(FuncT, T)
新增一个统计信息,将会根据当前的时间来决定插入数据位置,如果数据位置发生了变化,则数据向左发送移动。如果没有移动或是移动完成后,最后一个数进行自定义的数据操作
Adding a new statistical information will determine the position to insert the data according to the current time. If the data position changes, the data will be sent to the left. If there is no movement or after the movement is completed, Custom data operations on the last number
(继承自 LogStatisticsBaseT。)
受保护的方法StatisticsCustomAction(FuncT, T, DateTime)
新增一个统计信息,将会根据当前的时间来决定插入数据位置,如果数据位置发生了变化,则数据向左发送移动。如果没有移动或是移动完成后,最后一个数进行自定义的数据操作
Adding a new statistical information will determine the position to insert the data according to the current time. If the data position changes, the data will be sent to the left. If there is no movement or after the movement is completed, Custom data operations on the last number
(继承自 LogStatisticsBaseT。)
公共方法ToString (重写 ObjectToString.)
Top
字段
扩展方法
  名称说明
公共扩展器方法ToJsonString
获取当前对象的JSON格式表示的字符串。
Gets the string represented by the JSON format of the current object.
(由 HslExtension 定义。)
Top
示例
我们来举个例子:我们需要对一个温度数据进行分析,分析60天之内的最大值最小值等等信息
简单的记录调用次数
/// <summary>
/// 定义一个缓存60天统计的信息内容,假设我们要统计最近60天每天温度数据的最大值,最小值,平均值,起始值,结束值,数据量<br />
/// Define a cache for 60 days of statistical information content, suppose we want to count the maximum, minimum, average, start value, end value, data volume of the daily temperature data for the last 60 days
/// </summary>
public LogValueLimit logValueLimit = new LogValueLimit( GenerateMode.ByEveryDay, 60 );

/// <summary>
/// 假设我们有的需求,需要统计每天温度数据的最大值,最小值,平均值,起始值,结束值,数据量<br />
/// Assuming that we have a demand, we need to count the maximum, minimum, average, start value, end value, and data volume of daily temperature data
/// </summary>
public void Example( )
{
    // 这里获取了温度信息,然后一直给logValueLimit赋值即可,内部自动会按照时间统计
    double temperature = 30.4d;
    logValueLimit.AnalysisNewValue( temperature );
}

// 然后你就可以在其他的任何地方,其他线程里获取到当前的最新的long数组
public void AAA( )
{
    ValueLimit[] data = logValueLimit.GetStatisticsSnapshot( );  // 可以用于显示,然后监视系统的基本情况 返回30个数组长度的ValueLimit[]

    // 当然我也可以获取指定日期的数据范围信息
    ValueLimit[] data2 = logValueLimit.GetStatisticsSnapshotByTime( new DateTime( 2020, 12, 10 ), new DateTime( 2020, 12, 19 ) );
    // 这样data2是10个长度的数据
}
因为这个数据是保存在内存里的,程序重新运行就丢失了,如果希望让这个数据一直在程序的话,在软件退出的时候需要存储文件,在软件启动的时候,加载文件数据
存储与加载
// 如果需要对数据进行保存
logValueLimit.SaveToFile( "D:\\123.txt" );

// 当你系统启动的是,需要加载旧的数据信息
logValueLimit.LoadFromFile( "D:\\123.txt" );
参见