GIGE 协议摘录 —— GVSP 协议(三)

news2024/11/19 11:22:58

在这里插入图片描述

系列文章目录


GIGE 学习笔记
GIGE 协议摘录 —— 设备发现(一)
GIGE 协议摘录 —— GVCP 协议(二)
GIGE 协议摘录 —— GVSP 协议(三)
GIGE 协议摘录 —— 引导寄存器(四)
GIGE 协议 2.0 中文版


文章目录

  • 系列文章目录
  • GVSP 摘要
  • UDP 可靠性和错误恢复
  • 数据块
    • 数据块传输模式
    • 数据块数据包头
    • 标准传输模式数据包
      • 数据开始标记数据包
      • 全传输模式包
      • 块数据
  • 有效载荷类型
    • 1、扩展块模式(Extended Chunk Mode)
    • 2、图像有效载荷类型(Image Payload Type)
      • 图像数据开始标记包
      • 图像数据有效负载包
      • 图像数据结束标记包
      • 图像全输入数据包(Image All-in Packet)
    • 3、原始数据有效载荷类型(Raw Data Payload Type)
    • 4、文件有效载荷类型(File Payload Type)
    • 5、块数据有效载荷类型(Chunk Data Payload Type)
    • 6、扩展块数据有效载荷类型(已弃用)(Extended Chunk Data Payload Type (deprecated))
    • 7、JPEG有效载荷类型(JPEG Payload Type)
    • 8、JPEG 2000有效载荷类型(JPEG 2000 Payload Type)
    • 9、H.264有效载荷类型(H.264 Payload Type)
    • 10、多区域图像有效载荷类型(Multi-zone Image Payload Type)
    • 11、设备特定有效载荷类型(Device-specific Payload Type)
  • 像素布局(Pixel Layouts)
    • 1、像素对齐(Pixel Alignment)
    • 2、线和图像边界(Line and Image Boundaries)
    • 3、像素格式(Pixel Formats)
      • 3.1 Mono1p
      • 3.2 Mono2p
      • 3.3 Mono4p
      • 3.4 Mono8
      • 3.5 Mono8s
      • 3.6 Mono10
      • 3.7 Mono10Packed
      • 3.8 Mono12
      • 3.9 Mono12Packed
      • 3.10 Mono14
      • 3.11 Mono16
      • 3.12 BayerGR8
      • 3.13 BayerRG8
      • 3.69 RGB16_Planar
  • 像素格式定义(Pixel Format Defines)
    • 1、单个缓冲区格式定义(Mono buffer format defines)
    • 2、Bayer buffer format defines
    • 3、RGB打包的缓冲区格式定义(RGB Packed buffer format defines)
    • 4、YUV和YCbCr打包缓冲区格式定义(YUV and YCbCr Packed buffer format defines)
    • 5、RGB平面缓冲区格式定义(RGB Planar buffer format defines)


GVSP 摘要

    GVSP 是一种依赖于 UDP 传输层协议的应用层协议。它允许 GVSP 接收器从 GVSP 发射机接收图像数据、图像信息或其他信息。

    GVSP 数据包总是从 GVSP 发射器传输到接收器。

    该规范上的当前版本使用 UDP IPv4 作为传输层协议。由于 UDP 是不可靠的,GVSP 提供了机制来保证数据包传输的可靠性(通过 GVCP),并确保最小的流量控制。

UDP 可靠性和错误恢复

在这里插入图片描述

数据块

    该数据块被划分为多个元素,以向 GVSP 接收机提供解码该块所需的信息。

    对于图像,可以通过两种不同的方式提供来自同一帧的多个 ROIs :

  1. 在单个流信道上 —— 当它们在同一流信道上传输时,每个 ROI 必须以不同的块 ID 进行传输。在这种情况下,必须使用相同的时间戳来促进将 ROI 与给定的暴露口相匹配,如 [CR-253st] 所指定的那样。设备可以选择在同一流通道上发送所有 ROI ,以简化传输(只配置一个流通道)。

  2. 在不同的流通道上 —— 当它们在不同的流通道上传输时(每个流通道有一个 ROI),那么 ROI 应该使用相同的块 ID 值,以方便匹配。在这种情况下,时间戳仍然可以用于方便将 ROI 与给定的曝光相匹配。设备可能选择使用不同的流通道,允许不同的 ROI 发送到不同的目的地。

