- 浏览: 894457 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (198)
- Linux/Unix (38)
- TinyOS / NS-2 for『WSN』 (44)
- 思想的拼图 (5)
- 开源 OpenSource (2)
- Framework 开发框架 (0)
- Software Engineering 软件工程 (2)
- IT项目管理 (6)
- Networking 网络技术 (2)
- Java (6)
- C语言 ANSI C (22)
- .NET / C# (9)
- C++ (12)
- Web 语言 Html/Xml (5)
- Groovy on Grails (1)
- Algorithm 算法 (1)
- Database 数据库技术 (5)
- Tools (21)
- VM 虚拟机 (3)
- WSN (wireless sensor network) (2)
- Linux 命令专辑 (3)
- PHP (0)
- 办公软件 (3)
最新评论
-
cfczdws:
感谢楼主,查了半天终于发现居然是htmlentities()做 ...
htmlentities()函数把中文转成了乱码 -
decoxiaohan:
这本书的名字 有谁知道????~~~
OMNeT++中文用户手册(完全版) -
huonie:
怎么下载啊
OMNeT++中文用户手册(完全版) -
huonie:
没有内容啊
OMNeT++中文用户手册(完全版) -
kyx0413:
谢谢先 先看看
OMNeT++中文用户手册(完全版)
使用 CC2420Packet 中 setPower 来改变每个消息包的tx power
There are 8 discrete power levels each corresponds to RF transmit power
>> > Power level Transmitted power level
>> > 31 0dbm
>> > 27 -1dbm
>> > 23 -3dbm
>> > 19 -5dbm
>> > 15 -7dbm
>> > 11 -10dbm
>> > 7 -15dbm
>> > 3 -25dbm
原文
Hi Prem,
As Christian pointed out, to reduce the transmission range you have to
reduce the transmission power. In Tinyos 2 with a platform with the
cc2420 (such as MicaZ and the Tmotes), you can use either a flag in the
makefile:
CFLAGS += "-DCC2420_DEF_RFPOWER=1"
or you can dynamically change the tx power at runtime (individually for
every packet) with something like (wire in the CC2420PacketC module):
call CC2420Packet.setPower(&rpacket, 1);
You'll have to issue that call for every packet prior to sending it.
Reducing the TX power to its minimum I get a maximum transmission range
of roughly 3 meters under ideal conditions.
Cheers,
Urs
/** * Set transmission power for a given packet. Valid ranges are * between 0 and 31. * * @param p_msg the message. * @param power transmission power. */ async command void setPower( message_t* p_msg, uint8_t power );
There are 8 discrete power levels each corresponds to RF transmit power
>> > Power level Transmitted power level
>> > 31 0dbm
>> > 27 -1dbm
>> > 23 -3dbm
>> > 19 -5dbm
>> > 15 -7dbm
>> > 11 -10dbm
>> > 7 -15dbm
>> > 3 -25dbm
原文
引用
I'm looking to control the default radio power level at runtime for
Telos motes using TinyOS-2.x. In tos/chips/cc2420/CC2420Power.nc I
see the following comment:
"[This] does not include transmission power, see the CC2420Config interface."
However, the CC2420Config interface does not include any command to
set the default radio power level. The file
tos/chips/cc2420/CC2420ControlP.nc includes a state variable
'm_tx_power' that is initialized to CC2420_DEF_RFPOWER; however, that
variable is never used. The file tos/chips/cc2420/CC2420TransmitP.nc
directly uses CC2420_DEF_RFPOWER to set the default power level:
if ( !tx_power ) {
// If our packet's tx_power wasn't configured to anything but 0,
// send it using the default RF power. This assumes the
// packet's metadata is all set to 0's on boot.
tx_power = CC2420_DEF_RFPOWER;
}
It looks to me like the original intent was to provide a software
interface for setting the default radio power level via the
CC2420Config, but that its realization got lost along the way. With
the current implementation, I cannot see a way to set the default
radio power in software.
One way to resolve this would be to add two new commands to the
CC2420Config interface:
command uint8_t getDefaultTxPower();
command void setDefaultTxPower(uint8_t txPower);
Then, in CC2420ControlP add implementations of those commands (again,
'm_tx_power' is already declared in this module and initialized to
CC2420_DEF_RFPOWER):
command uint8_t CC2420Config.getDefaultTxPower() {
return m_tx_power;
}
command uint8_t CC2420Config.setDefaultTxPower(uint8_t txPower) {
m_tx_power = txPower;
}
Then, in CC2420TransmitP use the CC2420Config interface, and call the
getDefaultTxPower command to set the default power:
if ( !tx_power ) {
// If our packet's tx_power wasn't configured to anything but 0,
// send it using the default RF power. This assumes the
// packet's metadata is all set to 0's on boot.
tx_power = call CC2420Config.getDefaultTxPower();
}
Does this seem reasonable? Am I missing some other mechanism to set
the default radio power level in software?
Thanks in advance for your assistance.
Looks like the comments are out of date with respect to the implementation.
Based on experiences in implementing protocols, the general approach TinyOS takes these days for things like TX power control, acknowledgements, etc., is to make them per-packet. Otherwise protocol A changes the radio settings, which causes protocol B to break. If you take a look at CC2420Packet, there's a command to set the TX power level of a given packet.
Phil
Telos motes using TinyOS-2.x. In tos/chips/cc2420/CC2420Power.nc I
see the following comment:
"[This] does not include transmission power, see the CC2420Config interface."
However, the CC2420Config interface does not include any command to
set the default radio power level. The file
tos/chips/cc2420/CC2420ControlP.nc includes a state variable
'm_tx_power' that is initialized to CC2420_DEF_RFPOWER; however, that
variable is never used. The file tos/chips/cc2420/CC2420TransmitP.nc
directly uses CC2420_DEF_RFPOWER to set the default power level:
if ( !tx_power ) {
// If our packet's tx_power wasn't configured to anything but 0,
// send it using the default RF power. This assumes the
// packet's metadata is all set to 0's on boot.
tx_power = CC2420_DEF_RFPOWER;
}
It looks to me like the original intent was to provide a software
interface for setting the default radio power level via the
CC2420Config, but that its realization got lost along the way. With
the current implementation, I cannot see a way to set the default
radio power in software.
One way to resolve this would be to add two new commands to the
CC2420Config interface:
command uint8_t getDefaultTxPower();
command void setDefaultTxPower(uint8_t txPower);
Then, in CC2420ControlP add implementations of those commands (again,
'm_tx_power' is already declared in this module and initialized to
CC2420_DEF_RFPOWER):
command uint8_t CC2420Config.getDefaultTxPower() {
return m_tx_power;
}
command uint8_t CC2420Config.setDefaultTxPower(uint8_t txPower) {
m_tx_power = txPower;
}
Then, in CC2420TransmitP use the CC2420Config interface, and call the
getDefaultTxPower command to set the default power:
if ( !tx_power ) {
// If our packet's tx_power wasn't configured to anything but 0,
// send it using the default RF power. This assumes the
// packet's metadata is all set to 0's on boot.
tx_power = call CC2420Config.getDefaultTxPower();
}
Does this seem reasonable? Am I missing some other mechanism to set
the default radio power level in software?
Thanks in advance for your assistance.
Looks like the comments are out of date with respect to the implementation.
Based on experiences in implementing protocols, the general approach TinyOS takes these days for things like TX power control, acknowledgements, etc., is to make them per-packet. Otherwise protocol A changes the radio settings, which causes protocol B to break. If you take a look at CC2420Packet, there's a command to set the TX power level of a given packet.
Phil
引用
Hi Prem,
As Christian pointed out, to reduce the transmission range you have to
reduce the transmission power. In Tinyos 2 with a platform with the
cc2420 (such as MicaZ and the Tmotes), you can use either a flag in the
makefile:
CFLAGS += "-DCC2420_DEF_RFPOWER=1"
or you can dynamically change the tx power at runtime (individually for
every packet) with something like (wire in the CC2420PacketC module):
call CC2420Packet.setPower(&rpacket, 1);
You'll have to issue that call for every packet prior to sending it.
Reducing the TX power to its minimum I get a maximum transmission range
of roughly 3 meters under ideal conditions.
Cheers,
Urs
发表评论
-
几种用于WSN的仿真工具
2009-12-09 15:26 4226为评价无线传感器网络协议算法的性能,仅通过实验是无法实现的,特 ... -
OMNeT++中文用户手册(完全版)
2009-11-18 22:36 16630http://www.netforum.com.cn/view ... -
改变Telos 系列节点Serial baud rate
2009-08-21 18:50 2184如果节点与PC通信时出现非正常丢包或者serial不稳定当收包 ... -
TinyOS编译问题
2009-08-18 20:47 13141. 有时候编译提示找不到某个文件时, 可能是由于在linux ... -
Tcl/tk 小记
2009-07-22 23:43 15231. 检查variable变量是否声明 在使用Tcl时候会经常 ... -
NS无线仿真中无法设置节点颜色的解决方案
2009-07-22 18:57 1931NS中提供了配置节点与 ... -
awk: malloc(): memory corruption 错误
2009-07-09 21:56 7235问题如下: *** glibc detected *** aw ... -
ns2 对无线网络模拟
2009-07-06 19:52 2656在模拟无线网络时需要对tcl模拟脚本文件的参数进行设置,比如P ... -
使用Gnuplot 绘制ns2模拟结果图
2009-06-25 17:48 8206Gnuplot(command-driven inter ... -
ns2模拟无线网络的NAM动画
2009-06-24 22:26 4993无线的各个参数 ####################### ... -
ns2 模拟WSN协议之手记
2009-06-23 23:55 2927ns2中模拟WSN,用Timestamp时间戳计算点对点Del ... -
ns2 中得到Agent的实例
2009-06-16 21:02 2903下面代码说明了如何访问其他节点的Agent,以AODV协议为例 ... -
TinyOS使用MIG时报错!
2009-04-06 01:30 1817在Makefile中加入启用MIG的选项后,编译出现一下错误: ... -
Tinyos 2.0 笔记小结(1)
2009-03-16 20:11 23481. configure组件注意事项 一般在confi ... -
Tinyos 2.0使用笔记
2009-03-06 19:48 27851.编译与安装程序到节点 引用 $ make mica2 ... -
Tinyos 中常用术语
2009-03-05 03:32 1085EOFF 关断能量损耗 用于 device off, stop ... -
什么是 nx_ type
2009-03-01 03:29 1502nx_ types 是在nesC 1.2,tinyos中用到的 ... -
TinyOS 下安装 JNI 的问题
2009-02-25 00:05 32111. "java not found, not i ... -
『TinyOS』学习笔记 #11?
2009-02-20 01:09 3791Lesson 11 TOSSIM Compiling ... -
TinyOS在Linux下编译的问题 sudo make <platform>
2009-02-19 01:00 2817安装好TinyOS后,正准备编译一下Blink这个例子小试牛刀 ...
相关推荐
标题中的"power_13NodeTestFeeder.rar"提示这是一个关于13节点微电网的测试模型,而".rar"是压缩文件格式,通常用于打包多个文件或文件夹以便于传输和存储。描述指出这是一个已经搭建完成的Simulink模型,专用于微...
标题中的“DCPF for power.rar_dc power flow_flow_power_power flow_power fow”表明这是一个关于直流功率流(DC Power Flow)的压缩文件,可能包含了相关的计算方法、程序代码或技术文档。直流功率流分析是电力...
3. **电力流(Power Flow)计算**:也称为潮流计算,是电力系统分析的基础,用于确定在给定的负荷和发电机设定下,电网中各节点电压、线路潮流(电流和功率)的分布。 4. **MATLAB代码**:在电力系统研究中,MATLAB...
标题“Power_ePAPR_APPROVED_v1.12”暗示了这可能是一个关于PowerPC架构下设备树规范的文档,版本为1.12,并且已经得到了批准。ePAPR(Embedded PowerPC Architecture Platform Reference)是IBM推出的一个开放标准...
"Power_Flow_33_69_33节点_33ieee_ieee33潮流计算_loadflow_IEEE33节点_"这个标题涉及到的是对IEEE 33节点和69节点标准系统的潮流计算问题,采用的是Matlab编程环境。Matlab由于其强大的数值计算能力和友好的用户...
标题 "power_world_power_powersystem_" 暗示我们正在探讨的是电力系统(powersystem)相关的主题,可能是一个关于电力世界(power_world)的项目或研究。描述中提到的 "This is the power flow modeling of a big ...
UPFC通过改变其注入到电网的有功和无功功率,可以显著改变线路的功率流动分布,提高系统稳定性。 压缩包内的文件"power_upfc.slx"很可能是一个MATLAB/Simulink模型,用于模拟和分析UPFC在不同运行条件下的行为。...
这个名为"power_flow_9_bus_6节点潮流_6节点_6节点潮流计算_潮流计算_ieee_源码.rar"的压缩包文件,很可能包含了一个关于9个节点电力系统的潮流计算程序源代码,以及可能的6节点系统的简化示例。这个程序可能基于...
电力系统的暂态计算程序 适用于任何系统,包括三机九节点, IEEE14节点等各种情况的电力系统。计算发电机的极限切除角
这些节点包括26个PQ节点(即功率因数可调的负荷节点)、9个PV节点(电压可调节的发电机节点)和4个 slack bus(也称为PQV或ref节点,代表系统基准点,其电压和相角被固定)。此模型涵盖了各种复杂的系统特性,如非...
电力系统分析是电力工程中的核心领域之一,而IEEE57节点系统是这个领域中的一个经典研究案例。这个系统被广泛用于教学和研究,因为它能够模拟实际电力网络的复杂性,同时又不至于过于庞大,便于理解和分析。在这个...
"6节点潮流计算"是指在具有6个节点(或称为bus)的电力网络中,通过数学模型来确定各节点电压、功率分布以及线路潮流的情况。"9_bus_6节点潮流"可能指的是一个9个节点的系统中,特定6个节点的潮流分析。"IEEE"通常与...
这个模型由标题“d009_dyn.zip_9节点_9节点PSAT_psat模型_simulink节点_节点模型”所示,是一个针对九个节点的电力系统进行动态模拟的实例。本文将深入探讨九节点PSAT模型及其在Simulink中的实现。 PSAT(Power ...
标题中的“IEEE14.rar_14节点_Ieee14_matlab simulink_power grid_电网”指的是一个关于电力系统模拟的项目,使用了MATLAB Simulink工具,并基于经典的IEEE 14节点测试系统。这个压缩包包含了核心的模型文件“IEEE14...
标题中的"fig.rar_IEEE 118 bus_Power flow 118_power flow_svc_svc power flow"指的是一项关于IEEE 118节点电力系统的分析,其中包含了功率流动(Power Flow)的研究,并且特别关注了静止无功补偿器(SVC)在功率...
标题中的“ieee14.rar_14节点潮流_IEEE 节点_IEEE 节点_IEEE14节点”指的是IEEE 14节点电力系统模型的潮流计算问题。IEEE 14节点系统是电力系统分析中常用的一个小型示例系统,它包含了14个节点(包括发电机节点和...
《基于Matpower的新英格兰39节点潮流计算》 在电力系统分析中,潮流计算是一项基础且重要的任务,它用于确定电力网络在特定运行条件下的电压、功率分布和线路潮流。新英格兰39节点系统是电力系统研究中的一个典型...
《PowerWorld简易节点案例分析》 在电力系统分析领域,PowerWorld Simulator是一款广泛使用的软件工具,它能够模拟和分析电网的运行状态。本资源包针对PowerWorld的初学者,提供了包含简单节点和复杂节点的算例,...
标题“power_13NodeTestFeeder_olcumlu_power_”和描述“power_13NodeTestFeeder_olcumlu”暗示了一个与电力系统相关的项目或模拟,可能涉及13个节点的测试馈线及其性能测量。在这个场景中,“power”标签进一步确认...