摄像机远程升级方法、装置、电子设备及可读存储介质与流程

文档序号:19020169发布日期:2019-11-01 20:37阅读:251来源:国知局
摄像机远程升级方法、装置、电子设备及可读存储介质与流程

本申请涉及视频监控技术,尤其涉及一种摄像机远程升级方法、装置、电子设备及可读存储介质。



背景技术:

随着视频监控技术的发展,视频监控的应用越来越广泛。在视频监控使用过程中,会出现摄像机需要进行升级的情况。为了提高摄像机升级效率,目前视频监控领域通常采用摄像机远程升级的方式对摄像机进行升级。

然而实践发现,目前的摄像机远程升级方案中,后端设备会将升级包划分为多个子包,并在每次向摄像机传输一个子包之后,等待摄像机反馈的应答消息,并当确定摄像机接收该子包成功时,再传输下一个子包,升级包发送效率较差。



技术实现要素:

有鉴于此,本申请提供一种摄像机远程升级方法、装置、电子设备及可读存储介质。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种摄像机远程升级方法,应用于视频监控系统的后端设备,所述方法包括:

将摄像机升级使用的升级包划分为第一数量的子包;

向所述摄像机发送子包序列;其中,子包序列中包括的子包的数量小于所述第一数量;

当根据所述摄像机发送的子包序列接收应答消息确定所述摄像机成功接收所述子包序列时,向所述摄像机发送下一个子包序列,直至所述升级包发送完成;其中,所述子包序列接收应答消息由所述摄像机在完成子包序列接收或等待时长达到预设时长时发送。

可选的,所述方法还包括:

对于任一子包序列,当确定所述摄像机接收该子包序列失败,且该子包序列重传次数未达到第一预设次数时,对该子包序列进行重传;

当确定所述摄像机接收该子包序列失败,且该子包序列重传次数达到所述第一预设次数时,确定所述摄像机升级失败。

可选的,所述向所述摄像机发送子包序列之前,还包括:

向所述摄像机发送协议头;所述协议头中包括协议头关键字、升级包总字节数、子包序列中的子包数以及总校验和;所述协议头关键字用于标识所述协议头,所述总校验和用于所述摄像机成功接收最后一个子包序列时对所述升级包进行校验;

当确定所述摄像机接收所述协议头失败,且协议头重传次数未达到第二预设次数时,对所述协议头进行重传;

当确定所述摄像机接收所述协议头失败,且协议头重传次数达到第二预设次数时,确定所述摄像机升级失败;

当确定所述摄像机接收所述协议头成功时,确定执行所述向所述摄像机发送子包序列的步骤。

可选的,所述确定所述摄像机接收所述协议头成功之后,每一次向所述摄像机发送子包序列之前,还包括:

向所述摄像机发送序列头;所述序列头中包括序列头关键字,所述序列头关键字用于标识所述序列头;

当确定所述摄像机接收所述序列头失败,且序列头重传次数未达到第三预设次数时,对所述序列头进行重传;

当确定所述摄像机接收所述序列头失败,且序列头重传次数达到第三预设次数时,确定所述摄像机升级失败;

当确定所述摄像机接收所述序列头成功时,确定执行所述向所述摄像机发送子包序列的步骤。

可选的,所述序列头中还包括绝对包编号,所述绝对包编号用于与该序列头对应的子包序列中各子包携带的相对包编号一起确定实际包编号。

可选的,所述向所述摄像机发送子包序列,包括:

利用消隐区同轴数据区向所述摄像机发送子包序列。

可选的,所述方法还包括:

当接收到所述摄像机发送的升级包接收成功应答消息时,确定所述摄像机升级成功;其中,所述升级包接收成功应答消息由所述摄像机完成升级包接收时对所述升级包校验通过后发送。

根据本申请实施例的第二方面,提供一种摄像机远程升级装置,应用于视频监控系统的后端设备,所述装置包括:

划分单元,用于将摄像机升级使用的升级包划分为第一数量的子包;

发送单元,用于向所述摄像机发送子包序列;其中,子包序列中包括的子包的数量小于所述第一数量;

接收单元,用于接收所述摄像机发送的子包序列接收应答消息;其中,所述子包序列接收应答消息由所述摄像机在完成子包序列接收或等待时长达到预设时长时发送;

确定单元,用于根据所述摄像机发送的子包序列接收应答消息确定所述摄像机成功接收所述子包序列是否成功;

所述发送单元,还用于若所述摄像机成功接收所述子包序列,则向所述摄像机发送下一个子包序列,直至所述第一数量的子包发送完成。

