对于重编程技术,本人认识的也不是特别深刻,其大致意思是,对于在人类很难直接接触到的环境下,通过无线消息传输将需要操作该节点的相关指令传输到节点上并使之运行相关操作。在此,就拿Deluge协议做例子,说明重编程问题。
Deluge协议是分发协议的一种,通过洪泛型传输将指令传给每个节点,并得到的是最新的信息。在传输过程中通过3次握手,首先基站节点发送ADV(消息的元数据)给周围节点告诉他们,我这有条消息,你们要不要,周围节点接收到ADV后通过消息版本号查询自己的消息列表看有无该版本,若无,则反馈一个REQ消息给基站节点。当基站节点接收到REQ后,则开始传输DATA。由此,通过3次握手将指令传达。
其次,Deluge协议之所以能够传输大数据是因为他将大块数据分成一页一页的数据,然后每一页数据又分成一个一个的数据包(每个数据包占16个字节),每次传输一个数据包,传完一页后再传输下一页,并且传输间隙有等待时间。通过对程序的分解将大块程序发给目标节点。
暂时想写的关于Deluge的内容差不多是这些,之后想到会继续补充,并且会继续完善Deluge的操作。
关于Deluge的操作大致和官网提供的差不多,只是要注意的有几点:
1 要有俩个节点,一个设置成BaseStation烧录BaseStation文件夹下的程序,一个设置成Client节点烧录GoldenImage文件夹下的程序(其余操作都在基站节点操作)
2 要加进的新的image要先加入基站节点再通过基站节点分发出去。
3 要给BlinkAppC文件添加components DelugeC,只添加就好,不需要其他操作。
4 最后要添加volumes-stm25p.xml文件里面包含了对BlockStorage的划分。
总的来说是这几个部分,后期会继续研究重编程操作(主要是Deluge)。