数据块传输模式

    数据块放入包中,允许在流通道上传输。支持两种传输模式:标准和全传输模式。

  • 标准传输模式
    在标准传输模式下,数据开始标记包、数据有效负载包和数据结束标记包以不同的数据包分开。这是自 GigE 愿景成立以来所支持的标准方法。开始标记包和结束标记包划定了数据的有效载荷,并在连续的数据块之间提供清晰的分离点。
    在标准传输模式下存在三种不同的数据包类型:
    1. 数据开始标记包
    2. 数据有效载荷包
    3. 数据结束标记包

    下图说明了在标准传输模式下的数据包的顺序。
在这里插入图片描述

  • 全传输模式
        可选地,如果数据开始标记、数据有效载荷和数据结束标记可以装入单个数据包,那么 GVSP 发射器可以配置为重新分组它们。这是一种全能的传输模式,可用于减少拥有单独的数据开始标记和数据结束标记包的开销。应用程序必须验证是否支持此传输模式(SCCx 的第 29 位)并启用它(SCCFGx 的第 29 位),否则将使用标准传输模式。

在这里插入图片描述

数据块数据包头

    所有的 GVSP 数据包共享相同的基本报头。GVSP 协议报头不包括长度字段: GVSP 接收器使用 UDP 长度信息来确定数据包的大小。

在这里插入图片描述

标准传输模式数据包

    为标准传输模式定义了以下数据包。

数据开始标记数据包

  • 数据开始标记包必须是块的第一个包。
  • 数据引线包必须以单独的包发送,packet_id/packet_id32设置为0。它必须适合一个最多576字节的包(包括IP、UDP和GVSP头)。
  • 数据开始标记包必须遵循图24-4的布局。

在这里插入图片描述

全传输模式包

在这里插入图片描述

块数据

    块是经过标记的数据块,可以在数据块中分组以发送元数据。数据块的例子是:

  • 图像
  • 从图像中提取数据
  • AOI / 像素格式
  • I/O 引脚的状态
  • 曝光数

有效载荷类型

    为了有效地传输信息,GVSP 定义了可以从 GVSP 发射机中流式传输的各种有效载荷类型。下表中列出了这些有效负载类型。

在这里插入图片描述

1、扩展块模式(Extended Chunk Mode)

2、图像有效载荷类型(Image Payload Type)

    此有效载荷类型用于传输未压缩的图像。

    如果支持图像有效负载,则使用图像有效负载类型的流必须以光栅扫描格式在每个数据有效负载数据包中放置数据。

这意味着图像在从左到右传输,然后从上到下传输之前,要在GVSP发射器存储器中重建。这是典型的单触头传感器。

图像数据开始标记包

在这里插入图片描述

图像数据有效负载包

在这里插入图片描述

图像数据结束标记包

在这里插入图片描述

图像全输入数据包(Image All-in Packet)

3、原始数据有效载荷类型(Raw Data Payload Type)

4、文件有效载荷类型(File Payload Type)

5、块数据有效载荷类型(Chunk Data Payload Type)

6、扩展块数据有效载荷类型(已弃用)(Extended Chunk Data Payload Type (deprecated))

7、JPEG有效载荷类型(JPEG Payload Type)

8、JPEG 2000有效载荷类型(JPEG 2000 Payload Type)

9、H.264有效载荷类型(H.264 Payload Type)

10、多区域图像有效载荷类型(Multi-zone Image Payload Type)

11、设备特定有效载荷类型(Device-specific Payload Type)

自定义

在这里插入图片描述

像素布局(Pixel Layouts)

    本节描述了 GigE Vision 所支持的各种像素和图像布局。在 GigE 视觉 2.0 版本中,这些布局是基于 AIA 像素格式命名约定的。