可选的,所述发送单元,还用于对于任一子包序列,当确定所述摄像机接收该子包序列失败,且该子包序列重传次数未达到第一预设次数时,对该子包序列进行重传;

所述确定单元,还用于当确定所述摄像机接收该子包序列失败,且该子包序列重传次数达到所述第一预设次数时,确定所述摄像机升级失败。

可选的,所述发送单元,还用于向所述摄像机发送子包序列之前,向所述摄像机发送协议头;所述协议头中包括协议头关键字、升级包总字节数、子包序列中的子包数以及总校验和;所述协议头关键字用于标识所述协议头,所述总校验和用于所述摄像机成功接收最后一个子包序列时对所述升级包进行校验;

所述发送单元,还用于当所述确定单元确定所述摄像机接收所述协议头失败,且协议头重传次数未达到第二预设次数时,对所述协议头进行重传;

所述确定单元,还用于当确定所述摄像机接收所述协议头失败,且协议头重传次数达到第二预设次数时,确定所述摄像机升级失败;

所述发送单元,还用于当所述确定单元确定所述摄像机接收所述协议头成功时,向所述摄像机发送子包序列。

可选的,所述发送单元,还用于当确定所述摄像机接收所述协议头成功之后,在每一次向所述摄像机发送子包序列之前,向所述摄像机发送序列头;所述序列头中包括序列头关键字,所述序列头关键字用于标识所述序列头;

所述发送单元,还用于当所述确定单元确定所述摄像机接收所述序列头失败,且序列头重传次数未达到第三预设次数时,对所述序列头进行重传;

所述确定单元,还用于当确定所述摄像机接收所述序列头失败,且序列头重传次数达到第三预设次数时,确定所述摄像机升级失败;

所述发送单元,还用于当所述确定单元确定所述摄像机接收所述序列头成功时,向所述摄像机发送子包序列。

可选的,所述序列头中还包括绝对包编号,所述绝对包编号用于与该序列头对应的子包序列中各子包携带的相对包编号一起确定实际包编号。

可选的,所述发送单元,具体用于利用消隐区同轴数据区向所述摄像机发送子包序列。

可选的,所述确定单元,还用于当所述接收单元接收到所述摄像机发送的升级包接收成功应答消息时,确定所述摄像机升级成功;其中,所述升级包接收成功应答消息由所述摄像机完成升级包接收时对所述升级包校验通过后发送。

根据本申请实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述摄像机远程升级方法。

根据本申请实施例的第四方面,提供一种机器可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述摄像机远程升级方法。

本申请实施例的摄像机远程升级方法,通过将摄像机升级使用的升级包划分为第一数量的子包,并向摄像机发送子包序列,当根据摄像机发送的子包序列接收应答消息确定摄像机成功接收子包序列时,向摄像机发送下一个子包序列,直至升级包发送完成,提高了升级包数据传输的效率,进而提高了摄像机远程升级的效率。

附图说明

图1是本申请一示例性实施例示出的一种摄像机远程升级方法的流程图;

图2是本申请一示例性实施例示出的一种摄像机远程升级的场景示意图;

图3是本申请一示例性实施例示出一种的摄像机远程升级方法的流程图;

图4是本申请一示例性实施例示出的一种摄像机远程升级装置的结构示意图;

图5是本申请一示例性实施例示出的一种摄像机远程升级装置的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

请参见图1,为本申请实施例提供的一种摄像机远程升级方法的流程示意图,其中,该摄像机远程升级方法可以应用于视频监控系统的后端设备,如图1所示,该摄像机远程升级方法可以包括以下步骤:

为便于描述,下文中所提及的摄像机均指需要远程升级的摄像机,本申请实施例后续不再复述。

步骤s100、将摄像机升级使用的升级包划分为第一数量的子包。

本申请实施例中,摄像机升级使用的升级包可以通过usb(universalserialbus,通用串行总线)或网络传输等方式传输给后端设备。

后端设备获取到摄像机升级使用的升级包时,可以将摄像机使用的升级包划分为一定数量(本文中称为第一数量)的子包。

在一个示例中,后端设备可以根据升级包的大小,以及后端设备每次传输的最大数据量对升级包进行子包划分。

例如,假设升级包大小为p字节,后端设备每次传输的最大数据量为m字节,则第一数量可以为其中,为对“*”向上取整。

需要说明的是,在本申请实施例中,子包的大小也可以小于后端设备每次传输的最大数据量,其具体实现在此不做赘述。

