<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Adding state ?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/83851/adding-state</link><description>Dear Members, 
 
 I can use a simple timer in : 
 https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.0.0%2Fnrf_dev_simple_timer_example.html 
 I want to add another state 
 in timeout handler I added : 
 void timeout_handler</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 25 Jan 2022 06:17:49 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/83851/adding-state" /><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349414?ContentTypeID=1</link><pubDate>Tue, 25 Jan 2022 06:17:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc14264e-cd4a-4985-bab0-2ab183bf9ca4</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thanks. We will look at your project.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Kazi Afroza Sultana&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349374?ContentTypeID=1</link><pubDate>Mon, 24 Jan 2022 20:22:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:193e1d29-701c-4958-900f-3d3b0229cc3b</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;/p&gt;
&lt;p&gt;Thanks for the reply,&lt;/p&gt;
&lt;p&gt;I have uploaded the whole project on private ticket,&lt;/p&gt;
&lt;p&gt;Please reproduce it,&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349256?ContentTypeID=1</link><pubDate>Mon, 24 Jan 2022 12:54:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d3743a23-225f-4660-b8f5-386e9263859d</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NRF_LIBUARTE_ASYNC_DEFINE(libuarte1, 1, 3, 2, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3)&lt;/strong&gt;&amp;nbsp;this libuarte settings seems correct.&lt;/p&gt;
&lt;p&gt;Is this possible to send your whole project so that we can reproduce it ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Kazi Afroza Sultana&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349173?ContentTypeID=1</link><pubDate>Mon, 24 Jan 2022 09:53:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e1daa352-1dfc-42b7-a4c7-b685c48065b8</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;Is my libuarte setting correct ?&lt;/p&gt;
&lt;p&gt;NRF_LIBUARTE_ASYNC_DEFINE(libuarte1, 1, 3, 2, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3);&lt;/p&gt;
&lt;p&gt;or it&amp;#39;s conflicting with simple timer ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349096?ContentTypeID=1</link><pubDate>Mon, 24 Jan 2022 00:07:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f6d5047-cc62-4c38-8832-cc686743afd9</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;on main() :&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;if (GPS_flag_timer ==1)
			{//turn on LED
					//nrf_gpio_pin_set(15);
				 
			 GPSNeo_Process();
				 //GPS_flag_timer =0;	
					//set HRM Flag=1;
				 //GPS_flag_timer=0;	//&amp;lt;--still rebooting 30Dec21 Rixtronix LAB
				// ANT_HRM_flag_timer = 1;		
					// app_timer_start(m_single_shot_timer_ANT_HRM_Start, APP_TIMER_TICKS(500), NULL);  // single shot ANT HRM sample29 Dec 21 Rixtronix LAB
					//NRF_LOG_INFO(&amp;quot;GPS FLAG =1 and ANT_HRM_FLAG=0\r\n&amp;quot;);
					//wait for timer for HRM
					//turn off LED
					//nrf_gpio_pin_clear(15);
					//nrf_gpio_pin_set(16);
			}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;with this :&lt;/p&gt;
