一种消息处理方法、车载通讯装置、电子设备及存储介质与流程

文档序号:30660496发布日期:2022-07-06 01:41阅读:108来源:国知局
一种消息处理方法、车载通讯装置、电子设备及存储介质与流程

1.本发明涉及车载装置内部通讯领域,尤其涉及一种消息处理方法、车载通讯装置、电子设备及存储介质。


背景技术:

2.当前tbox是目前车厂通用的车联网终端,是连接后台与整车网络的桥梁。它通过can收发器直接连接网关与整车网络进行通信,能够获取娱乐can、诊断can的数据,并可以对bcm、vcu等进行控制,或下发诊断命令。tbox自带的外设和内置资源很多,比如gps、gsensor、ble模块。ble模块能够实现手机不经后台直接控制车辆的一些功能。tbox通过usb连接娱乐主机,为娱乐主机提供网络,并进行信息传递。
3.tbox作为车身唯一可以联网的控制单元,肩负着监控和控制车身状态的使命。tbox主要用于采集车辆相关信息包括位置信息、姿态信息、车辆状态信息(通过连接车上can总线)等,这些从can总线上采集到的信息要经过通过tbox mpu内部的多个进程相互协调处理,进行一定的信号转换处理、条件判断,才能作为有效的信号通知上报给云端;云端下来的指令,也需要进行反序列化、解密等操作,这些都是由tbox内部的进程进行分工处理的。
4.而在大多的tbox中,其内部的进程通讯都采用共享内存或点对点通讯的方式实现的,但这些方法存在内部资源占用大、效率低等问题。


技术实现要素:

5.有鉴于此,本发明提供一种消息处理方法及车载通讯装置,至少部分解决现有技术中存在的问题。
6.根据本技术的一个方面,提供一种消息处理方法,应用于车载通讯装置内的第一消息处理模块,所述第一消息处理模块与所述车载通讯装置内的第一功能模块具有关联关系,所述车载通讯装置内设置有至少一个第二功能模块,每一所述第二功能模块均设置有对应的第二消息处理模块;
7.所述方法包括:
8.接收第二消息处理模块发送的第一消息;
9.确定所述第一消息的消息类型;
10.在所述消息类型为所述第一功能模块对应的目标消息类型的情况下,将所述第一消息发送至所述第一功能模块。
11.在本技术的一种示例性实施例中,所述第一消息为所述第二消息处理模块通过广播的形式发出的。
12.在本技术的一种示例性实施例中,所述方法还包括:
13.接收所述第一功能模块发送的第二消息;
14.将所述第二消息以广播的形式发出,以使每一所述第二消息处理模块均能获取到
所述第二消息。
15.在本技术的一种示例性实施例中,在所述接收第二消息处理模块发送的第一消息之前,所述方法还包括:
16.接收所述第一功能模块发送的注册信息;所述注册信息包括与所述第一功能模块对应的至少一个目标消息类型;
17.存储所述注册信息。
18.在本技术的一种示例性实施例中,所述确定所述消息类型是否为所述第一功能模块对应的目标消息类型,包括:
19.将所述第一消息的消息类型与所述注册信息进行对比,确定所述注册信息内是否具有与所述第一消息的消息类型相同的目标消息类型。
20.在本技术的一种示例性实施例中,在所述将所述第一消息发送至所述第一功能模块之后,所述方法还包括:
21.向所述第一功能模块发送通知信息;
22.其中,所述通知信息用于告知所述第一功能模块所述第一消息已到达。
23.在本技术的一种示例性实施例中,在所述向所述第一功能模块发送通知信息之后,所述方法还包括:
24.接收所述第一功能模块发送的反馈信息;
25.其中,所述反馈信息为所述第一功能模块将所述第一消息添加至消息队列后,向所述第一消息处理模块发送的;所述反馈信息用于通知所述第一消息处理模块已接收到所述第一消息,以使所述第一消息处理模块能够继续向所述第一功能模块发送消息。
26.在本技术的一种示例性实施例中,所述第一消息处理模块,为所述车载通讯装置响应于所述第一功能模块的启动建立的。
27.在本技术的一种示例性实施例中,所述确定所述第一消息的消息类型,包括:
28.获取所述第一消息内的设定字段的目标内容,所述目标内容用于表征所述第一消息的消息类型。
29.根据本技术的一个方面,提供一种车载通讯装置,包括:
30.第一功能模块;
31.第一消息处理模块,与所述第一功能模块具有对应关系;
32.至少一个第二功能模块,每一所述第二功能模块均具有对应的第二消息处理模块;
33.其中,所述第一消息处理模块用于执行以下方法:
34.接收第二消息处理模块发送的第一消息;
35.确定所述第一消息的消息类型;
36.在所述消息类型为所述第一功能模块对应的目标消息类型的情况下,将所述第一消息发送至所述第一功能模块。
37.根据本技术的一个方面,提供一种电子设备,包括处理器和存储器;
38.所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一项所述方法的步骤。
39.根据本技术的一个方面,提供一种计算机可读存储介质,所述计算机可读存储介
质存储程序或指令,所述程序或指令使计算机执行上述任一项所述方法的步骤。
40.本技术提供的消息处理方法,能够通过第一消息处理模块,确定接收到的第一消息的消息类型,并根据判断消息类型是否为其关联的第一功能模块对应的目标消息类型,确定是否将第一消息发送至第一功能模块。如此,实现了通过单独设置的消息处理模块,对接收到的第一消息进行消筛选,只将第一功能模块需要的消息发送至第一功能模块,如此,第一功能模块只需要直接对接收到的第一消息进行处理即可,并不需要先对接收到的消息进行区分和判定。降低了第一功能模块的处理压力。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
42.图1为本实施例提供的一种消息处理方法的流程图;
43.图2为本实施例提供的一种消息处理方法的时序示意图;
44.图3为本实施例提供的一种车载通讯装置的结构示意图。
具体实施方式
45.下面结合附图对本发明实施例进行详细描述。
46.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
47.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
48.请参考图1所示,根据本技术的一个方面,提供一种消息处理方法,应用于车载通讯装置内的第一消息处理模块,所述第一消息处理模块与所述车载通讯装置内的第一功能模块具有关联关系,所述车载通讯装置内设置有若干第二功能模块,每一所述第二功能模块均设置有对应的第二消息处理模块。
49.所述方法包括以下步骤:
50.步骤s100,接收第二消息处理模块发送的第一消息。
51.步骤s200,确定所述第一消息的消息类型。
52.步骤s300,在所述消息类型为所述第一功能模块对应的目标消息类型的情况下,将所述第一消息发送至所述第一功能模块。
53.其中,步骤s300,在具体实施时,可以包括以下步骤:
54.步骤s310,确定所述消息类型是否为所述第一功能模块对应的目标消息类型;
55.若是,则执行步骤s320;否则执行步骤s330。
56.步骤s320,将所述第一消息发送至所述第一功能模块。
57.步骤s330,不对所述第一消息作出响应,或丢弃所述第一消息。
58.需要说明的是,本实施例中,第一功能模块和第二功能模块中的“第一”和“第二”的区别仅为清楚说明本实施例的具体技术而做出的限定。可以理解的是,车载通讯装置内可以具有多个具有相同或不同功能的功能模块,而本实施例中的第一功能模块和第二功能模块指代上述的多个功能模块中的任意两个。相应的,第一消息处理模块和第二消息处理模块的区别与上述类似,仅用于区分其对应的功能模块。可以在一定程度上理解为,车载通讯装置内部的每一功能模块或至少部分功能模块均设置有一个其唯一对应的消息处理模块。其中,第一功能模块和第二功能模块在具体实施中,可以变现为车载处理装置中的进程、应用程序等。
59.本实施例中,tbox(车载通讯装置)内的mpu是基于嵌入式linux系统实现的,linux内核设置有dbus,相应的,第一消息处理模块和第二消息处理模块是通过对dbus进行封装建立的。
60.第一功能模块对应的目标消息类型,可以简单的理解为是第一功能模块所关注的消息类型。其关注的含义为,第一功能模块会对其关注的消息类型的消息进行响应和处理。其不关注的就不会进行额外动作。第一功能模块对应的目标消息类型可以为多个。
61.本实施例提供的消息处理方法,能够通过第一消息处理模块,确定接收到的第一消息的消息类型,并根据判断消息类型是否为其关联的第一功能模块对应的目标消息类型,确定是否将第一消息发送至第一功能模块。如此,实现了通过单独设置的消息处理模块,对接收到的第一消息进行消筛选,只将第一功能模块需要的消息发送至第一功能模块,如此,第一功能模块只需要直接对接收到的第一消息进行处理即可,并不需要先对接收到的消息进行区分和判定。降低了第一功能模块的处理压力。同时,通过第一消息处理模块作为第一消息的接收和初步处理,能够避免接收新消息导致第一功能模块处理终端或响应延迟的问题。
62.在本技术的一种示例性实施例中,所述第一消息为所述第二消息处理模块通过广播的形式发出的。
63.在一些技术中,进程间的通讯采用点对点的方式进行通讯,这样在发出消息的进程就必须在消息发送前,内部设置好车载通讯装置内都有哪些进程;同时,还要判断要发送的消息需要那个进程来处理,并在网络中建立与目标进程的通讯连接,才能实现点对点的通讯。这种方式对进程的处理能力占用很大,且流程繁琐效率较低。
64.本实施例中,第一消息(也就是第二功能模块通过第二消息处理模块发出的消息),是直接通过广播的形式的发出的。如此,第二功能模块在发出消息时,不需要事先确定这个消息需要由谁来处理,也不需要建立响应的通讯通道,只需要将要发送的消息标注上消息类型后直接发送即可。这样,在车载通讯装置内部的所有进程理论上都可以收到第一消息,以第一功能模块进行举例,此时第一消息处理模块充当可一个中间件的作用,可以先行对所有接收到的消息(第一消息)进行判断,确定接收到的消息的消息类型是否是自己对应的第一功能模块所关注的目标消息类型,只有在是的情况下,才会发送给第一功能模块。如此,即便第一消息处理模块能够收到所有功能模块发送消息,也不会占用其对应的第一
功能模块的计算资源,也就不会影响整体的处理速度,且降低了要发送消息的功能模块发送消息时的计算量。
65.在本技术的一种示例性实施例中,所述方法还包括:
66.接收所述第一功能模块发送的第二消息;
67.将所述第二消息以广播的形式发出,以使每一所述第二消息处理模块均能获取到所述第二消息。
68.本实施例中,在第一功能模块需要向外发送第二消息时,第一功能模块只需要将自己要发送的第二消息直接发送至自己对应的第一消息处理模块即可。第一消息处理模块会将接收到的第二消息,以广播的形式发送出去。这样,第一功能模块和第一消息处理模块均不需要判断第二消息要发送给谁,也不用事先在内部存储区域等位置设置车载通信模块内部都有哪些功能模块,只需要第一功能模块在生成第二消息时,在第二消息内部设定的位置(设定字节)加入能够表征第二消息的消息类型的标识或字符即可。运算量要求极低,且不用设置繁杂的逻辑判断。
69.本实施例中,第二消息通过广播的形式被第一处理模块发出,使得发送方不需要知道车载通讯装置内都有哪些功能模块,也不需要确定谁来接收第二消息。如此,即便第一功能模块是新设置在车载通讯装置内的,也可以直接兼容车载通信装置内的通讯体系,而不需要在新的功能模块加入车载通讯装置后,修改每一功能模块的内部的配置文件等,以告知有新模块加入了车载通讯装置。以此实现了高效且简洁的新功能模块加入。
70.相应的,在本技术的一种示例性实施例中,所述确定所述第一消息的消息类型,包括:
71.获取所述第一消息内的设定字段的目标内容,所述目标内容用于表征所述第一消息的消息类型。
72.其中,目标内容即为预先设定好的能够表征消息类型的标识或字符,本实施例中,以数字的方式表征不同的消息类型。车载通讯装置内的所有功能模块,遵循统一的消息类型表征方式,以使每一功能模块和消息处理模块都能以统一的标准区分和确定每一消息的消息类型。
73.具体的,第一消息和第二消息内部可以包括消息类型字段、消息长度字段和消息内容字段。消息内容字段用于存储表征消息类型的标识或字符,消息长度字段表示本次通信的包含的消息长度,消息内容字段则存储具体的消息内容。
74.在本技术的一种示例性实施例中,在所述接收第二消息处理模块发送的第一消息之前,所述方法还包括:
75.接收所述第一功能模块发送的注册信息;所述注册信息包括与所述第一功能模块对应的至少一个目标消息类型;
76.存储所述注册信息。
77.所述确定所述消息类型是否为所述第一功能模块对应的目标消息类型,包括:
78.将所述第一消息的消息类型与所述注册信息进行对比,确定所述注册信息内是否具有与所述第一消息的消息类型相同的目标消息类型。
79.本实施例中,第一功能模块会在设定的节点向其对应的第一消息处理模块发送注册信息。以以告知第一消息处理模块,自己关注的目标消息类型。以使得第一消息处理模块
能够根据注册信息判断接收到的第一消息是否需要发送给第一功能模块。其中,注册消息可以以向量、集合或列表等形式存在,注册消息内部存储了第一功能模块当前关注的所有目标消息类型。同时,第一功能模块也可以在自身职能或需求发生改变后,重新向第一处理模块发送新的注册消息,以更新第一消息处理模块存储的注册信息。
80.请参考图2,为第一功能模块、第一消息处理模块、第二功能模块和第二消息处理模块之间的处理流程时序示意图。
81.在本技术的一种示例性实施例中,所述第一消息处理模块,为所述车载通讯装置响应于所述第一功能模块的启动建立的。
82.本实施例中,第一消息处理模块并不是一直存在的模块,而是响应于第一功能模块的启动,通过调用车载通讯装置内的资源(如dbus)实时建立的,相应的,在第一功能模块关闭后,第一消息处理模块也关闭,其调用的资源相应得到释放。如此,在第一功能模块不工作的时候,第一消息处理模块调用的资源可以得到释放,以进行其他的工作。实现了动态调节车载通讯装置内的资源,达到了资源合理利用的目的。值得说明的是,由于第一功能模块关闭后第一消息处理模块会被释放,所以每次第一功能模块启动后,且在第一消息处理模块建立后,第一功能模块需要向第一消息处理模块发送注册信息,以使第一消息处理模块能够正常工作。
83.在本技术的一种示例性实施例中,在所述将所述第一消息发送至所述第一功能模块之后,所述方法还包括:
84.向所述第一功能模块发送通知信息;
85.其中,所述通知信息用于告知所述第一功能模块所述第一消息已到达。
86.本实施例中,第一消息处理模块在将第一消息发送至第一功能模块后,会向第一功能模块发送通知信息,以告知第一功能模块所述第一消息已到达,使第一功能模块及时读取第一消息进行处理。
87.相应的,在本技术的一种示例性实施例中,在所述向所述第一功能模块发送通知信息之后,所述方法还包括:
88.接收所述第一功能模块发送的反馈信息;
89.其中,所述反馈信息为所述第一功能模块将所述第一消息添加至消息队列后,向所述第一消息处理模块发送的;所述反馈信息用于通知所述第一消息处理模块已接收到所述第一消息,以使所述第一消息处理模块能够继续向所述第一功能模块发送消息。
90.在实际应用中,第一消息处理模块经常会连续接收到多条消息,为了使得消息有序且有效的发送至第一功能模块,第一消息处理模块会在接收所述第一功能模块发送的反馈信息后,才会继续发送新的消息。而第一功能模块为了提高消息的发送和接收效率,以及消息的按序处理,会将接收到的消息先存储到消息队列中,然后根据消息存入消息队列的顺序进行依次取用进行处理。同时,在第一消息添加入消息队列后,就会给第一消息处理模块发送反馈信息,以使第一消息处理模块能够继续向所述第一功能模块发送消息。相较于通常采用的才对消息完成处理后才发送反馈信息,本实施例中,第一功能模块通过消息队列存储第一消息,并在完成存储后就发送反馈消息,而不用等第一消息处理完成或开始处理后才发送。避免了后续的消息堵塞在第一消息处理模块中,加快的消息的传输效率,且降低了第一消息处理模块的工作压力,使得第一消息处理模块在建立时只需要调用较小的寄
存器或存储器资源(如只需要预留存储2-10条消息的存储空间)。
91.根据本技术的一个方面,提供一种车载通讯装置,包括:
92.第一功能模块;
93.第一消息处理模块,与所述第一功能模块具有对应关系;
94.至少一个第二功能模块,每一所述第二功能模块均具有对应的第二消息处理模块;
95.其中,所述第一消息处理模块用于执行以下方法:
96.接收第二消息处理模块发送的第一消息;
97.确定所述第一消息的消息类型;
98.在所述消息类型为所述第一功能模块对应的目标消息类型的情况下,将所述第一消息发送至所述第一功能模块。
99.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
100.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
101.在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
102.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
103.根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
104.电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
105.其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
106.储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。
107.储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
108.总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制
器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
109.电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
110.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
111.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
112.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
113.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
114.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
115.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远
程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
116.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
117.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
118.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1