步骤s110、向摄像机发送子包序列;其中,子包序列中包括的子包的数量小于第一数量。

步骤s120、当根据摄像机发送的子包序列接收应答消息确定摄像机成功接收该子包序列时,向摄像机发送下一个子包序列,直至升级包发送完成。

本申请实施例中,为了提高升级包传输效率,后端设备进行升级包数据传输时,不再每发一个子包均等待摄像机的应答消息,而是将第一数量的子包划分为若干个子包序列,并以子包序列为单元进行数据传输;摄像机接收升级包数据时,不再每接收到一个子包均回复应答消息,而是每接收到一个子包序列回复一次应答消息。

相应地,在本申请实施例中,后端设备将升级包划分为第一数量的子包之后,可以依次选择一定数量(该数量小于第一数量)的子包组成子包序列,并向摄像机传输子包序列。

其中,除最后一个子包序列之外,各子包序列中包括的子包的数量需要不小于2个。

需要说明的是,在本申请实施例中,不同子包序列中子包数量可以相同或不相同。

为便于理解,下文中以不同子包序列中子包数量相同为例进行说明。

本申请实施例中,子包序列中子包的数量可以由后端设备和摄像机之间预先协商,或者,可以由后端设备开始向摄像机传输子包序列之前通知给摄像机。

当摄像机开始接收子包序列中的子包(即接收到子包序列中的第一个子包)时,摄像机可以统计接收到的子包数量,并当接收到的子包的数量达到子包序列中包括的子包数量(下文中称为第二数量)时,摄像机可以向后端设备回复子包序列接收应答消息(下文中简称为第一应答消息)。

需要说明的是,在本申请实施例中,为了避免子包序列传输过程中由于网络故障等原因导致摄像机一直无法接收到第二数量的子包,导致摄像机无法一直无法向后端设备回复第一应答消息,进而导致摄像机升级失败,可以预先在摄像机中设置一个等待时长(可以根据实际场景设定),当摄像机接收到上一个子包(子包序列的最后一个子包)之后在该等待时长内未再接收到子包;或者,当摄像机接收到子包序列的第一个子包之后在该等待时长内未接收到该子包序列的最后一个子包(接收到的子包数量未达到第二数量)时,摄像机也可以向后端设备回复第一应答消息。

其中,摄像机向后端设备回复的第一应答消息中可以携带摄像机接收到的子包数量(每一子包序列对应一个应答消息,该子包数量为新接收一个子包序列时接收到的子包数量)以及接收到的最后一个子包的编号。

本申请实施例中,后端设备向摄像机发送一个子包序列之后,在接收到摄像机发送的第一应答消息时,可以根据第一应答消息中携带的子包数量以及最后一个子包的编号确定摄像机是否成功接收该子包序列。

其中,若第一应答消息中携带的子包数量与后端设备向摄像机发送的该子包序列中包括的子包数量相同,且最后一个子包的编号为该子包序列中最后一个子包的编号,则后端设备确定该摄像机成功接收该子包序列;否则,后端设备可以确定该摄像机接收该子包序列失败。

需要说明的是,在本申请实施例中,当后端设备向摄像机发送子包序列之后,等待第一应答消息的时间达到预设时长(可以根据实际场景设定)时,可以确定摄像机接收子包序列失败。

本申请实施例中,当后端设备确定摄像机接收子包序列成功时,后端设备可以开始向摄像机发送下一个子包序列,并按照上述方式进行接收确认,直至升级包发送完成。

需要说明的是,在本申请实施例中,当后端设备确定摄像机接收子包序列失败时,后端设备可以确定该子包序列的重传次数是否达到预设子包序列重传次数(本文中称为第一预设次数,可以根据实际场景设定,如3次或5次等),若未达到,则后端设备可以对该子包序列进行重传,并按照上述方式进行接收确认;若达到,则后端设备可以确定该子包序列传输失败,此时,后端设备可以确定摄像机升级失败,在该情况下,后端设备可以直接结束摄像机远程升级流程,或者按照其它策略进行相应处理,本申请实施例对此不做限定。

此外,在本申请实施例中,后端设备向摄像机发送升级包数据之前,还可以与摄像机进行升级确认,例如,后端设备可以向摄像机发送开始升级的指令,并当接收到摄像机的确认应答时,再开始升级包数据的发送,其具体实现可以参见现有摄像机远程升级方案中的相关描述,本申请实施例在此不做赘述。

