一种基于可见光通讯的数据隔离交换方法和装置与流程

文档序号:26533814发布日期:2021-09-04 14:45阅读:68来源:国知局
一种基于可见光通讯的数据隔离交换方法和装置与流程

1.本发明涉及可见光通讯技术领域,具体涉及一种基于可见光通讯的数据隔离交换方法和系统。


背景技术:

2.可见光通讯可见光通信技术(visible light communication,vlc)是指利用可见光波段的光作为信息载体,在空气中直接传输光信号的通信方式。可见光通信技术绿色低碳、可实现近乎零耗能通信,还可有效避免无线电通信电磁信号泄露等弱点,快速构建抗干扰、抗截获的安全信息空间。
3.可见光通讯可以实现高速的数据通讯,同时由于可见光的可见、单向性可用可见光做数据隔离交换使用,实现数据的单向传输,同时保证数据传输的可见。可见光在用在单向隔离数据交换系统中,由于数据交换双方只存在单向数据流向,在数据传输过程如何进行数据同步,同时如何保证数据传输过程的数据不丢失,是通常难以解决的问题。
4.因此如何设计一种基于可见光通讯的数据隔离交换方法,能够在数据单向传输过程中保证数据同步和数据丢失是目前急需解决的问题。


技术实现要素:

5.本发明针对上述问题,有必要提供一种基于可见光通讯的数据隔离交换方法,能够在数据单向传输过程中保证数据同步,防止数据丢失。
6.本发明第一方面提出一种基于可见光通讯的数据隔离交换方法,应用于可见光发送方,所述方法包括以下步骤:所述可见光发送方,在被置入同步通信规则后,将所述同步通信规则中的起始报文通过可见光单向传输通道发送给可见光接收方,以使所述可见光接收方能够基于接收的起始报文进入数据同步状态,同时等待接收第一业务系统发送的业务数据帧;所述可见光发送方,接收到业务数据帧后, 依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装,获得至少一个业务数据报文,并将业务数据报文通过可见光单向传输通道发送至所述可见光接收方,同时累计已发送的业务数据帧的数据长度;所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;所述可见光发送方,在已发送的业务数据帧的累计数据长度达到所述报文控制信息中的数据长度时,将所述同步通信规则中的结束报文通过可见光单向传输通道发送给可见光接收方,以使所述可见光接收方能够基于接收的结束报文终止数据同步状态,同时清除所述同步通信规则。
7.基于上述,所述同步通信规则还包括第一预设次数和第二预设次数;在被置入同步通信规则后,所述可见光发送方按照第一预设次数将所述同步通信规则中的起始报文通过可见光单向传输通道发送给可见光接收方;
所述可见光发送方,在已发送的业务数据帧的累计数据长度达到所述报文控制信息中的数据长度时,按照第二预设次数将所述同步通信规则中的结束报文通过可见光单向传输通道发送给可见光接收方。
8.基于上述,在累计发送的业务数据帧的数据长度未达到所述报文控制信息中的数据长度、且未接收到第一业务系统发送的下一个业务数据帧时,所述可见光发送方将本次发送的运算结果和业务数据报文进行重发,以使得所述可见光接收方可以根据重发的业务数据报文方补齐丢失的报文数据。
9.基于上述,所述可见光发送方获得业务数据报文后,对业务数据报文进行逻辑运算,将运算结果随业务数据报文一起通过可见光单向传输通道发送至所述可见光接收方,以使得所述可见光接收方能够基于接收的运算结果和业务数据报文判断本次报文传输状态;所述可见光发送方在发送业务数据报文后,通过图像采集装置采集所述可见光接收方的用于显示本次报文传输状态的状态指示灯的状态图片,识别所述状态指示灯的颜色,根据所述状态指示灯的颜色确定本次报文传输状态,并在本次报文传输状态为异常传输时,将本次发送的运算结果和业务数据报文进行重发。
10.本发明第二方面提供一种基于可见光通讯的数据隔离交换方法,应用于可见光接收方,所述数据隔离交换方法包括以下步骤:所述可见光接收方,在被置入同步通信规则后, 根据所述同步通信规则判断接收的报文为起始报文时,进入数据同步状态;所述同步通信规则包括起始报文、结束报文和报文控制信息,所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;数据同步状态下,所述可见光接收方通过可见光单向传输通道接收到报文后,根据所述同步通信规则判断当前报文为业务数据报文时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧,累计已接收的业务数据帧的数据长度;根据所述同步通信规则判断当前报文为结束报文时,且累计接收的业务数据帧的数据长度达到所述报文控制信息中的数据长度时,将累计获取的业务数据帧发送给第二业务系统,同时结束数据同步状态,清除所述同步通信规则。
11.根据所述同步通信规则判断接收的报文为起始报文时根据所述同步通信规则判断当前报文为业务数据报文时根据所述同步通信规则判断当前报文为结束报文时基于上述,所述同步通信规则还包括第一预设次数和第二预设次数;所述可见光发送方根据所述同步通信规则判断当前报文的类型为起始报文后,累计所述起始报文的发送次数,并在所述起始报文的累计发送次数达到第一预设次数时,进入数据同步状态;所述可见光发送方根据所述同步通信规则判断当前报文的类型为结束报文后,累计所述结束报文的发送次数,并在所述结束报文的累计发送次数达到第二预设次数时,结束数据同步状态。
12.基于上述,当当前报文为业务数据报文时,所述可见光接收方根据所述报文控制信息里的报文长度判断本次报文传输状态是否为异常传输,若为异常传输,则在接收到相同报文序列信息的业务数据报文时,根据新接收的业务数据报文进行丢失数据的复原;若不为异常传输,则在接收到相同报文序列信息的业务数据报文时,直接丢弃新接收的业务
数据报文。
13.基于上述,若在接收到业务数据报文的同时还接收到运算结果,则所述可见光接收方对业务数据报文进行逻辑运算,将计算得到的运算结果与接收的运算结果进行比对,并在比对结果一致时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧;所述可见光接收方还根据比对结果控制状态指示灯发光,以使得所述可见光发送方通过图像采集装置采集所述状态指示灯的状态图片,识别所述状态指示灯的颜色,根据所述状态指示灯的颜色确定本次报文传输状态,并在本次报文传输状态为异常传输时,将本次发送的运算结果和业务数据报文进行重发。
14.本发明第三方面提供一种基于可见光通讯的数据隔离交换装置,应用于可见光发送方,所述数据隔离交换装置包括第一业务模块、第一处理模块和发送模块,所述第一处理模块分别与所述第一业务模块和所述发送模块单向连接;所述第一业务模块,用于接收第一业务系统下发的业务数据报文,并发送给所述第一处理模块;所述第一处理模块,用于在被置入同步通信规则后,将所述同步通信规则中的起始报文发送至所述发送模块,同时等待接收第一业务系统发送的业务数据帧;用于在接收到业务数据帧后, 依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装,获得至少一个业务数据报文,并将业务数据报文发送至所述发送模块,同时累计已发送的业务数据帧的数据长度;所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;用于在已发送的业务数据报文的累计数据长度达到所述报文控制信息中的数据长度时,将所述同步通信规则中的结束报文发送至所述发送模块,同时清除所述同步通信规则;所述发送模块,用于将所述起始报文、所述结束报文和所述业务数据报文转换为可见光信号,通过可见光单向传输通道发送至所述可见光接收方。
15.本发明第四方面提供一种基于可见光通讯的数据隔离交换装置,应用于可见光接收方,所述数据隔离交换装置包括第二业务模块、第二处理模块和接收模块,所述第二处理模块分别与所述接收模块和所述第二业务模块单向连接;所述接收模块,用于接收所述发送模块发送的可见光信号,并转换为数据信号获得报文;所述第二处理模块,用于在被置入同步通信规则后, 根据所述同步通信规则判断接收的报文为起始报文时,进入数据同步状态;所述同步通信规则包括起始报文、结束报文和报文控制信息,所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;用于在数据同步状态下接收到报文后,根据所述同步通信规则判断当前报文为业务数据报文时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧,累计已接收的业务数据帧的数据长度;用于根据所述同步通信规则判断当前报文为结束报文时,且累计接收的业务数据帧的数据长度达到所述报文控制信息中的数据长度时,将累计获取的业务数据帧发送给所述第二业务模块,同时结束数据同步状态,清除所述同步通信规则;根据所述同步通信规则判断接收的报文为起始报文时根据所述同步通信规则判
断当前报文为业务数据报文时根据所述同步通信规则判断当前报文为结束报文时所述第二业务模块,用于向第二业务系统发送累计的业务数据帧。
16.本发明具有突出的实质性特点和显著的进步,具体的说:(1)本发明通过可见光发送方和可见光接收方分别预先内置同步通信规则,能够保证可见光发送方和可见光接收方可以预先获知业务数据报文相关信息,用于后续进行数据同步,保证数据传输的正确性;(2)可见光发送方在发送业务数据帧之前,循环将起始报文通过可见光单向传输通道发送至可见光接收方进行判定并准备接收数据;可见光发送方将要发送的业务数据帧依据报文控制信息进行数据拆分和重组处理后,通过可见光单向传输通道依次发送至可见光接收方;(3)可见光发送方在发送完业务数据帧后,判定累计的业务数据报文是否达到报文控制信息中的数据长度,若未达到,则可见光发送方通过重发业务数据帧至所述可见光接收方,直至接收到要发送的下一业务数据报文;若达到,则自动封装所述结束报文,并通过可见光单向传输通道循环发送至可见光接收方;通过判别数据长度保证数据传输的同步性,防止数据丢失;(4)可见光接收方根据接收到的业务数据帧进行重新组包和执行相关操作;能够使得可见光发送方按照一定的数据报文要求对业务数据报文进行封包,以及可见光接收方通过预先接收的报文相关信息对业务数据报文进行重新组包和判别,保证数据同步;(5)通过对数据拆分和重组处理后的每一数据包进行逻辑运算后,将运算结果附在要发送的业务数据报文后一起发送;以及设置显示屏进行数据传输状态显示均能够保证数据传输同步,防止数据丢失。
17.本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
18.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1示出本发明实施例1所述的数据隔离交换方法流程图;图2示出本发明业务数据帧中起始报文、结束报文和报文控制信息的相关内容;图3示出本发明实施例2所述的数据隔离交换方法流程图;图4示出本发明实施例3所述的数据隔离交换方法流程图;图5示出本发明实施例6所述的数据隔离交换系统的结构示意图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另
一个组件或者可能同时存在居中组件。
21.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
22.实施例1如图1所示,本实施例提供一种基于可见光通讯的数据隔离交换方法,应用于可见光发送方,所述方法包括以下步骤:所述可见光发送方,在被置入同步通信规则后,将所述同步通信规则中的起始报文通过可见光单向传输通道发送给可见光接收方,以使所述可见光接收方能够基于接收的起始报文进入数据同步状态,同时等待接收第一业务系统发送的业务数据帧;所述可见光发送方,接收到业务数据帧后, 依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装,获得至少一个业务数据报文,并将业务数据报文通过可见光单向传输通道发送至所述可见光接收方,同时累计已发送的业务数据帧的数据长度;所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;所述可见光发送方,在已发送的业务数据帧的累计数据长度达到所述报文控制信息中的数据长度时,将所述同步通信规则中的结束报文通过可见光单向传输通道发送给可见光接收方,以使所述可见光接收方能够基于接收的结束报文终止数据同步状态,同时清除所述同步通信规则。
23.可以理解,所述报文控制信息可以由管理端生成并下发给所述可见光发送方,也可以由所述可见光发送方自动生成,还可以通过硬盘形式拷贝进所述可见光发送方。
24.所述同步通信规则还包括第一预设次数和第二预设次数;在被置入同步通信规则后,所述可见光发送方按照第一预设次数将所述同步通信规则中的起始报文通过可见光单向传输通道发送给可见光接收方;所述可见光发送方,在已发送的业务数据帧的累计数据长度达到所述报文控制信息中的数据长度时,按照第二预设次数将所述同步通信规则中的结束报文通过可见光单向传输通道发送给可见光接收方。
25.如图2所示,在实际应用中,所述起始报文包括报文起始位、报文长度、报文内容和报文终止位;所述结束报文包括报文起始位、报文长度、报文内容和报文终止位。其中,所述起始报文和所述结束报文的内容可以由用户自行设定。
26.具体的,所述报文控制信息包含报文起始位、报文终止位、报文长度、数据长度、报文序列信息、填充信息等同步信息;所述填充信息包含填充字段和填充长度以及填充长度指示位,所述填充字段可以为但不限定为0xff,所述填充长度指示位为填充长度所在数据包的位置,可以但不限定于报文起始位之后;所述数据长度信息为本次数据交换传输的数据总长度;所述报文序列信息用于指示报文序列指示位,以及报文序列号处理方式方式,所述报文序列号处理方式可以是但不限定递增或者递减方式。
27.例如,所述业务数据报文包含起始位、终止位、报文内容三部分,所述业务数据报文可以但不限定其长度为512字节,报文内容可以但不限定为0xff,报文起始字段可以为但不限定为0xaa,报文结束字段可以但不限定为0x55。
28.可以理解,在依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装时,先计算业务数据帧n/报文长度k,获得分组个数m,其中,若业务数据帧/报文长度为整数,则分组个数m=业务数据帧/报文长度,每个分组的报文长度=报文长度k;若业务数据帧/报文长度不为整数,则分组个数m=[业务数据帧/报文长度]+1,[业务数据帧/报文长度]为对业务数据帧/报文长度向下取整操作;其中,前[业务数据帧/报文长度]个分组内报文长度=报文长度k,最后一个分组内包括剩余报文和填充报文,以使得最后一个分组的报文长度=报文长度k。分组结束后,为每个分组添加上报文起始位、报文终止位和报文序列信息。
[0029]
当可见光在用在单向隔离数据交换系统中,由于数据交换双方只存在单向数据流向,在数据传输过程极易出现数据丢失问题,为了防止数据丢失,在累计发送的业务数据帧的数据长度未达到所述报文控制信息中的数据长度时,所述可见光发送方循环重发本次发送的业务数据报文至所述可见光接收方,直至接收到第一业务系统发送的下一帧业务数据报文。
[0030]
为了防止数据丢失,所述可见光发送方获得业务数据报文后,对业务数据报文进行逻辑运算,将运算结果随业务数据报文一起通过可见光单向传输通道发送至所述可见光接收方,以使得所述可见光接收方能够基于接收的运算结果和业务数据报文判断本次报文传输状态;所述可见光发送方在发送业务数据报文后,通过图像采集装置采集所述可见光接收方的用于显示本次报文传输状态的状态指示灯的状态图片,识别所述状态指示灯的颜色,根据所述状态指示灯的颜色确定本次报文传输状态,并在本次报文传输状态为异常传输时,将本次发送的运算结果和业务数据报文进行重发。。
[0031]
为了防止数据丢失,在累计发送的业务数据帧的数据长度未达到所述报文控制信息中的数据长度、且未接收到第一业务系统发送的下一个业务数据帧时,所述可见光发送方将本次发送的运算结果和业务数据报文进行重发,以使得所述可见光接收方可以根据重发的业务数据报文方补齐丢失的报文数据。
[0032]
实施例2本实施例提供一种基于可见光通讯的数据隔离交换方法,应用于可见光接收方,如图3所示,所述方法包括以下步骤:所述可见光接收方,在被置入同步通信规则后, 根据所述同步通信规则判断接收的报文为起始报文时,进入数据同步状态;所述同步通信规则包括起始报文、结束报文和报文控制信息,所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;数据同步状态下,所述可见光接收方通过可见光单向传输通道接收到报文后,根据所述同步通信规则判断当前报文为业务数据报文时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧,累计已接收的业务数据帧的数据长度;根据所述同步通信规则判断当前报文为结束报文时,且累计接收的业务数据帧的数据长度达到所述报文控制信息中的数据长度时,将累计获取的业务数据帧发送给第二业务系统,同时结束数据同步状态,清除所述同步通信规则。
[0033]
根据所述同步通信规则判断当前报文为业务数据报文时根据所述同步通信规则判断当前报文为结束报文时
可以理解,所述报文控制信息可以由管理端生成并下发给所述可见光接收方,也可以由所述可见光接收方自动生成,还可以通过硬盘形式拷贝进所述可见光接收方。在具体实施时,所述同步通信规则还包括第一预设次数和第二预设次数;所述可见光发送方根据所述同步通信规则判断当前报文的类型为起始报文后,累计所述起始报文的发送次数,并在所述起始报文的累计发送次数达到第一预设次数时,进入数据同步状态;所述可见光发送方根据所述同步通信规则判断当前报文的类型为结束报文后,累计所述结束报文的发送次数,并在所述结束报文的累计发送次数达到第二预设次数时,结束数据同步状态。
[0034]
进一步的,当当前报文为业务数据报文时,所述可见光接收方根据所述报文控制信息里的报文长度判断本次报文传输状态是否为异常传输,若为异常传输,则在接收到相同报文序列信息的业务数据报文时,根据新接收的业务数据报文进行丢失数据的复原;若不为异常传输,则在接收到相同报文序列信息的业务数据报文时,直接丢弃新接收的业务数据报文。
[0035]
实施例3为了使本领域的技术人员能更加清楚的理解上述数据隔离交换过程,如图4所示,本实施例从可见光发送方和可见光接收方进行数据交换过程进行详细的描述。
[0036]
所述可见光发送方,在被置入同步通信规则后,将所述同步通信规则中的起始报文通过可见光单向传输通道发送给可见光接收方;所述可见光接收方接收到报文后,在被置入同步通信规则后,根据所述同步通信规则判断接收的报文为起始报文时,进入数据同步状态;所述可见光发送方,接收到业务数据帧后, 依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装,获得至少一个业务数据报文,并将业务数据报文通过可见光单向传输通道发送至所述可见光接收方,同时累计已发送的业务数据帧的数据长度;所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;所述可见光接收方通过可见光单向传输通道接收到报文后,根据所述同步通信规则判断当前报文为业务数据报文时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧,累计已接收的业务数据帧的数据长度;根据所述同步通信规则判断当前报文为业务数据报文时所述可见光发送方,在已发送的业务数据帧的累计数据长度达到所述报文控制信息中的数据长度时,将所述同步通信规则中的结束报文通过可见光单向传输通道发送给可见光接收方,以使所述可见光接收方能够基于接收的结束报文终止数据同步状态,同时清除所述同步通信规则;所述可见光接收方,根据所述同步通信规则判断当前报文为结束报文时,且累计接收的业务数据帧的数据长度达到所述报文控制信息中的数据长度时,将累计获取的业务数据帧发送给第二业务系统,同时结束数据同步状态,清除所述同步通信规则根据所述同步通信规则判断当前报文为结束报文时。
[0037]
实施例4本实施例提供一种基于可见光通讯的数据隔离交换装置,所述数据隔离交换装置应用于可见光发送方,具体的,
所述数据隔离交换装置包括第一业务模块、第一处理模块和发送模块,所述第一处理模块分别与所述第一业务模块和所述发送模块单向连接;所述第一业务模块,用于接收第一业务系统下发的业务数据报文,并发送给所述第一处理模块;所述第一处理模块,用于在被置入同步通信规则后,将所述同步通信规则中的起始报文发送至所述发送模块,同时等待接收第一业务系统发送的业务数据帧;用于在接收到业务数据帧后, 依据所述同步通信规则中的报文控制信息将所述业务数据帧进行封装,获得至少一个业务数据报文,并将业务数据报文发送至所述发送模块,同时累计已发送的业务数据帧的数据长度;所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;用于在已发送的业务数据报文的累计数据长度达到所述报文控制信息中的数据长度时,将所述同步通信规则中的结束报文发送至所述发送模块,同时清除所述同步通信规则;所述发送模块,用于将所述起始报文、所述结束报文和所述业务数据报文转换为可见光信号,通过可见光单向传输通道发送至所述可见光接收方。
[0038]
实施例5本实施例提供一种基于可见光通讯的数据隔离交换装置,所述数据隔离交换装置应用于可见光接收方,具体的,所述数据隔离交换装置包括第二业务模块、第二处理模块和接收模块,所述第二处理模块分别与所述接收模块和所述第二业务模块单向连接;所述接收模块,用于接收所述发送模块发送的可见光信号,并转换为数据信号获得报文;所述第二处理模块,用于在被置入同步通信规则后, 根据所述同步通信规则判断接收的报文为起始报文时,进入数据同步状态;所述同步通信规则包括起始报文、结束报文和报文控制信息,所述报文控制信息包括报文起始位、报文终止位、报文长度、数据长度、报文序列信息和填充信息;用于在数据同步状态下接收到报文后,根据所述同步通信规则判断当前报文为业务数据报文时,根据所述报文控制信息对所述业务数据报文进行解封装,获得业务数据帧,累计已接收的业务数据帧的数据长度;用于根据所述同步通信规则判断当前报文为结束报文时,且累计接收的业务数据帧的数据长度达到所述报文控制信息中的数据长度时,将累计获取的业务数据帧发送给所述第二业务模块,同时结束数据同步状态,清除所述同步通信规则;根据所述同步通信规则判断当前报文为业务数据报文时根据所述同步通信规则判断当前报文为结束报文时所述第二业务模块,用于向第二业务系统发送累计的业务数据帧。
[0039]
实施例6如图5所示,本实施例提供一种基于可见光通讯的数据隔离交换系统,所述系统包括管理端、第一数据加密通讯装置和第二数据加密通讯装置,所述第一数据加密通讯装置采用实施例4所述的数据加密通讯装置,所述第二数据加密通讯装置采用实施例5所述的数据加密通讯置;所述管理端分别与所述第一数据加密通讯装置的第一处理模块和所述第二数据加密通讯装置的第二处理模块进行单向连接,所述第一数据加密通讯装置的发送模块
和所述第二数据加密通讯装置的接收模块进行单向连接。
[0040]
在使用前,所述同步通信规则由管理端生成并下发给所述可见光发送方和所述可见光接收方。
[0041]
在其他实施例中,所述同步通信规则也可以由内置有相同密码模块的可见光发送方和所述可见光接收方各自自动生成,还可以通过硬盘形式将同一通讯规则分别拷贝进所述可见光发送方和所述可见光接收方。
[0042]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1