<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to PushButtonArray</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>Recent changes to PushButtonArray</description><atom:link href="https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 31 Mar 2019 00:20:56 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/feed" rel="self" type="application/rss+xml"/><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -50,6 +50,7 @@

 **owner**: ButtonOwner instance. Events are sent to owner.

+---
 ######boolean begin(byte maxButtons)######
 Call before any other method. This method alloc the array, check the return to make sure that the array was successfully allocated. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Sun, 31 Mar 2019 00:20:56 -0000</pubDate><guid>https://sourceforge.net6a9d6c4419af2c73dc4a53cc79ad65240cbdcd4f</guid></item><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -5,7 +5,7 @@

 * File: pPushButton.h
 * Dependences: pGlobals.h, pOwners.h
-* Em protuguês: [Classe PushButtonArray](https://perrobotica.fandom.com/pt-br/wiki/Classe_PushButtonArray)
+* Em português: [Classe PushButtonArray](https://perrobotica.fandom.com/pt-br/wiki/Classe_PushButtonArray)

 Public declarations:
 ~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Sun, 31 Mar 2019 00:19:54 -0000</pubDate><guid>https://sourceforge.net4ad6615ffb34cca1efdac8d01bcc7edccdbfc3ff</guid></item><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -5,6 +5,7 @@

 * File: pPushButton.h
 * Dependences: pGlobals.h, pOwners.h
+* Em protuguês: [Classe PushButtonArray](https://perrobotica.fandom.com/pt-br/wiki/Classe_PushButtonArray)

 Public declarations:
 ~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Sun, 31 Mar 2019 00:19:32 -0000</pubDate><guid>https://sourceforge.net90c34a03a1ce70b3b1f9d5d7ab2c179ead8376e8</guid></item><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -14,7 +14,7 @@
    virtual void buttonReleased(byte btID){}
 };

-class PushButtonArray: private ButtonOwner{
+class PushButtonArray{
 public:
    byte btCount=0;
    PushButton** but;
@@ -23,7 +23,7 @@
    PushButtonArray(ButtonOwner *owner);

    boolean begin(byte maxButtons);
-   byte addButton(byte buttonPin, boolean pullUp=true);
+   int addButton(byte buttonPin, boolean pullUp=true);
    void run();
    boolean isPressed(byte btID);

@@ -32,3 +32,59 @@
    virtual void onButtonReleased(byte btID){}
 };
 ~~~
+
+---
+#####How to use#####
+Call ***begin()*** before any method informing how many buttons you want in array.  Dont forget to check ***begin() ***return to make sure that the array was successfully allocated. 
+Add buttons to array calling ***addButton()*** informing pin and input mode.  
+Call ***run()*** at least once per loop to class trigger events.  
+Call ***isPressed()*** to check if one button is pressed. 
+
+***ButtonOwner***
+Is a abstract class to receive button's events. This is usefull when the class that respond the events, is not descending of ***PushButtonArray*** class. To use this way, derive ***ButtonOwner*** class, rewrite the events and use the constructor with owner to create ***PushButtonArray***'s instance.
+
+---
+######PushButtonArray(ButtonOwner *owner)######
+Constructor with button's owner. If you use this constructor, events will be send to owner and not to ***PushButtonArray*** class.
+
+**owner**: ButtonOwner instance. Events are sent to owner.
+
+######boolean begin(byte maxButtons)######
+Call before any other method. This method alloc the array, check the return to make sure that the array was successfully allocated. 
+
+* **maxButtons**: How many buttons in the array.
+* **return**: true if array was successfully allocated, false if not. 
+
+---
+######int addButton(byte buttonPin, boolean pullUp=true)######
+Add button on array. 
+
+* **buttonPin**: button pin.
+* **return**: The button's ID or negative value if any error occurred. 
+
+---
+######void run()######
+Call once per loop. This method trigger the events.
+
+---
+######boolean isPressed(byte btID)######
+Call to check if one button is pressed or not. 
+
+***btID***: ID of button
+**return**: true if the button is pressed , false if not.
+
+---
+######virtual void onButtonPressed(byte btID)######
+Event triggered when one button is pressed. To capture this event, derive ***PushButtonArray*** class and rewrite it. 
+This event is not triggered if the constructor with owner is used. 
+
+***btID***: ID of button
+
+---
+######virtual void onButtonReleased(byte btID)######
+Event triggered when button is released. To capture this event, derive ***PushButtonArray*** class and rewrite it. 
+This event is not triggered if the constructor with owner is used. 
+
+***btID***: ID of button
+
+
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Fri, 22 Mar 2019 20:18:35 -0000</pubDate><guid>https://sourceforge.net4639ab691db0556eb888f6efc67b8c5c2acd95a6</guid></item><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,7 +1,7 @@
-Class PushButton
+Class PushButtonArray
 ---

-Class to drive a single push button.
+Class to drive a array of push buttons.

 * File: pPushButton.h
 * Dependences: pGlobals.h, pOwners.h
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Wed, 20 Mar 2019 08:41:02 -0000</pubDate><guid>https://sourceforge.netc0c92cb18dc018a66bec4bb98efffd33d102ceae</guid></item><item><title>PushButtonArray modified by Perrotti</title><link>https://sourceforge.net/p/arduino-libs/wiki/PushButtonArray/</link><description>&lt;div class="markdown_content"&gt;&lt;h2 id="class-pushbutton"&gt;Class PushButton&lt;/h2&gt;
&lt;p&gt;Class to drive a single push button.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File: pPushButton.h&lt;/li&gt;
&lt;li&gt;Dependences: pGlobals.h, pOwners.h&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Public declarations:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kr"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;ButtonOwner&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;buttonPressed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btID&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;
    &lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;buttonReleased&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btID&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kr"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;PushButtonArray&lt;/span&gt;: &lt;span class="kt"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;ButtonOwner&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btCount&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;PushButton&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="nx"&gt;but&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;PushButtonArray&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;PushButtonArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ButtonOwner&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kr"&gt;boolean&lt;/span&gt; &lt;span class="nx"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;maxButtons&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;addButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;buttonPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;boolean&lt;/span&gt; &lt;span class="nx"&gt;pullUp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kr"&gt;boolean&lt;/span&gt; &lt;span class="nx"&gt;isPressed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kr"&gt;protected&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;onButtonPressed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btID&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;
    &lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nx"&gt;onButtonReleased&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;byte&lt;/span&gt; &lt;span class="nx"&gt;btID&lt;/span&gt;&lt;span class="p"&gt;){}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Perrotti</dc:creator><pubDate>Wed, 20 Mar 2019 08:39:06 -0000</pubDate><guid>https://sourceforge.net3fc1619835c487c0e069c6a533fbd627bd3855cb</guid></item></channel></rss>