本申请实施例中,为了避免升级包传输对摄像机的正常摄像任务的影响,后端设备向摄像机传输升级包时,可以利用消隐区同轴数据区传输该升级包。

相应地,在本申请其中一个实施例中,上述向摄像机发送子包序列,包括:

利用消隐区同轴数据区向摄像机发送子包序列。

在该实施例中,考虑到摄像机获取到的每一帧视频均存在消隐区,该部分不存在有效的视频数据,因此,通过消隐区传输非视频数据可以避免该非视频数据的传输对摄像机正常摄像任务的影响。

相应地,在该实施例中,当摄像机需要远程升级时,后端设备可以将升级包数据,如上述子包序列,以插码的方式插入视频的消隐区,利用消隐区同轴数据区向摄像机发送升级包数据,在保证摄像机正常摄像任务的情况下,实现了升级包的传输。

进一步地,本申请实施例中,当摄像机接收到所有升级包数据时,即第一数量的子包对应的各子包序列均成功接收时,摄像机可以对升级包进行校验,例如,摄像机可以根据升级前与后端设备协商好的校验信息对升级包进行校验;或者,摄像机可以根据后端设备发送升级包数据前通知的校验信息对升级包进行校验。

若摄像机对升级包校验通过,则摄像机可以向后端设备发送升级包接收成功应答消息;若摄像机对升级包校验未通过,则摄像机可以向后端设备发送升级包接收失败应答消息。

相应地,当后端设备接收到摄像机发送的升级包接收成功应答消息时,后端设备可以确定摄像机成功接收到升级包,此时,后端设备可以确定摄像机升级成功。

当后端设备接收到摄像机发送的升级包接收失败应答消息时,后端设备可以确定摄像机接收升级包失败,此时,后端设备可以确定摄像机升级失败,在该情况下,后端设备可以直接结束摄像机远程升级流程,或者按照其它策略进行相应处理,本申请实施例对此不做限定。

本申请实施例中,当摄像机对接收到的升级包校验通过时,可以自动重启,并完成剩余升级操作,其具体实现可以参见现有摄像机远程升级方案中摄像机根据升级包进行升级的相关流程,本申请实施例在此不做赘述。

可见,在图1所示方法流程中,通过将升级包划分为第一数量的子包,并将一定数量的子包组成子包序列,以子包序列为单元向摄像机传输升级包数据,摄像机每完成一次子包序列接收进行一次应答,而不再是每次接收到一个子包均进行一次应答,提高了升级包数据的传输效率,进而提高了摄像机的升级效率。

在本申请其中一个实施例中,上述向摄像机发送子包序列之前,还可以包括:

向摄像机发送协议头,该协议头中包括协议头关键字、升级包总字节数、子包序列中的子包数以及总校验和;

当确定摄像机接收协议头失败,且协议头重传次数未达到第二预设次数时,对协议头进行重传;

当确定摄像机接收协议头失败,且协议头重传次数达到第二预设次数时,确定摄像机升级失败;

当确定摄像机接收协议头成功时,确定执行向摄像机发送子包序列的步骤。

在该实施例中,后端设备向摄像机发送子包序列之前,后端设备可以先向摄像机发送协议头,该协议头中可以包括但不限于协议头关键字、升级包总字节数、子包序列中的子包数以及总校验和。

其中,协议头关键字也可以称为协议头起始码,用于标识协议头,摄像机接收到协议头时,可以根据该协议头关键字识别接收到的数据为协议头。

总校验和用于摄像机成功接收最后一个子包序列(即成功接收到完整的升级包数据)时对升级包进行校验。例如,该总校验和可以为升级包数据中各字节循环相加的结果,摄像机成功接收最后一个子包序列之后,可以根据该总校验和对升级包进行校验。

升级包总字节数以及子包序列中的子包数可以用于摄像机确定子包序列的相关信息,并确定子包的总数,进而,可以确定是否完成单个子包序列的接收、完整升级包数据的接收等。

摄像机接收到协议头时,可以向后端设备返回协议头接收成功或失败应答消息。

当后端设备接收到摄像机发送的协议头接收成功消息时,后端设备可以确定摄像机接收协议头成功,进而,后端设备可以开始向摄像机发送子包序列。

当后端设备接收到摄像机发送的协议头接收失败消息时,后端设备可以确定摄像机接收协议头失败,此时,后端设备可以进一步确定协议头的重传次数是否达到预设协议头重传次数(本文中称为第二预设次数,可以根据实际场景设定,如3次或5次等)。