1、像素对齐(Pixel Alignment)

    为了最小化GVSP接收端的像素处理时间,在有效载荷数据包中使用多字节的像素数据在默认情况下必须是小端化的。

    GVSP 发射机可以实现一个转换器,将像素从小端转换为大端。当受支持时,可以使用 SCPSx 引导寄存器(pixel_endianess 字段)激活此转换器。SCCx 寄存器的 big_and_little_endian_supported 字段表示是否支持此转换器。

    在下面的图中,字节 0 首先在数据线上发送,然后是字节 1 ,以此类推。

2、线和图像边界(Line and Image Boundaries)

    GigE 视觉使用在像素格式命名约定中定义的图像填充。图像填充要求在直线的末尾不插入人工填充。

    因此,对于某些分组和打包的像素格式,来自不同行的像素可能被组合在相同的字节中。例如,想象一个奇宽的图像(例如:宽度= 641像素)。如果像素成对组合(由于填充),那么第一行的最后一个像素将与第二行的第一个像素组合,如下所示。

在这里插入图片描述

    另一个例子是当使用 Mono1p 时,图像宽度不是 8 像素的倍数。使用这种像素格式填充一个字节需要 8 个像素,因此一行的最后一个像素可能不会与字节边界对齐。

3、像素格式(Pixel Formats)

    本节说明了GVSP本地支持的各种像素格式。这些像素格式基于像素格式命名约定文档,其中每个像素格式由5个特征定义:

  1. 组件和位置(Components and Location)
  2. #位(# bits)
  3. 标志指示灯(可选)(Sign indicator)
  4. 包装方式(可选)(Packing Style)
  5. 特定于接口的(可选的)(Interface-specific)

3.1 Mono1p

3.2 Mono2p

3.3 Mono4p

3.4 Mono8

3.5 Mono8s

3.6 Mono10

3.7 Mono10Packed

3.8 Mono12

3.9 Mono12Packed

3.10 Mono14

3.11 Mono16

3.12 BayerGR8

3.13 BayerRG8

3.69 RGB16_Planar

像素格式定义(Pixel Format Defines)

    下面为 GVSP 支持的各种像素格式提供了 #define 定义。每个像素格式都用一个 32 位的值来表示。上面的 8 位表示该颜色。第二个上 8 位表示一个像素所占用的位数(包括任何填充)。这可用于快速计算使用此像素格式存储图像所需的内存量。

//===================================================
// PIXEL FORMATS
//===================================================
// Indicate if pixel is monochrome or RGB
#define GVSP_PIX_MONO 0x01000000
#define GVSP_PIX_RGB 0x02000000 // deprecated in version 1.1
#define GVSP_PIX_COLOR 0x02000000
#define GVSP_PIX_CUSTOM 0x80000000
#define GVSP_PIX_COLOR_MASK 0xFF000000
// Indicate effective number of bits occupied by the pixel (including padding).
// This can be used to compute amount of memory required to store an image.
#define GVSP_PIX_OCCUPY1BIT 0x00010000
#define GVSP_PIX_OCCUPY2BIT 0x00020000
#define GVSP_PIX_OCCUPY4BIT 0x00040000
#define GVSP_PIX_OCCUPY8BIT 0x00080000
#define GVSP_PIX_OCCUPY12BIT 0x000C0000
#define GVSP_PIX_OCCUPY16BIT 0x00100000
#define GVSP_PIX_OCCUPY24BIT 0x00180000
#define GVSP_PIX_OCCUPY32BIT 0x00200000
#define GVSP_PIX_OCCUPY36BIT 0x00240000
#define GVSP_PIX_OCCUPY48BIT 0x00300000
#define GVSP_PIX_EFFECTIVE_PIXEL_SIZE_MASK 0x00FF0000
#define GVSP_PIX_EFFECTIVE_PIXEL_SIZE_SHIFT 16
// Pixel ID: lower 16-bit of the pixel formats
#define GVSP_PIX_ID_MASK 0x0000FFFF
#define GVSP_PIX_COUNT 0x46 // next Pixel ID available