&lt;p&gt;#define TIMEOUT_VALUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;it has a better response, can go to GPSNeo_Process() on main, but can not go to ANT HRM event....??&lt;/p&gt;
&lt;p&gt;Simple timer freq = 250KHz&lt;/p&gt;
&lt;p&gt;Simple timer Timer instance used = 2&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349095?ContentTypeID=1</link><pubDate>Mon, 24 Jan 2022 00:06:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:93718ab8-77da-4b60-8307-dff0e7c5aac5</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;on ANT HRM event :&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;void ant_hrm_disp_evt_handler(ant_evt_t * p_ant_evt, void * p_context)
{
    ant_hrm_profile_t * p_profile = ( ant_hrm_profile_t *)p_context;
    if (p_ant_evt-&amp;gt;channel == p_profile-&amp;gt;channel_number)
    {
        switch (p_ant_evt-&amp;gt;event)
        {
            case EVENT_RX:
							
                if (p_ant_evt-&amp;gt;message.ANT_MESSAGE_ucMesgID == MESG_BROADCAST_DATA_ID
                 || p_ant_evt-&amp;gt;message.ANT_MESSAGE_ucMesgID == MESG_ACKNOWLEDGED_DATA_ID
                 || p_ant_evt-&amp;gt;message.ANT_MESSAGE_ucMesgID == MESG_BURST_DATA_ID)
                {  //originally
													//use timer for displaying message 24 December 2021 Rixtronix LAB, stop GPS,BSC,BSP activity.
												//GPS_flag_timer =0;	//stop GPS Activity avoid crash 30Dec21
										//if ((ANT_HRM_flag_timer==1)&amp;amp;&amp;amp;(GPS_flag_timer==0))
										
											 
											 //GPS_flag_timer =0;
									if (ANT_HRM_flag_timer ==1)
											{
													//nrf_gpio_pin_set(16);
													disp_message_decode(p_profile, p_ant_evt-&amp;gt;message.ANT_MESSAGE_aucPayload);
												//	ANT_HRM_flag_timer =0;
												  //GPS_flag_timer=1;
													//nrf_gpio_pin_clear(16);
														// GPS_flag_timer =1;
															 //set flag for UART READ 15 December 2021 Rixtronix LAB		
														//GPS_UART1_Flag=1;
												//set flag for ANT HRM SENSOR 24 December 2021 Rixtronix LAB		
								
											}		
										
                }//originally&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Any clues ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/349048?ContentTypeID=1</link><pubDate>Sat, 22 Jan 2022 06:17:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9dcc516d-4113-4246-aa6a-53630fbe3be3</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;/p&gt;
&lt;p&gt;Thanks for the reply,&lt;/p&gt;
&lt;p&gt;It works ok without softdevice , but when I use softdevice,&lt;/p&gt;
&lt;p&gt;It works one round LED1-&amp;gt;2-&amp;gt;3-&amp;gt; then error, all LEDs blinking.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How can I debug it ?&lt;/p&gt;
&lt;p&gt;DEBUG -DEBUG_NRF on preprocessor and other ways ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/348970?ContentTypeID=1</link><pubDate>Fri, 21 Jan 2022 14:36:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dacbd4eb-9592-4b52-8a47-cbac76474d30</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have tested this (adding your extra state&amp;nbsp;&lt;strong&gt;state_machine_state_change (APP_STATE_SINGLE_SHOT_ANT_HRM)&lt;/strong&gt;&amp;nbsp;and &lt;strong&gt;state_machine_state_change(APP_STATE_REPEATED_ANT_HRM&lt;/strong&gt;) ) with the attached code and all states (LED1, LED2, LED3 and LED4)&amp;nbsp; are reached. Could you please check whether all LEDs blink?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1261.main.c"&gt;devzone.nordicsemi.com/.../1261.main.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please check and let us know the output.&lt;/p&gt;
&lt;p&gt;Have a nice weekend.&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Kazi Afroza Sultana&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/348812?ContentTypeID=1</link><pubDate>Fri, 21 Jan 2022 00:02:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a762e2b-5894-4c09-b5b8-60758cf7bcf7</guid><dc:creator>RixtronixLAB</dc:creator><description>&lt;p&gt;Hi Kazi,&lt;/p&gt;
&lt;p&gt;Thanks for the reply,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m talking about both states,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the case :&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**@brief Function for executing the state entry action.
 */
static __INLINE void state_entry_action_execute(void) //originally 20Jan22 Rixtronix LAB
//void state_entry_action_execute(void)	
{
    switch (m_state)
    {
        case APP_STATE_SINGLE_SHOT:
            led_and_timer_control(BSP_BOARD_LED_0, APP_SIMPLE_TIMER_MODE_SINGLE_SHOT);
				    //start GPS from state machine, Rixtronix LAB 17 Jan 2022
				   	//ANT_HRM_flag_timer =0;
						
				    GPS_flag_timer=1;
				   
				    
					 
            break;

        case APP_STATE_REPEATED:
            //led_and_timer_control(BSP_BOARD_LED_1, APP_SIMPLE_TIMER_MODE_REPEATED); //originally 14Jan22 Rixtronix LAB
				    led_and_timer_control(BSP_BOARD_LED_2, APP_SIMPLE_TIMER_MODE_REPEATED);
				    //led_and_timer_control(BSP_BOARD_LED_2, APP_SIMPLE_TIMER_MODE_SINGLE_SHOT);
				   //NRF_LOG_INFO(&amp;quot;APP_STATE_REPEATED&amp;quot;);
				     GPS_flag_timer=0;
					   
				    
				    
					 
				    //led_and_timer_control(BSP_BOARD_LED_2, APP_SIMPLE_TIMER_MODE_SINGLE_SHOT);
            break;
				
				case APP_STATE_SINGLE_SHOT_ANT_HRM: 
					   led_and_timer_control(BSP_BOARD_LED_2, APP_SIMPLE_TIMER_MODE_SINGLE_SHOT); 
				     //NRF_LOG_INFO(&amp;quot;APP_STATE_SINGLE_SHOT_ANT_HRM&amp;quot;);
				     	
             ANT_HRM_flag_timer =1;					
            break;
				case APP_STATE_REPEATED_ANT_HRM:
					    led_and_timer_control(BSP_BOARD_LED_0, APP_SIMPLE_TIMER_MODE_REPEATED); 
					    ANT_HRM_flag_timer =0;					
					   break;
        default:
            APP_ERROR_HANDLER(m_state);
            break;
    }
}


void timeout_handler(void * p_context)
{
    switch (m_state)
    {
        uint32_t err_code;

        case APP_STATE_SINGLE_SHOT:
            if (--m_state_transit_counter != 0)
            {
                if (--m_toggle_led_counter == 0)
                {
                    m_toggle_led_counter = TOGGLE_LED_COUNTER;
                    bsp_board_led_invert(BSP_BOARD_LED_0);
                }

                err_code = app_simple_timer_start(APP_SIMPLE_TIMER_MODE_SINGLE_SHOT,
                                       timeout_handler,
                                       TIMEOUT_VALUE,
                                       NULL);
                APP_ERROR_CHECK(err_code);
            }
            else
            {
                state_machine_state_change(APP_STATE_REPEATED);
            }
            break;

        case APP_STATE_REPEATED:
            if (--m_state_transit_counter != 0)
            {
                if (--m_toggle_led_counter == 0)
                {
                    m_toggle_led_counter = TOGGLE_LED_COUNTER;
                   // bsp_board_led_invert(BSP_BOARD_LED_1);//originally 14Jan22 Rixtronix LAB
									  bsp_board_led_invert(BSP_BOARD_LED_2);
                }
            }
            else
            {
                bsp_board_led_on(BSP_BOARD_LED_0);
                //bsp_board_led_on(BSP_BOARD_LED_1);//originally 14Jan22 Rixtronix LAB
							  bsp_board_led_on(BSP_BOARD_LED_2);
							  

                //err_code = app_simple_timer_stop();
               // APP_ERROR_CHECK(err_code);

                nrf_delay_ms(GENERIC_DELAY_TIME);

                //state_machine_state_change(APP_STATE_SINGLE_SHOT); //originally 20Jan22
							  state_machine_state_change(APP_STATE_SINGLE_SHOT_ANT_HRM);
            }
            break;
						
			case APP_STATE_SINGLE_SHOT_ANT_HRM: 
											 if (--m_state_transit_counter != 0)
								 {
										if (--m_toggle_led_counter == 0)
										{
												m_toggle_led_counter = TOGGLE_LED_COUNTER;
												bsp_board_led_invert(BSP_BOARD_LED_0);
										}

										err_code = app_simple_timer_start(APP_SIMPLE_TIMER_MODE_SINGLE_SHOT,
																					 timeout_handler,
																					 TIMEOUT_VALUE,
																					 NULL);
										APP_ERROR_CHECK(err_code);
								}
								else
								{
										state_machine_state_change(APP_STATE_REPEATED_ANT_HRM);
								}				
            break;
								
			 case APP_STATE_REPEATED_ANT_HRM:			
								 if (--m_state_transit_counter != 0)
							{
									if (--m_toggle_led_counter == 0)
									{
											m_toggle_led_counter = TOGGLE_LED_COUNTER;
										 // bsp_board_led_invert(BSP_BOARD_LED_1);//originally 14Jan22 Rixtronix LAB
											bsp_board_led_invert(BSP_BOARD_LED_2);
									}
							}
							else
							{
									bsp_board_led_on(BSP_BOARD_LED_0);
									//bsp_board_led_on(BSP_BOARD_LED_1);//originally 14Jan22 Rixtronix LAB
									bsp_board_led_on(BSP_BOARD_LED_2);
									

									err_code = app_simple_timer_stop();
									APP_ERROR_CHECK(err_code);

									nrf_delay_ms(GENERIC_DELAY_TIME);

									//state_machine_state_change(APP_STATE_SINGLE_SHOT); //originally 20Jan22
									state_machine_state_change(APP_STATE_SINGLE_SHOT);//return to turn on GPS 20Jan22 Rixtronix LAB
							}   				 
				    break;

        default:
            APP_ERROR_HANDLER(m_state);
            break;
    }
}

&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;It never goes to state 3 and 4, what do I miss here ?&lt;/p&gt;
&lt;p&gt;Any clues ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding state ?</title><link>https://devzone.nordicsemi.com/thread/348770?ContentTypeID=1</link><pubDate>Thu, 20 Jan 2022 15:14:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d27cebc-ed9b-4b31-abe8-ffd5cf93e82d</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for your query.&lt;/p&gt;
&lt;p&gt;I would like to know few more information about function for executing the state entry action. Which state it is when you say adding a new state -&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;state_machine_state_change (APP_STATE_REPEATED_ANT_HRM) or the case APP_STATE_SINGLE_SHOT_ANT_HRM? I&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Kazi Afroza Sultana&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>