若未达到,则后端设备可以对协议头进行重传,并按照上述方式进行协议头接收确认;

若达到,则后端设备可以确定协议头发送失败,此时,后端设备可以确定摄像机升级失败。在该情况下,后端设备可以直接结束摄像机远程升级流程,或者按照其它策略进行相应处理,本申请实施例对此不做限定。

应该认识到,在本申请实施例中,协议头中包括的信息并不限于上述字段,其还可以包括其它字段,例如,摄像机类型、相机平台、后端设备的通道号信息等。其中,摄像机类型以及相机平台可以用于标识升级包适用的摄像机类型(如球机或枪机等)以及相机平台(如isp(imagesignalprocessor,图像信号处理单元)芯片的型号等),摄像机接收到协议头时,可以根据其中携带的摄像机类型以及相机平台信息确定升级包是否适用。后端设备通道号信息可以用于后续功能扩展和调试,摄像机接收到协议头时,可以记录该后端设备通道号信息。

此外,后端设备向摄像机传输协议头时,为了保证协议头的安全性和可靠性,还可以在协议头中添加协议头校验信息,摄像机接收到协议头时,可以根据协议头校验信息对协议头进行校验。

需要说明的是,在该实施例中,由于后端设备每次传输的最大数据量有限,因此,当协议头中的数据大于后端设备每次传输的最大数据量时,后端设备可以将协议头分多次传输;其中,每次传输协议头数据时,后端设备均可以在其中携带协议头关键字以及协议头校验信息。

进一步地,在该实施例的一种实施方式中,上述确定摄像机接收协议头成功之后,每一次向摄像机发送子包序列之前,还可以包括:

向摄像机发送序列头,该序列头中包括序列头关键字;

当确定摄像机接收序列头失败,且序列头重传次数未达到第三预设次数时,对序列头进行重传;

当确定摄像机接收序列头失败,且序列头重传次数达到第三预设次数时,确定摄像机升级失败;

当确定摄像机接收序列头成功时,确定执行向摄像机发送子包序列的步骤。

在该实施例中,为了使摄像机更好地进行子包序列接收确认,后端设备每次向摄像机发送子包序列之前,可以先向摄像机发送一个子包序列头(简称为序列头),该序列头中可以包括但不限于序列头关键字。

其中,序列头关键字也可以称为序列头起始码,用于标识序列头,摄像机接收到序列头时,可以根据该序列头关键字识别接收到的数据为序列头。

摄像机接收到序列头时,可以向后端设备返回序列头接收成功或失败应答消息。

当后端设备接收到摄像机发送的序列头接收成功消息时,后端设备可以确定摄像机接收序列头成功,进而,后端设备可以开始向摄像机发送子包序列。

当后端设备接收到摄像机发送的序列头接收失败消息时,后端设备可以确定摄像机接收序列头失败,此时,后端设备可以进一步确定序列头的重传次数是否达到预设序列头重传次数(本文中称为第三预设次数,可以根据实际场景设定,如3次或5次等)。

若未达到,则后端设备可以对序列头进行重传,并按照上述方式进行序列头接收确认;

若达到,则后端设备可以确定序列头发送失败,此时,后端设备可以确定摄像机升级失败。在该情况下,后端设备可以直接结束摄像机远程升级流程,或者按照其它策略进行相应处理,本申请实施例对此不做限定。

在一个示例中,上述序列头中还可以包括绝对包编号,该绝对包编号用于与该序列头对应的子包序列中各子包携带的相对包编号一起确定实际包编号。

具体地,为了保证摄像机接收到各子包之后,能够根据接收到的子包数据得到完成的升级包数据,摄像机需要能够获知各子包的编号(用于标识各子包数据在升级包中的顺序)。

而考虑到直接将子包的实际编号携带在子包数据中时,由于子包的数量可能会比较多,用于标识子包实际编号的字节数也会占用较多的字节数,从而导致每一个子包传输的有效数据(即具体的升级包数据)较少,进而降低升级包数据传输效率,因此,为了提高升级包数据传输效率,可以采用绝对编号和相对编号的方式来确定子包的实际编号。

在该示例中,后端设备每次向摄像机发送子包序列前,可以在序列头中携带子包的绝对编号,并在向摄像机发送的子包序列中的各子包中携带子包的相对编号(该相对编号用于标识子包在该子包序列中的顺序),进而,当摄像机成功接收到子包序列时,可以根据序列头中的绝对编号和相对编号确定各子包的实际编号。其中,实际编号可以为绝对编号与相对编号二者之和,即实际编号=绝对编号+相对编号。

