CompDualStateButton_v0_32.ino

How to Use
  This example shows that when the dual state button component on the Nextion screen is released, the text of Text component will change one every time.

Author
  huang xianming (email:xianm.nosp@m.ing..nosp@m.huang.nosp@m.@ite.nosp@m.ad.cc)

Date
  2015/11/11 2016/12/25 bring HMI up to v0.32 to avoid too old issues by Patrick Martin, no other changes made

Copyright
  Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd.
  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

#include "Nextion.h"
/*
* Declare a dual state button object [page id:0,component id:1, component name: "bt0"].
*/
NexDSButton bt0 = NexDSButton(0, 1, "bt0");
NexText t0 = NexText(0, 2, "t0");
char buffer[100] = {0};
/*
* Register a dual state button object to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
&bt0,
NULL
};
/*
* Dual state button component pop callback function.
* In this example,the button's text value will plus one every time when it is released.
*/
void bt0PopCallback(void *ptr)
{
uint32_t dual_state;
NexDSButton *btn = (NexDSButton *)ptr;
dbSerialPrintln("b0PopCallback");
dbSerialPrint("ptr=");
dbSerialPrintln((uint32_t)ptr);
memset(buffer, 0, sizeof(buffer));
/* Get the state value of dual state button component . */
bt0.getValue(&dual_state);
if(dual_state)
{
t0.setText("HI! OPEN STATE");
}
else
{
t0.setText("HI! OFF STATE");
}
}
void setup(void)
{
/* Set the baudrate which is for debug and communicate with Nextion screen. */
nexInit();
/* Register the pop event callback function of the dual state button component. */
bt0.attachPop(bt0PopCallback, &bt0);
dbSerialPrintln("setup done");
}
void loop(void)
{
/*
* When a pop or push event occured every time,
* the corresponding component[right page id and component id] in touch event list will be asked.
*/
nexLoop(nex_listen_list);
}