Hi Islam,
On the web, there has been some discussion about the difference between le
and 4bitle. Even though they both provide LinkEstimator interface, i
remenber that 4bitle is more robust and it is the recommended LinkEstimator
to work with CTP by Philip Levis and Omprakash Gnawali.
CTP knows which LinkEstmator to use through the makefile. Example: Look at
the make file for testnetwork application in the
/opt/tinyos-2.1.0/apps/tests/TestNetwork directory.
There is the following line;
CFLAGS += -I$(TOSDIR)/lib/net \
-I$(TOSDIR)/lib/net/drip \
-I$(TOSDIR)/lib/net/4bitle \
-I$(TOSDIR)/lib/net/ctp #-DNO_DEBUG
Therefore, u should include the 4bitle path for your own application.
Regards,
On Mon, Mar 8, 2010 at 11:13 PM, Islam Hegazy <[email protected]> wrote:
> Hi All,
>
> I discovered the versions confusion that I have. TEP 123 talks about a link
> estimator in the directory 'le'. Mehmet sent me a link to a link estimator
> in the directory '4bitle' which has the updated files. However, this doesn't
> solve the CVS update error that still occurs.
> A new question emerges. Now we have two sets of the same files providing
> the same interface name. How does CTP know which interface to use? 'le' or
> '4bitle'.
>
> Regards
> Islam Hegazy
>
>
> *From:* Mehmet Akif Antepli <[email protected]>
> *Sent:* Monday, March 08, 2010 1:38 PM
> *To:* Islam Hegazy <[email protected]>
> *Cc:* TinyOS help <[email protected]>
> *Subject:* Re: [Tinyos-help] unsatisfied statements in 4bit link estimator
>
> Hi Islam,
>
> Just go to the following link, copy the code (Rev 1.17), paste into your
> corresponding file;
>
>
> http://tinyos.cvs.sourceforge.net/viewvc/tinyos/tinyos-2.x/tos/lib/net/4bitle/LinkEstimatorP.nc?revision=1.17&view=markup
>
> It is just a file, u don't need to update via CVS.
>
> Regards,
>
> On Mon, Mar 8, 2010 at 9:57 PM, Islam Hegazy <[email protected]> wrote:
>
>> Yes, I checked my version number. It is v1.16 but dated 2009/03/13.
>> v1.16 on sourceforge has the date 2010/02/04. I tried to update my files
>> but I got the following error:
>>
>> "
>> cvs update: move away tos/lib/tosboot/tinynode/hardware.h; it is in the
>> way
>> C tos/lib/tosboot/tinynode/hardware.h
>> Error, CVS operation failed
>> Tortoise Tip: CVS tried to create a new file and discovered that the file
>> already existed. There can be
>> several causes for this:
>> 1) You have created the file locally, and someone else added a file of the
>> same name to CVS.
>> 2) Your sandbox has become corrupted (possibly due to interference from
>> antivirus programs).
>> To solve the problem: Rename or delete the affected files, then perform a
>> CVS Update.
>> "
>> I didn't change/modify/create any new files in the directory of TinyOS2.x
>> I tried to rename the the file where the update stopped but with no use.
>>
>> I am using TortoiseCVS on WindowsXP.
>>
>> Regards
>> Islam Hegazy
>>
>>
>> *From:* Mehmet Akif Antepli <[email protected]>
>> *Sent:* Saturday, March 06, 2010 4:44 AM
>> *To:* Islam Hegazy <[email protected]>
>> *Cc:* TinyOS help <[email protected]>
>> *Subject:* Re: [Tinyos-help] unsatisfied statements in 4bit link
>> estimator
>>
>> I think you r not using the latest version of LinkEstimatorP.nc
>>
>> You can find Rev.1.17 (latest version) in the following link:
>>
>>
>> http://tinyos.cvs.sourceforge.net/viewvc/tinyos/tinyos-2.x/tos/lib/net/4bitle/
>>
>> <http://tinyos.cvs.sourceforge.net/viewvc/tinyos/tinyos-2.x/tos/lib/net/4bitle/>
>> Regards,
>>
>> 2010/3/6 Islam Hegazy <[email protected]>
>>
>>> Hi
>>>
>>> I was tracing the code of 4bit link estimator in LinkEstimatorP.nc when I
>>> came to the following 2 statements which can'tbe satisfied.
>>>
>>> In the function updateNeighborEntryIdx the following if statement calls
>>> the function updateNeighborTableEst
>>>
>>> if (NeighborTable[idx].rcvcnt >= BLQ_PKT_WINDOW)
>>>
>>> {
>>>
>>> updateNeighborTableEst(NeighborTable[idx].ll_addr);
>>>
>>> }
>>>
>>> Inside the updateNeighborTableEst function we have the statements
>>>
>>> minPkt = BLQ_PKT_WINDOW;
>>>
>>> totalPkt = ne->rcvcnt + ne->failcnt;
>>>
>>> then we have the condition
>>>
>>> if (totalPkt < minPkt)
>>>
>>> {
>>>
>>> totalPkt = minPkt; //statement 1
>>>
>>> }
>>>
>>> which will never be satisfied because, at least, rcvcnt = BLQ_PKT_WINDOW
>>> (from the if in updateNeighborEntryIdx) . So, always total >= BLQ_PKT_WINDOW
>>> 'minPkt'
>>>
>>>
>>>
>>> The second statement is right after statement 1 in updateNeighborTableEst
>>>
>>>
>>> if (totalPkt == 0)
>>>
>>> {
>>>
>>> ne->inquality = (ALPHA * ne->inquality) / 10; //statement 2
>>>
>>> }
>>>
>>> This statement is never satisfied because statement 1 always set totalPkt
>>> > 0. Another main reason for not satisfying this statment,
>>> updateNeighborTableEst will never be called if rcvcnt < BLQ_PKT_WINDOW which
>>> means totalPkt > 0 (remember totalPkt = ne->rcvcnt + ne->failcnt).
>>>
>>> I searched the code for other calls to updateNeighborTableEst but I
>>> didn't find any. I'd appreciate it if someone can highlight the importance
>>> of these 2 statements.
>>>
>>> Regards
>>>
>>> Islam Hegazy
>>>
>>> _______________________________________________
>>> Tinyos-help mailing list
>>> [email protected]
>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>>
>>
>>
>>
>> --
>> Mehmet Akif Antepli
>> Telecommunications Lab. D-217
>> Dept. of EEE
>> Middle East Technical University
>>
>
>
>
> --
> Mehmet Akif Antepli
> Telecommunications Lab. D-217
> Dept. of EEE
> Middle East Technical University
>
--
Mehmet Akif Antepli
Telecommunications Lab. D-217
Dept. of EEE
Middle East Technical University
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help