通过该方式,子包序列中携带的子包编号(即相对编号)的字节数仅需要能够满足子包序列中子包数量的需求即可,可以减少子包编号占用的字节数,进而,可以提高有效数据的字节数,提高数据传输效率。

举例来说,假设升级包对应的子包数量(即第一数量)大于256,则当子包中携带的子包编号为实际编号时,则子包编号至少需要占用2个字节;而假设一个子包序列中包括的子包数量小于256,采用相对编号时,子包中携带的子包编号仅需占用1个字节,进而,每个子包都可以多传输至少1个字节的有效数据,提高了数据传输效率。

应该认识到,在本申请实施例中,序列头中包括的信息并不限于上述字段,其还可以包括其它字段,例如,在各子包序列中的子包数量不一致的实现方案中,序列头中还可以包括对应的子包序列中子包的数量;摄像机接收到该序列头之后,可以根据该子包序列中子包的数量进行子包序列接收确认。

此外,后端设备向摄像机传输序列头时,为了保证序列头的安全性和可靠性,还可以在序列头中添加序列头校验信息,摄像机接收到序列头时,可以根据序列头校验信息对序列头进行校验。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供更多技术方案进行说明。

请参见图2,为本申请实施例提供的一种摄像机远程升级的应用场景的示意图,如图2所示,在该实施例中,后端设备通过usb或网络传输方式获取摄像机升级使用的升级包,并以同轴信号的方式将升级包数据传输给摄像机,以避免升级包数据传输对摄像机拍摄任务的影响。

基于图2所示的场景,本申请实施例提供的摄像机远程升级方案实现流程可以如图3所示,其可以包括以下步骤:

步骤s300、后端设备向摄像机发送开始升级的指令。

步骤s310、摄像机对升级指令进行校验,并回复应答消息。

其中,步骤s300和s310的实现可以参见现有摄像机远程升级方案中的相关描述,在此不做赘述。

步骤s320、后端设备按照协议发送子包序列。

步骤s330、摄像机接收子包序列并回复应答消息。

在该实施例中,假设升级包的大小为p字节,后端设备每次传输的最大数据量为m字节,后端设备将升级包划分为个子包,将k(k≥2)个子包划分为一个子包序列,进而,升级包可以被划分为个子包序列,其中,前个子包序列中子包数量为k,最后一个子包序列中子包数量为

1、协议头的发送

后端设备在发送子包序列之前,可以先向摄像机发送协议头。

在该实施例中,后端设备可以将协议头分4次传输给摄像机,其中:

a、摄像机类型、总校验和、相机平台;

b、后端设备的通道号信息,子包序列中子包数量;

c、升级包总字节数;

d、保留字节,用于扩展功能。

其中,总校验和可以为升级包数据中各字节循环相加的结果。

后端设备每次发送协议头时,还附加协议头关键字和协议头校验信息,即协议头的格式可以如下所示:

起始码+有效数据+checksum

其中,该起始码即为协议头关键字,其大小可以为3字节,有效数据即为上述4部分数据中的任一部分,其大小可以为n字节,checksum(校验和)为前n+3个字节循环相加的结果,其大小为1字节。

摄像机接收到协议头时,根据协议头关键字对其进行识别,将前n+3个字节进行循环相加,并将结果与checksum比较,若相同,则确定校验通过,向后端设备发送协议头接收成功应答消息;否则,向后端设备发送协议头接收失败应答消息。

需要说明的是,当摄像机接收到包括摄像机类型和相机平台的协议头时,可以需要进行升级包适用判断,若判断结果为不适用,则直接确定升级失败,向后端设备回复升级失败应答消息。

当后端设备接收到摄像机发送的协议头接收成功应答时,确定摄像机接收协议头成功,则进一步执行后续序列头发送流程。

当后端设备接收到摄像机发送的协议头接收失败应答或在应答定时器超时前未接收到应答消息时,确定摄像机接收协议头失败,则后端设备可以在协议头的重传次数未超过5次时,对协议头进行重传;否则,确定协议头发送失败,并确定摄像机升级失败。

需要说明的是,在该实施例中,为了提高数据传输效率,后端设备与摄像机进行数据传输(数据发送和应答消息)时,可以遵循4字节对齐规则进行数据传输,当需要传输的数据不满足4字节对齐时,可以填充0的方式来实现4字节对齐,其具体实现在此不做赘述。

2、序列头的发送

