首页 > 解决方案 > UnetStack:如何在两个调制解调器之间自动传输数据

问题描述

我有两个 subnero WNC-M25MSS3 调制解调器,我的目标是实现 2 节点网络。它们由协处理器和 Janus 协议组成。在我未来的海上部署期间,名为 A 的调制解调器将位于海面,调制解调器 B 位于深处,我可以连接到调制解调器 A 的外壳,以便执行我在那里创建的脚本的命令。我的目标如下:当我在 A 的 shell 中输入命令行“requestData”时,我必须从 B 申请数据。为此,一旦输入命令行,这将生成一条 Janus 消息,其中包含数据传输给B。当B收到消息时,它应该自动响应数据。这就是我卡住的地方,我已经为两个调制解调器创建了数据传输脚本,但是我找不到让 B“听”的方法,即

这是调制解调器 A 调用传输的功能:

B = host('B');
subscribe phy; 
int counterA = 3; // counter which will create in the future

int ID = 0; // Transmitting to everybody 

int [] request = new int[2];

request[0] = counterA; // Data is create in a table
request[1] = ID;
// request[2] = ; ????

phy << new TxJanusFrameReq(type: CONTROL, data: request, to: ID); // Transmission of data with Janus

这是我在调制解调器 B 上创建的无限循环,以便在收到消息后使用“sendData”进行传输:我在这里卡住了

subscribe phy;

while(RxFrameNtf !=  true){
    //receivedData = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
    //receivedData = ntf.data;
    try{
            
            try {      //wait 5 seconds function
                Thread.sleep(5000) ;
            }  catch (InterruptedException e) {
                // gestion de l'erreur
            }
            
            receivedData = ntf.data;  // Analyse the receiving data
            
        }catch (Exception e){
            //println([receivedData]);
            println("No data yet");
            //tampomEvent;
        }
        //println([receivedData]);
}
println("Amazing, you're out now!!!");


if(ntf.data[1] == 0){
    println("OK");
    sendData;
}

标签: groovyunetstack

解决方案


推荐阅读