1、单个缓冲区格式定义(Mono buffer format defines)

#define GVSP_PIX_MONO1P (GVSP_PIX_MONO | GVSP_PIX_OCCUPY1BIT | 0x0037)
#define GVSP_PIX_MONO2P (GVSP_PIX_MONO | GVSP_PIX_OCCUPY2BIT | 0x0038)
#define GVSP_PIX_MONO4P (GVSP_PIX_MONO | GVSP_PIX_OCCUPY4BIT | 0x0039)
#define GVSP_PIX_MONO8 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x0001)
#define GVSP_PIX_MONO8S (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x0002)
#define GVSP_PIX_MONO10 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0003)
#define GVSP_PIX_MONO10_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0004)
#define GVSP_PIX_MONO12 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0005)
#define GVSP_PIX_MONO12_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0006)
#define GVSP_PIX_MONO14 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0025)
#define GVSP_PIX_MONO16 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0007)

2、Bayer buffer format defines

#define GVSP_PIX_BAYGR8 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x0008)
#define GVSP_PIX_BAYRG8 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x0009)
#define GVSP_PIX_BAYGB8 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x000A)
#define GVSP_PIX_BAYBG8 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY8BIT | 0x000B)
#define GVSP_PIX_BAYGR10 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x000C)
#define GVSP_PIX_BAYRG10 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x000D)
#define GVSP_PIX_BAYGB10 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x000E)
#define GVSP_PIX_BAYBG10 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x000F)
#define GVSP_PIX_BAYGR12 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0010)
#define GVSP_PIX_BAYRG12 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0011)
#define GVSP_PIX_BAYGB12 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0012)
#define GVSP_PIX_BAYBG12 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0013)
#define GVSP_PIX_BAYGR10_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0026)
#define GVSP_PIX_BAYRG10_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0027)
#define GVSP_PIX_BAYGB10_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0028)
#define GVSP_PIX_BAYBG10_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x0029)
#define GVSP_PIX_BAYGR12_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x002A)
#define GVSP_PIX_BAYRG12_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x002B)
#define GVSP_PIX_BAYGB12_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x002C)
#define GVSP_PIX_BAYBG12_PACKED (GVSP_PIX_MONO | GVSP_PIX_OCCUPY12BIT | 0x002D)
#define GVSP_PIX_BAYGR16 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x002E)
#define GVSP_PIX_BAYRG16 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x002F)
#define GVSP_PIX_BAYGB16 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0030)
#define GVSP_PIX_BAYBG16 (GVSP_PIX_MONO | GVSP_PIX_OCCUPY16BIT | 0x0031)

3、RGB打包的缓冲区格式定义(RGB Packed buffer format defines)

#define GVSP_PIX_RGB8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x0014)
#define GVSP_PIX_BGR8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x0015)
#define GVSP_PIX_RGBA8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY32BIT | 0x0016)
#define GVSP_PIX_BGRA8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY32BIT | 0x0017)
#define GVSP_PIX_RGB10 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0018)
#define GVSP_PIX_BGR10 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0019)
#define GVSP_PIX_RGB12 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x001A)
#define GVSP_PIX_BGR12 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x001B)
#define GVSP_PIX_RGB16 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0033)
#define GVSP_PIX_RGB10V1_PACKED (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY32BIT | 0x001C)
#define GVSP_PIX_RGB10P32 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY32BIT | 0x001D)
#define GVSP_PIX_RGB12V1_PACKED (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY36BIT | 0X0034)
#define GVSP_PIX_RGB565P (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0035)
#define GVSP_PIX_BGR565P (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0X0036)

4、YUV和YCbCr打包缓冲区格式定义(YUV and YCbCr Packed buffer format defines)