当后端设备确定摄像机接收协议头成功时,在每一次发送子包序列之前,后端设备可以向摄像机发送一个序列头。

其中,该序列头中可以包括序列头关键字、绝对包编号以及序列头校验信息,其格式可以如下所示:

起始码+绝对包编号+checksum

其中,该起始码即为序列头关键字,其大小可以为3字节,绝对包编号为该序列头对应的子包序列的绝对包编号,其大小可以为4字节,checksum为前7字节循环相加的结果,其大小可以为1字节。

举例来说,以子包序列中子包数量为64(下同)为例,则第1个子包序列对应的序列头中的绝对包编号为0;第2个子包序列对应的序列头中的绝对包编号为64,第3个子包序列对应的序列头中的绝对包编号为128…以此类推。

摄像机接收到序列头时,根据序列头关键字对其进行识别,将前7个字节进行循环相加,并将结果与checksum比较,若相同,则确定校验通过,向后端设备发送序列头接收成功应答消息;否则,向后端设备发送序列头接收失败应答消息。

其中,当序列头接收成功时,摄像机可以在序列头接收成功应答消息中携带序列头中的绝对包编号,后端设备可以根据该绝对包编号确定摄像机接收对应的序列头成功;当序列头接收失败时,摄像机可以在序列头接收失败应答消息中携带全f的绝对包编号,后端设备可以根据该全f的绝对包编号确定摄像机接收序列头失败。

当后端设备接收到摄像机发送的序列头接收成功应答时,确定摄像机接收序列头成功,则进一步执行后续子包序列发送流程。

当后端设备接收到摄像机发送的序列头接收失败应答或在应答定时器超时前未接收到应答消息时,确定摄像机接收序列头失败,则后端设备可以在序列头的重传次数未超过5次时,对序列头进行重传;否则,确定序列头发送失败,并确定摄像机升级失败。

3、子包序列发送

后端设备确定摄像机接收序列头成功时,可以向摄像机发送子包序列。

其中,该子包序列中各子包可以包括数据关键字、相对包编号、子包数据以及校验和,其中,子包的格式可以如下所示:

起始码+相对包编号+子包数据(data1、data2…datan)+checksum

其中,该起始码即为数据关键字,其大小可以为1字节,相对包编号为子包序列中各子包的编号,例如,当子包序列中子包数量为64个时,则子包序列中各子包的相对包编号可以依次为0~63,其大小为1字节,子包数据为升级包中的具体数据,checksum为之前各字节循环相加的结果。

摄像机接收到子包序列中各子包时,可以根据数据关键字对其进行识别,并根据checksum进行校验,校验通过后对接收到的子包数加1,并当接收到64个子包或在预设等待时长内未接收到子包时,向后端设备发送应答消息,其中,该应答消息中携带有摄像机接收到的子包数量以及接收到的最后一个子包的相对编号。

后端设备接收到摄像机发送的应答消息时,可以根据应答消息中携带的子包数量和最后一个子包的相对编号确定摄像机接收子包序列是否成功。

其中,对于非最后一个子包序列,若应答消息中子包数量为64,且最后一个子包的相对编号为63,则确定摄像机接收子包序列成功;否则,确定摄像机接收子包序列失败。

对于最后一个子包序列,后端设备也可以根据该子包序列中子包数量(小于等于64)对应答消息进行识别。

当后端设备确定摄像机接收子包序列成功时,则继续发送下一个子包序列(先发序列头,然后发子包序列),直至最后一个子包序列发送完成。

当后端设备确定摄像机接收子包序列失败或在应答定时器超时前未接收到应答消息时,确定摄像机接收子包序列失败,则后端设备可以在子包序列的重传次数未超过3次时,对子包序列进行重传;否则,确定子包序列发送失败,并确定摄像机升级失败。

摄像机完成子包序列接收时,可以根据序列头中携带的绝对包编号以及子包序列中各子包携带的相对包编号确定各子包的实际包编号,进而确定是否完成最后一个子包序列的接收,并当完成最后一个子包序列的接收时,可以向后端设备回复一个应答消息,以通知后端设备升级包数据传输完成。

步骤s340、当后端设备确定摄像机接收升级包成功时,确定摄像机升级成功。

在该实施例中,摄像机成功接收到所有子包序列时,可以根据各子包的实际包编号得到完整的升级包数据,并根据总校验和对升级包数据进行校验,若校验通过,则回复升级包接收成功应答消息,自动重启,并完成剩余升级操作;否则,回复升级包接收失败应答消息。

