dbus中的数据类型

2023-12-20 07:38
文章标签 数据类型 dbus

本文主要是介绍dbus中的数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DBus中也是类似于静态语言,使用了“强类型”数据格式。在DBus上传递的所有数据都需要声明其对应的类型,下面整理了下,DBus中的数据类型,以及在DBus中声明的数据类型是什么意思。

dbus类型说明
sstring 字符串类型,可以声明 s
aarray 数组,可以声明为 a
vvariant,variant:<type>:<value>
()结构体,声明时为双括号中间的为类型,可以是多个,例如(ss) 即这个结构体内包含两个字符串属性
b布尔值
SIGNATUREsignature类型
yBYTE
dDOUBLE
tUINT64
xINT64
uUINT32
iINT32
quint16
nINT16
{}词典,这里声明为两个括号,中间为其对应的 key value,例如 {sv} 即 key是字符串类型,value是variant类型。
oOBJECT_PATH 对象路径
  • a{sv} : 是一个数组,元素为一个键值对的词典,里面仅有一个

  • (ssssa{ss}as) 为一个结构体, 里面属性有7个 两个词典(数组),五个字符串类型

  • (sssbsasa(ss)asba(ssss)asasasasa(ss)b) 这个类型拆开为下:共16个属性

    (s strings strings stringb bools stringas array only one stringa(ss) two string type in the arrayas array only one stringb boola(ssss) four string type in the arrayas array only one stringas array only one stringas array only one stringas array only one stringa(ss)  two string type in the arrayb bool)
    

    对上述类型,python中就可以很灵活的声明

    ["", "", "", False, DEFAULT_ZONE_TARGET, [], [],[], False, [], [], [], [], [], [], False]
    

    go 中就需要按照对应类型声明为不通的结构体,属性名称可以不为主,顺序需要一致。

    其dbus收到的报文内容为

       struct {string ""string "Public" string "For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted."boolean falsestring "default"array [string "ssh"string "dhcpv6-client"]array [struct {string "55555-55557"string "tcp"}]array [string "redirect"string "network-unknown"]boolean truearray [struct {string "1122"string "tcp"string "22"string "10.0.0.3"}]array [string "eth0"]array [string "10.0.0.1"string "10.0.0.2"]array [string "rule family="ipv4" source address="192.168.1.101/32" service name="telnet" accept limit value="1/m""]array [string "tcp"string "udp"]array [struct {string "80"string "tcp"}struct {string "100"string "tcp"}]boolean false}
    
  • ao: array,里面元素仅为一个object_path

golang 中声明一个 Variant

在go中看到variant类型如下

type Variant struct {sig   Signaturevalue interface{}
}

可以通过 SignatureOf("short")声明一个 Signature

然后在通过:MakeVariantWithSignature(v interface{}, s Signature) Variant 声明 对应的 Variant


注:其他数据类型与golang自己的数据类型一致,数组可以使用slice(类似php,python直接用数组替代即可更灵活)


More Reference

dbus data type

dbus data type conparision perl

这篇关于dbus中的数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515241

相关文章

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

Redis地理数据类型GEO

通常要计算两个地理位置的距离不是很方便,这里可以直接通过Redis提供的GEO操作来完成地理位置相关的计算 1)添加地理位置 语法:geoadd key longitude latitude member [longitude latitude member] ...字段说明:key:存放地理位置的集合名称longitude:地理坐标的经度latitude:地理坐标的纬度member:表示这

【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)

基本数据类型   JavaScript基本数据类型包括:undefined、null、number、boolean、string。基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值。 1)基本数据类型的值是不可变的 任何方法都无法改变一个基本类型的值,比如一个字符串: var name = "change";name.substr();//hangconsole.log

【MySQL】MySQL常用的数据类型——表的操作

前言: 🌟🌟本期讲解关于MySQL常用数据类型,表的简单使用,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/wwaqe 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客   目录 前言: 📚️1.MySQL常用的数据类型 1.1数值类型 1.2字符串类型 1.3日期类型  📚️2.表的简单操作 2.1创建

c语言(三种语言对比、数据类型及输出、变量存储、内存分配)

数据类型: 变量的输出: c语言不能直接打印数字,字符,只能将他们转化成字符串打印, printf("%d\n", num); %d 是整数占位符,将来由逗号右边的变量的值占据这个位置。(%i和%d是一样的) %f 是浮点数占位符,默认输出小数点后6位,若只想输出小数点后两位:%.2f %c 是字符型数据占位符。

SpinalHDL之数据类型(一)

本文作为SpinalHDL学习笔记第五十四篇,介绍SpinalHDL的Bool数据类型。 SpinalHDL技术交流QQ群: Note: 1.本群是个人技术交流群,不是什么官方答疑群; 2.提问是你的权利,但回答不是别人的义务; 3.可以潜水,不能灌水; 4.请文明交流,做这行的都算高层次人才,希望你有对应的高素质; 5.不强制改名,但希望统一格式:姓名(昵称也行)-公司/学校-

MySQL数据类型和Schema优化(二)

MySQL数据类型和Schema优化 MySQL合适的数据类型日期和时间类型(datetime、timesamp)整数类型实数类型(float\double\decimal)字符串类型(Varchar、Char) Schema设计缓存表和汇总表 MySQL 良好的逻辑设计与物理设计是高性能的基石,应该根据具体业务需求的查询语句来设计schema,这往往需要权衡各种因素。 比如

【R语言数据类型】深入了解 向量、矩阵、数据框、列表

R语言数据类型有向量、矩阵、数据框、列表。下面我们来深入了解下: vector 的划分 R中的vector分为两类,atomic和list,二者的区别在于,前者元素类型必须相同,后者可以不同。前者的代表是向量和矩阵,后者的代表是list和数据框。 创建向量、矩阵、数据框、列表 # atomica <- 1:5b <- letters[1:5]c <- 1:10mat <- matr

openCV 基本数据类型

结构成员涵义CvPointint x, y图像中的点CvPoint2D32ffloat x, y二维空间中的点CvPoint2D64fdouble x, y二维空间中的点CvPoint3D32ffloat x, y, z三维空间中的点CvPoint3D64fdouble x, y, z三维空间中的点CvSizeint width, height图像的尺寸CvRectint x, y, width,