#define GVSP_PIX_YUV411_8_UYYVYY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY12BIT | 0x001E)
#define GVSP_PIX_YUV422_8_UYVY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x001F)
#define GVSP_PIX_YUV422_8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0032)
#define GVSP_PIX_YUV8_UYV (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x0020)
#define GVSP_PIX_YCBCR8_CBYCR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x003A)
#define GVSP_PIX_YCBCR422_8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x003B)
#define GVSP_PIX_YCBCR422_8_CBYCRY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0043)
#define GVSP_PIX_YCBCR411_8_CBYYCRYY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY12BIT | 0x003C)
#define GVSP_PIX_YCBCR601_8_CBYCR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x003D)
#define GVSP_PIX_YCBCR601_422_8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x003E)
#define GVSP_PIX_YCBCR601_422_8_CBYCRY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0044)
#define GVSP_PIX_YCBCR601_411_8_CBYYCRYY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY12BIT | 0x003F)
#define GVSP_PIX_YCBCR709_8_CBYCR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x0040)
#define GVSP_PIX_YCBCR709_422_8 (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0041)
#define GVSP_PIX_YCBCR709_422_8_CBYCRY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY16BIT | 0x0045)
#define GVSP_PIX_YCBCR709_411_8_CBYYCRYY (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY12BIT | 0x0042)

5、RGB平面缓冲区格式定义(RGB Planar buffer format defines)

#define GVSP_PIX_RGB8_PLANAR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY24BIT | 0x0021)
#define GVSP_PIX_RGB10_PLANAR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0022)
#define GVSP_PIX_RGB12_PLANAR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0023)
#define GVSP_PIX_RGB16_PLANAR (GVSP_PIX_COLOR | GVSP_PIX_OCCUPY48BIT | 0x0024)

   
 

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

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

相关文章

[图解]建模相关的基础知识-08

1 00:00:01,650 --> 00:00:04,950 如果说,A乘BB乘A的话 2 00:00:06,350 --> 00:00:07,140 意味着什么 3 00:00:07,560 --> 00:00:08,420 A就等于B了 4 00:00:09,500 --> 00:00:10,680 只有两个相等 5 00:00:10,690 --> 00:00:13,360 它们的笛卡尔…

回收站照片永久删除找回?教你六个简单恢复方法

误删回收站照片怎么恢复?在使用电脑的时候,经常会遇到一些重要的文件被误删,并在删除之后又执行了清空回收站的操作。对于熟知电脑操作的用户都知道,如果说清空了回收站,恢复的难度相对来讲要大出很多。 那么&#xf…

【Java】解决Java报错:FileNotFoundException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 文件路径错误2.2 文件名拼写错误2.3 文件权限问题2.4 文件路径未正确拼接 3. 解决方案3.1 检查文件路径3.2 使用相对路径和类路径3.3 检查文件权限3.4 使用文件选择器 4. 预防措施4.1 使用配置文件4.2 使用日志记录4.3 使用单元测…

Java--Math类和Random类

