<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Mangal;
        panose-1:2 4 5 3 5 2 3 3 2 2;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle25
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle26
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle27
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle29
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle31
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:268388737;
        mso-list-type:hybrid;
        mso-list-template-ids:-112434844 700059160 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Mangal;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1
        {mso-list-id:854731146;
        mso-list-template-ids:-1297040774;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello everyone, I have some confusion regarding the process flow of program at the driver level.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have the following debug logs from at86rf2xx (with some custom logs)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">CLIENT - m3-100;[at86rf2xx] at86rf2xx_tx_load<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;[at86rf2xx] PRELOADED at86rf2xx_tx_exec<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;PKT SENT <b>// Represents end of _send method in at86rf2xx_netdev.c<o:p></o:p></b></p>
<p class="MsoNormal">server - m3-101;INTERRUPT <b><o:p></o:p></b></p>
<p class="MsoNormal">server - m3-101;[at86rf2xx] EVT - ISR CALLED<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;INTERRUPT <b>// Represents _<i>irq</i>_handler method in at86rf2xx_netdev.c if (dev->event_callback) this is TRUE/1</b><o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;[at86rf2xx] EVT - ISR CALLED <b>// represents _isr method being called</b><o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;[at86rf2xx] return to idle state 0x16<o:p></o:p></p>
<p class="MsoNormal">server - m3-101;[at86rf2xx] EVT - RX_END<o:p></o:p></p>
<p class="MsoNormal">server - m3-101;PKT RECV<o:p></o:p></p>
<p class="MsoNormal">server - m3-101;PKT RECV<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-100;[at86rf2xx] EVT - TX_END<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My question here is that,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Firstly, does PKT_SENT i.e. the end of send method from netdev::send mean that data/packet was actually sent?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Secondly, if the answer is yes to previous question, why does INTERRUPT occur after the packet was sent? If answer to the first question is no, then when/where does the packet/data actually gets transmitted?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am aware that methods such as prepare/load/exec already start the transmission process, hence the dilemma about INTERRUPT being called after these modules/functions.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thirdly, In the logs (not present in the above log), I observed that the following piece of code never gets executed even though packet transmission starts<o:p></o:p></p>
<p class="MsoNormal">if (netdev->event_callback &&<o:p></o:p></p>
<p class="MsoNormal">        (dev->flags & AT86RF2XX_OPT_TELL_TX_START)) {<o:p></o:p></p>
<p class="MsoNormal">        DEBUG("TX STARTED\n");<o:p></o:p></p>
<p class="MsoNormal">        netdev->event_callback(netdev, NETDEV_EVENT_TX_STARTED);<o:p></o:p></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I really appreciate any help in solving this small confusion. Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Navneet Pandey<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Navneet Pandey <br>
<b>Sent:</b> Friday, November 9, 2018 1:31 PM<br>
<b>To:</b> 'users@riot-os.org' <users@riot-os.org><br>
<b>Subject:</b> RE: Radio Interrupt Handler<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello Joakim,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<pre><span style="color:black">> default behavior of the gnrc_networking example,<o:p></o:p></span></pre>
<pre><span style="color:black">> no configuration necessary. The radio will be initialized and set to listen<o:p></o:p></span></pre>
<pre><span style="color:black">> for incoming traffic, and will remain turned on until you type ifconfig x<o:p></o:p></span></pre>
<pre><span style="color:black">> set state sleep in the shell.<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Just to confirm, I do not interact with the program when the experiment is running. So, there is no code which shut the radio during an experiment, right? (Unless and until I make the shell call)<o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> To disable the CPU power savings, the easiest<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> way is to either disable the pm_layered module using<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> DISABLE_MODULE=pm_layered on the command line with your make command, or<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> change the initial pm_blockers to non-zero. The pm blocker initial value is<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> found in cpu_conf.h, or cpu_conf_common.h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal">I tried disabling the pm_layered module. But, I received an error saying “Required modules were disabled using DISABLE_MODULE: pm_layered”<o:p></o:p></p>
<p class="MsoNormal">And PM_BLOCKER_INITIAL is set to “0x01010101”, which is non-zero already.<span lang="HI" style="font-family:"Mangal",serif">
</span>So, please let me know if I missed any step.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> The first transition from pm set lowest to idle could be a RX Begin event,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> and the second wake could be the RX End interrupt. The RX Begin interrupt<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> is sent when only the first byte of the frame has been received. The RX End<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">> interrupt is sent when the frame has been completely received<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Following is the trace of INTERRUPT and low power mode<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; Radio Packet to be Sent<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; pm set lowest<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; pm: setting mode 2<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; INTERRUPT<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; [at86rf2xx] return to idle state 0x16<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; [at86rf2xx] EVT - TX_END<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; INTERRUPT<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; [at86rf2xx] EVT - RX_END<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; pm set lowest<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; pm: setting mode 2<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; [at86rf2xx] LQI:255 high is good, RSSI:-34 high is either good ortoo much interference.<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; Received a MAC packet, Sending Reply..<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; INTERRUPT<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; [at86rf2xx] EVT - RX_END<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; INTERRUPT<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; [at86rf2xx] return to idle state 0x16<o:p></o:p></p>
<p class="MsoNormal">SERVER - m3-102; [at86rf2xx] EVT - TX_END<o:p></o:p></p>
<p class="MsoNormal">CLIENT - m3-101; [at86rf2xx] LQI:255 high is good, RSSI:-34 high is either good ortoo much interference.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Surprisingly SERVER node is not making any low power mode calls.<o:p></o:p></p>
<p class="MsoNormal">Is _<i>irq</i>_handler() the best place to keep track of when the Interrupt was called?<o:p></o:p></p>
<p class="MsoNormal">Could you guess the reason why I do not see ‘DEBUG("[at86rf2xx] EVT - RX_START\n");’ being printed anywhere.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And finally, I would like to confirm that ‘IDLE’ does not represent any power saving mode. It just means that no other thread is in use except IDLE thread?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If you need to look at the application code, please refer to [1]. It is a simple application using ‘txtsnd’ to for radio communication. The application is a bit old since I haven’t updated the code. But the basic idea is still remains the
 same.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">References:<o:p></o:p></p>
<p class="MsoNormal">[1] <a href="https://github.com/npcode15/RIOT_OS_Experiments/tree/master/MAC">
https://github.com/npcode15/RIOT_OS_Experiments/tree/master/MAC</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Navneet Pandey<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Navneet Pandey <br>
<b>Sent:</b> Friday, November 9, 2018 5:20 AM<br>
<b>To:</b> 'users@riot-os.org' <<a href="mailto:users@riot-os.org">users@riot-os.org</a>><br>
<b>Subject:</b> RE: Radio Interrupt Handler<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello Joakim, thanks for an elaborate explanation, I will check those articles out. Before I do, I have a few more queries.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Could you also point out which module is responsible for radio switch on/off, assuming radio only has a binary mode unlike the CPU.
<o:p></o:p></p>
<p class="MsoNormal">Is it ‘at86rf2xx_netdev’ or something else?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Also, is it possible to keep the radio open always for the duration of an experiment? And may be avoid deep sleep mode as well?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And am I correct when I say that ‘cortex_sleep(deep)’ puts CPU to sleep but doesn’t touch the radio (based on what you replied).
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Based on some of the modules on which I enabled debugging:<o:p></o:p></p>
<p class="MsoNormal">Following was the pattern:  PACKET SENT-> TX_Ends -> pm_set_lowest -> Idle -> pm_set_lowest -> RX_Ends -> PACKET RCVD.<o:p></o:p></p>
<p class="MsoNormal">I did not understand the part where CPU moved to idle state before going to sleep again. Did I miss any state in the process (probably did not enable debugging)?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I know these are a lot of questions. I really appreciate that you are answering my question in great detail. Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Navneet Pandey<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Navneet Pandey <<a href="mailto:navneet.pandey@outlook.in">navneet.pandey@outlook.in</a>>
<br>
<b>Sent:</b> Thursday, November 8, 2018 1:08 PM<br>
<b>To:</b> <a href="mailto:users@riot-os.org">users@riot-os.org</a><br>
<b>Subject:</b> RE: Radio Interrupt Handler<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello Joakim,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you, the information was really helpful. I was exploring the ‘at86rf2xx_netdev.c’ file. I noticed something weird. When I enabled debugging all I got was<o:p></o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo3">To Idle state<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo3">Evt TX_END<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo3">Evt RX_END<o:p></o:p></li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">By enabling debugging in pm_layered.c and pm.c, I noticed cortex_sleep(deep) was being called when radio was not doing anything. So why am I not seeing any of the following debug statements being printed (or in other words none of the following
 cases being invoked).<o:p></o:p></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4"> NETOPT_STATE_STANDBY:<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"STANDBY</span><span style="font-size:10.5pt;font-family:Consolas;color:#D7BA7D">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">);           
<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">            </span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(dev,
 AT86RF2XX_STATE_TRX_OFF);<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">;<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">       
</span><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4"> NETOPT_STATE_SLEEP:<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"To SLEEP</span><span style="font-size:10.5pt;font-family:Consolas;color:#D7BA7D">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">);<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(dev, AT86RF2XX_STATE_SLEEP);<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">;<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">       
</span><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">case</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4"> NETOPT_STATE_IDLE:<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">DEBUG</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"To IDLE</span><span style="font-size:10.5pt;font-family:Consolas;color:#D7BA7D">\n</span><span style="font-size:10.5pt;font-family:Consolas;color:#CE9178">"</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">);<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#DCDCAA">at86rf2xx_set_state</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">(dev, AT86RF2XX_STATE_RX_AACK_ON);<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:14.25pt;background:#1E1E1E"><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">           
</span><span style="font-size:10.5pt;font-family:Consolas;color:#C586C0">break</span><span style="font-size:10.5pt;font-family:Consolas;color:#D4D4D4">;<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Navneet Pandey<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Navneet Pandey <<a href="mailto:navneet.pandey@outlook.in">navneet.pandey@outlook.in</a>>
<br>
<b>Sent:</b> Monday, November 5, 2018 11:10 AM<br>
<b>To:</b> <a href="mailto:users@riot-os.org">users@riot-os.org</a><br>
<b>Subject:</b> Radio Interrupt Handler<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hello, <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Could someone please point out the code where radio is switched on/off when sending a MAC/UDP packet.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am expecting something similar to the following code snippet:<o:p></o:p></p>
<p class="MsoNormal">/** Turn the MAC layer on. */<o:p></o:p></p>
<p class="MsoNormal">  int (* on)(void);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  /** Turn the MAC layer off. */<o:p></o:p></p>
<p class="MsoNormal">  int (* off)(int keep_radio_on);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This code is from Contiki.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am interested in understanding the time it takes for system to wake up from sleep (dormant mode) to receive packets.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Navneet Pandey<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>