显示报文通讯(请求/响应),不执行响应完成任务? 点击:922 | 回复:7



wujun2006

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年9月25日
发表于:2007-01-06 10:05:00
楼主
此程序为发送请求节点,接收不到返回的响应
用lonscanner可看到request和respond数据包,子网号和节点号都对
when (io_changes(ioButton))
{
msg_out.code = DATA_REQUEST;
msg_out.tag = TAG_OUT1;
msg_out.dest_addr.snode.domain=0;
msg_out.dest_addr.snode.node=5;
msg_out.dest_addr.snode.subnet=1;
msg_out.service=REQUEST;
msg_out.dest_addr.snode.type=1;
msg_out.data[0]=5;
msg_out.data[1]=6;
msg_send();
}

#pragma scheduler_reset

//when(msg_arrives)
//{
// switch(msg_in.code)
// {
// case METER_LED_ON:
// MeterSetLed (TRUE);
// break;
// case METER_LED_OFF:
// MeterSetLed (FALSE);
// break; 
// default:
// break;
// }
//}

when(msg_arrives(0))
{
MeterSetLed (TRUE);
}

when(msg_arrives(1))
{
MeterSetLed (FALSE);
}

when(resp_arrives)
{
MeterSetLed (TRUE); 
//if(resp_in.code == OK){
//for(i=0;i<resp_in.data[0];++i){
// watchdog_update();
// MeterSetLed (FALSE);
// delay(19838);
// watchdog_update();
// MeterSetLed (TRUE);
// delay(19838);
// watchdog_update();
//}
//}

}

//此程序为发送响应的节点
when(msg_arrives)
{
switch(msg_in.code)
{
case METER_LED_ON:
MeterSetLed (TRUE);
break;
case METER_LED_OFF:
MeterSetLed (FALSE);
break; 
case DATA_REQUEST:
MeterSetLed (TRUE);
resp_out.code = OK;
resp_out.data[0]=2;
resp_send();
break;
default:
break;
}
}
请高手们指教!



wujun2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年9月25日
发表于:2007-01-06 10:08:00
1楼
when(resp_arrives)
不执行此任务,用debuger的断点调试,不停

wujun2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年9月25日
发表于:2007-01-08 11:28:00
2楼
没人帮忙?
如果程序写的不太清楚,谁有显示报文通讯(显式寻址,请求/响应类型)的例子?谢谢

wujun2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年9月25日
发表于:2007-01-08 11:32:00
3楼
请高手和我交流
wjlddq2006@163.com

wujun2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2006年9月25日
发表于:2007-01-08 11:36:00
4楼
我又测试了一下,用隐式寻址通讯,正常

happy2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 13回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2005年10月24日
发表于:2007-01-27 10:01:00
5楼
请问一下为什么节点克隆后用debug调试不了啊????
使用函数updata_domain();提示不能进行写eeprom

happy2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 13回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2005年10月24日
发表于:2007-01-27 10:03:00
6楼
是不是跟节点的domain中的内容有关啊?可以看一下access.h文件中有关的内容

lontech

  • 精华:3帖
  • 求助:0帖
  • 帖子:7帖 | 11回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2001年5月22日
发表于:2007-01-27 13:02:00
7楼
参考以下文献即可:

《Motorola:LonWorks- Technology Device Data》
《神经元芯片手册》
《Neuron C 程序员手册》
《Neuron C 编程指南》

热门招聘
相关主题

官方公众号

智造工程师