当后端设备接收到摄像机发送的升级包接收成功应答消息时,确定摄像机升级成功;当后端设备接收到摄像机发送的升级包接收失败应答消息时,确定摄像机升级失败。

本申请实施例中,通过将摄像机升级使用的升级包划分为第一数量的子包,并向摄像机发送子包序列,当根据摄像机发送的子包序列接收应答消息确定摄像机成功接收子包序列时,向摄像机发送下一个子包序列,直至升级包发送完成,提高了升级包数据传输的效率,进而提高了摄像机远程升级的效率。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图4,为本申请实施例提供的一种摄像机远程升级装置的结构示意图,其中,该摄像机远程升级装置可以应用于上述方法实施例中的后端设备,如图4所示,该摄像机远程升级装置可以包括:

划分单元410,用于将摄像机升级使用的升级包划分为第一数量的子包;

发送单元420,用于向所述摄像机发送子包序列;其中,子包序列中包括的子包的数量小于所述第一数量;

接收单元430,用于接收所述摄像机发送的子包序列接收应答消息;其中,所述子包序列接收应答消息由所述摄像机在完成子包序列接收或等待时长达到预设时长时发送;

确定单元440,用于根据所述摄像机发送的子包序列接收应答消息确定所述摄像机成功接收所述子包序列是否成功;

所述发送单元420,还用于若所述摄像机成功接收所述子包序列,则向所述摄像机发送下一个子包序列,直至所述第一数量的子包发送完成。

在一种可选的实施方式中,所述发送单元420,还用于对于任一子包序列,当确定所述摄像机接收该子包序列失败,且该子包序列重传次数未达到第一预设次数时,对该子包序列进行重传;

所述确定单元440,还用于当确定所述摄像机接收该子包序列失败,且该子包序列重传次数达到所述第一预设次数时,确定所述摄像机升级失败。

在一种可选的实施方式中,所述发送单元420,还用于向所述摄像机发送子包序列之前,向所述摄像机发送协议头;所述协议头中包括协议头关键字、升级包总字节数、子包序列中的子包数以及总校验和;所述协议头关键字用于标识所述协议头,所述总校验和用于所述摄像机成功接收最后一个子包序列时对所述升级包进行校验;

所述发送单元420,还用于当所述确定单元440确定所述摄像机接收所述协议头失败,且协议头重传次数未达到第二预设次数时,对所述协议头进行重传;

所述确定单元440,还用于当确定所述摄像机接收所述协议头失败,且协议头重传次数达到第二预设次数时,确定所述摄像机升级失败;

所述发送单元420,还用于当所述确定单元440确定所述摄像机接收所述协议头成功时,向所述摄像机发送子包序列。

在一种可选的实施方式中,所述发送单元420,还用于当确定所述摄像机接收所述协议头成功之后,在每一次向所述摄像机发送子包序列之前,向所述摄像机发送序列头;所述序列头中包括序列头关键字,所述序列头关键字用于标识所述序列头;

所述发送单元420,还用于当所述确定单元440确定所述摄像机接收所述序列头失败,且序列头重传次数未达到第三预设次数时,对所述序列头进行重传;

所述确定单元440,还用于当确定所述摄像机接收所述序列头失败,且序列头重传次数达到第三预设次数时,确定所述摄像机升级失败;

所述发送单元420,还用于当所述确定单元440确定所述摄像机接收所述序列头成功时,向所述摄像机发送子包序列。

在一种可选的实施方式中,所述序列头中还包括绝对包编号,所述绝对包编号用于与该序列头对应的子包序列中各子包携带的相对包编号一起确定实际包编号。

在一种可选的实施方式中,所述发送单元420,具体用于利用消隐区同轴数据区向所述摄像机发送子包序列。

在一种可选的实施方式中,所述确定单元440,还用于当所述接收单元430接收到所述摄像机发送的升级包接收成功应答消息时,确定所述摄像机升级成功;其中,所述升级包接收成功应答消息由所述摄像机完成升级包接收时对所述升级包校验通过后发送。

请参见图5,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器501、通信接口502、存储器503和通信总线504。处理器501、通信接口502以及存储器503通过通信总线504完成相互间的通信。其中,存储器503上存放有计算机程序;处理器501可以通过执行存储器503上所存放的程序,执行上文描述的摄像机远程升级方法。

本文中提到的存储器503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器502可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图5中的存储器503,所述计算机程序可由图5所示电子设备中的处理器501执行以实现上文描述的摄像机远程升级方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1