1.Math类简介 1.Math类中提供了大量用于数学运算的相关方法。 2.Math类是使用final修饰的终结类,不能产生子类 3.Math类中的方法都是static修饰的静态方法,可以通过类名.方法名直接调用 2.Math常用方法 1.abs(int):求绝对值(int,long,floa…

5.1 系统模块划分探讨

一.指导思想 系统模块划分是指将一个系统按照功能或业务进行划分,以便于组织和管理系统的开发、维护和扩展。 一般来说,系统模块划分可以根据业务功能、技术层次和逻辑关系等方面进行。 二.理解业务领域 分析业务需求 要分析…

Java的一些补充性介绍

目录 什么是JDK,JRE 快速入门 学习路线: 如何快速掌握技术或知识点: IDEA 常用快捷键 IDEA创建项目、模块、包、类 模板/自定义模板 包 包的命名:​编辑 常用的包 如引入包 断点调试(debug)​编辑 多线程:…

西南交通大学【操作系统实验1】

实验目的 通过本实验了解Linux系统的组织和行为,观察各种存储系统状态信息的内核变量熟悉这些结构和信息 实验内容 理解Linux操作系统以及./proc文件熟悉codeblocks,学习Linux下c程序调试技术根据给定的程序观察cpuinfo/version/stat/uptime编程实现对…

泛微证券行业数据中心方案:打造多样化的数据收集、汇总、分析、决策一体化报表

证券企业在日常办公、业务开展时,涉及了诸多数据需求,而且数据来源于多部门、多个系统。需要对数据获取、汇总、展现进行高效、可视化的操作,高效利用数据价值,助力企业运营更高效、风险更可控。 泛微基于证券行业数字经营分析的需…

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号:Qt 学…

12个Console命令,让js调试更简单

Console 对象用于 JavaScript 调试。JavaScript 原生中默认是没有 Console 对象,这是宿主对象(也就是浏览器)提供的内置对象。 用于访问调试控制台, 在不同的浏览器里效果可能不同。 Console 对象常见的两个用途: 显示网页代码运…

SAP STO跨公司间转储含POD交货操作简介

STO跨公司间转储含POD交货这个业务常见于集团性的公司, 1、同一个集团下A公司和B公司都是独立的,A公司向B公司进行采购。B公司会有一张交货单,然后基于交货单进行过账,收货,开票等操作。 2、当同一个公司下不同工厂间…

微信支付,微信平台证书如何下载,如何获取平台证书 wxpay如何初次获取平台证书 java初次生成平台证书, java生成微信platform.pem

1. 场景:使用ijpay,调用获取平台证书失败。 属于初次获取平台证书。 注:做返回校验使用,不校验好像也没事,但是支付无小事,强烈建议获取平台证书,校验后做回调相关处理!!…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

学习了解 JSON Schema

在数字时代,数据的快速增长要求开发者掌握有效的管理和验证技术。JSON(JavaScript Object Notation) 是一种流行的轻量级数据交换格式,在网络编程中有广泛应用。为了应对复杂数据的挑战,JSON Schema 诞生,提…

C++九州控制地址结构else 陈述

else如同英文字义,九州qa98錪cc否则的意思,通常放在if的后面,若if的条件为真,就执行if底下大括弧围起来的程式区块,若为假,就执行else底下大括弧围起来的程式区块。 形式如下: 这个概念用于二选…

PostgreSQL Schema管理基础

Postgresql schema是什么、为什么它们很重要以及如何使用schema(模式)使您的数据库实现更加健壮和可维护?本文将介绍 Postgresql 中schema的基础知识,并通过一些基本示例向您展示如何创建它们。未来的文章将深入探讨如何保护和使用实际应用程序schema的示…

[linux]基于Ubuntu24.04原内核6.8.0升级到6.9.0

物理机操作系统: 虚拟机操作系统: Ubuntu 24.04 下载地址: https://mirror.nju.edu.cn/ubuntu-releases/24.04/ubuntu-24.04-desktop-amd64.iso VM版本信息: 内核源代码来源: https://ftp.sjtu.edu.cn/sites/ftp.kern…

Open vSwitch 守护进程的 upcall 处理(re)

一、upcall 消息的类型 在 Open vSwitch 的数据包转发流程中,如果数据包在内核空间无法完全处理(比如匹配不到流表项),就会发生 upcall 调用,将数据包从内核空间的 Datapath 模块传输至用户空间的 ovs-vswitchd 守护进…

Mybatis源码解读

MyBatis是我们工作中常见的ORM持久层框架,对于MyBatis并不能仅仅局限于会使用的阶段,更需要了解它的工作原理,想要了解原理,源码是必须要读的,这篇文章是我个人在阅读MyBatis的源码过程中的一些简单的总结,…

过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较

一、过孔开窗、过孔盖油、过孔塞油、过孔塞树脂的比较: 过孔开窗是指过孔的焊环上面裸露,不盖油墨。如果做表面处理喷锡的话,焊环这里就类似于贴片焊盘上锡,可以用来焊接作用。 过孔盖油指的是via过孔的焊环上面不裸露,覆盖油墨,为避免板子使用时有短路等情况。