<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevSide</title>
	<atom:link href="http://dev.sarasini.it/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://dev.sarasini.it</link>
	<description>Linux, PICs, Qt and more</description>
	<lastBuildDate>Sun, 01 May 2011 17:57:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ListView con SimpleAdapter e ListActivity</title>
		<link>http://dev.sarasini.it/?p=371</link>
		<comments>http://dev.sarasini.it/?p=371#comments</comments>
		<pubDate>Sun, 01 May 2011 17:56:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[adapter]]></category>
		<category><![CDATA[ArrayAdapter]]></category>
		<category><![CDATA[listActivity]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[listview]]></category>
		<category><![CDATA[simpleAdapter]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=371</guid>
		<description><![CDATA[Vediamo come realizzare un programma composto da una lista di elementi con tre TextView e una ImageView, collegata ai dati mediante un SimpleAdapter. MainActivity.java package it.sarasini.android.Lez_5_ListView_SimpleAdapter; &#160; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.ListActivity; import android.os.Bundle; import android.widget.SimpleAdapter; &#160; public class MainActivity extends ListActivity &#123; &#160; @Override public void onCreate&#40;Bundle savedInstanceState&#41; &#123; &#160; super.onCreate&#40;savedInstanceState&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>Vediamo come realizzare un programma composto da una lista di elementi con tre TextView e una ImageView, collegata ai dati mediante un SimpleAdapter. </p>
<p>MainActivity.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">it.sarasini.android.Lez_5_ListView_SimpleAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashMap</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Map</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.ListActivity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.SimpleAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainActivity <span style="color: #000000; font-weight: bold;">extends</span> ListActivity <span style="color: #009900;">&#123;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        ArrayList<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;&gt;</span> listaDati <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaDati <span style="color: #339933;">=</span> riempilistaDati<span style="color: #009900;">&#40;</span>listaDati<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> from <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;foto&quot;</span>, <span style="color: #0000ff;">&quot;nome&quot;</span>, <span style="color: #0000ff;">&quot;cognome&quot;</span>, <span style="color: #0000ff;">&quot;indirizzo&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> views <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> R.<span style="color: #006633;">id</span>.<span style="color: #006633;">image</span>, R.<span style="color: #006633;">id</span>.<span style="color: #006633;">text1</span>, R.<span style="color: #006633;">id</span>.<span style="color: #006633;">text2</span>, R.<span style="color: #006633;">id</span>.<span style="color: #006633;">text3</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
        SimpleAdapter mioAdapter <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleAdapter <span style="color: #009900;">&#40;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">this</span>, 			<span style="color: #666666; font-style: italic;">// The context where the View associated with this SimpleAdapter is running</span>
	listaDati,		<span style="color: #666666; font-style: italic;">// A List of Maps. Each entry in the List corresponds to one row in the list.</span>
	R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">item</span>,		<span style="color: #666666; font-style: italic;">// Resource identifier of a view layout</span>
	from,	 		<span style="color: #666666; font-style: italic;">// A list of column names that will be added to the Map associated with each item.</span>
	views 			<span style="color: #666666; font-style: italic;">// The views that should display data</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setListAdapter</span><span style="color: #009900;">&#40;</span>mioAdapter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> ArrayList<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;&gt;</span> riempilistaDati<span style="color: #009900;">&#40;</span>ArrayList<span style="color: #339933;">&lt;</span>Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;&gt;</span> listaDati<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Mario&quot;</span>, <span style="color: #0000ff;">&quot;Rossi&quot;</span>, <span style="color: #0000ff;">&quot;Via Roma 12 Bologna&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Paolo&quot;</span>, <span style="color: #0000ff;">&quot;Bianchi&quot;</span>, <span style="color: #0000ff;">&quot;Via Fermi 22 Milano&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Luca&quot;</span>, <span style="color: #0000ff;">&quot;Molli&quot;</span>, <span style="color: #0000ff;">&quot;Via Trento 15 Brescia&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Giorgio&quot;</span>, <span style="color: #0000ff;">&quot;Berlusconi&quot;</span>, <span style="color: #0000ff;">&quot;Via Appia 12 Lecce&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Luigi&quot;</span>, <span style="color: #0000ff;">&quot;Rutelli&quot;</span>, <span style="color: #0000ff;">&quot;Via Principale 132 Como&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Franco&quot;</span>, <span style="color: #0000ff;">&quot;Casini&quot;</span>, <span style="color: #0000ff;">&quot;Via Settima 14 Firenze&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Matteo&quot;</span>, <span style="color: #0000ff;">&quot;Lorenzi&quot;</span>, <span style="color: #0000ff;">&quot;Vicolo Stazione 7 Venezia&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Giovanni&quot;</span>, <span style="color: #0000ff;">&quot;Matteoli&quot;</span>, <span style="color: #0000ff;">&quot;Via Genova 77 Torino&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Leonardo&quot;</span>, <span style="color: #0000ff;">&quot;Polli&quot;</span>, <span style="color: #0000ff;">&quot;Via Campiana 34 Ancona&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Diego&quot;</span>, <span style="color: #0000ff;">&quot;Meruso&quot;</span>, <span style="color: #0000ff;">&quot;Via Serena 23 Palermo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	listaDati.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>creaMappa<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">img</span>, <span style="color: #0000ff;">&quot;Enrico&quot;</span>, <span style="color: #0000ff;">&quot;Giorini&quot;</span>, <span style="color: #0000ff;">&quot;Via Mattei 127 Rimini&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">return</span> listaDati<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;</span> creaMappa<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> foto, <span style="color: #003399;">String</span> nome, <span style="color: #003399;">String</span> cognome, <span style="color: #003399;">String</span> indirizzo<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	Map<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;</span> map <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashMap<span style="color: #339933;">&lt;</span>String, Object<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    	map.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;foto&quot;</span>, foto<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	map.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;nome&quot;</span>, nome<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	map.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;cognome&quot;</span>, cognome<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	map.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;indirizzo&quot;</span>, indirizzo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    	<span style="color: #000000; font-weight: bold;">return</span> map<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>   
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>item.xml</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span>   <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span>   <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;match_parent&quot;</span>   <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;match_parent&quot;</span>    <span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;horizontal&quot;</span>   <span style="color: #000066;">android:padding</span>=<span style="color: #ff0000;">&quot;5dp&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ImageView</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/image&quot;</span> <span style="color: #000066;">android:src</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/ImageView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/linearLayout1&quot;</span> <span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;TextView&quot;</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/text1&quot;</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:paddingLeft</span>=<span style="color: #ff0000;">&quot;5dp&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/TextView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;TextView&quot;</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/text2&quot;</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:paddingLeft</span>=<span style="color: #ff0000;">&quot;5dp&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/TextView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;TextView&quot;</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/text3&quot;</span> <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span> <span style="color: #000066;">android:paddingLeft</span>=<span style="color: #ff0000;">&quot;5dp&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/TextView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><a href="http://dev.sarasini.it/wp-content/uploads/2011/05/screen1.png"><img src="http://dev.sarasini.it/wp-content/uploads/2011/05/screen1.png" alt="ListView SimpleAdapter" title="Screenshot" width="288" height="480" class="alignnone size-full wp-image-377" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=371</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ListView con ArrayAdapter e ListActivity</title>
		<link>http://dev.sarasini.it/?p=353</link>
		<comments>http://dev.sarasini.it/?p=353#comments</comments>
		<pubDate>Sun, 01 May 2011 17:42:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[adapter]]></category>
		<category><![CDATA[adapterView]]></category>
		<category><![CDATA[ArrayAdapter]]></category>
		<category><![CDATA[listActivity]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[listview]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=353</guid>
		<description><![CDATA[Vediamo come realizzare un programma composto da una lista di elementi di tipo TextView collegata ai dati mediante un ArrayAdapter. Il codice è veramente semplice&#8230; MainActivity.java package it.sarasini.android.ListView_ArrayAdapter; &#160; import java.util.ArrayList; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; &#160; public class MainActivity extends ListActivity &#123; &#160; @Override public void onCreate&#40;Bundle savedInstanceState&#41; &#123; &#160; super.onCreate&#40;savedInstanceState&#41;; &#160; ArrayList [...]]]></description>
			<content:encoded><![CDATA[<p>Vediamo come realizzare un programma composto da una lista di elementi di tipo TextView collegata ai dati mediante un ArrayAdapter. Il codice è veramente semplice&#8230;</p>
<p>MainActivity.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">it.sarasini.android.ListView_ArrayAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.ListActivity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ArrayAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainActivity <span style="color: #000000; font-weight: bold;">extends</span> ListActivity <span style="color: #009900;">&#123;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #003399;">ArrayList</span> listaNomi <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi <span style="color: #339933;">=</span> riempiListaNomi<span style="color: #009900;">&#40;</span>listaNomi<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        ArrayAdapter mioAdapter <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayAdapter <span style="color: #009900;">&#40;</span>		
        <span style="color: #000000; font-weight: bold;">this</span>, 					<span style="color: #666666; font-style: italic;">// The context where the View associated with this SimpleAdapter is running</span>
        android.<span style="color: #006633;">R</span>.<span style="color: #006633;">layout</span>.<span style="color: #006633;">simple_list_item_1</span>, 	<span style="color: #666666; font-style: italic;">// Resource identifier of a view layout</span>
        listaNomi				<span style="color: #666666; font-style: italic;">// Data to display</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setListAdapter</span><span style="color: #009900;">&#40;</span>mioAdapter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">ArrayList</span> riempiListaNomi<span style="color: #009900;">&#40;</span><span style="color: #003399;">ArrayList</span> listaNomi<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Marco&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Paolo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Luca&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Giorgio&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Luigi&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Franco&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Matteo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Giovanni&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Leonardo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Diego&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        listaNomi.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Enrico&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">return</span> listaNomi<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>   
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://dev.sarasini.it/wp-content/uploads/2011/05/screen.png"><img class="alignnone size-full wp-image-363" title="Screenshot" src="http://dev.sarasini.it/wp-content/uploads/2011/05/screen.png" alt="ListActivity ArrayAdapter" width="288" height="480" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=353</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corso Android</title>
		<link>http://dev.sarasini.it/?p=334</link>
		<comments>http://dev.sarasini.it/?p=334#comments</comments>
		<pubDate>Thu, 17 Mar 2011 13:35:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[actionsms]]></category>
		<category><![CDATA[corso]]></category>
		<category><![CDATA[lezioni]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=334</guid>
		<description><![CDATA[Si è concluso il corso di programmazione di base di dispositivi Android svolto da me e da Maurizio Cozzetto all&#8217;ITIS Castelli di Brescia. Pubblico qui un po&#8217; di materiale. Slide delle lezioni e del progetto finale, comparativa dispositivi android in commercio ActionSMS (progetto finale) ActionSMS è un progetto realizzato per l&#8217;ultima lezione del corso con [...]]]></description>
			<content:encoded><![CDATA[<p>Si è concluso il corso di programmazione di base di dispositivi Android svolto da me e da <a href="http://www.mauriziocozzetto.it">Maurizio Cozzetto</a> all&#8217;ITIS Castelli di Brescia. Pubblico qui un po&#8217; di materiale.</p>
<p>Slide delle lezioni e del progetto finale, comparativa dispositivi android in commercio<br />
<a class="downloadlink" href="http://dev.sarasini.it/wp-content/plugins/download-monitor/download.php?id=7" title=" downloaded 224 times" >Slide Corso Android (224)</a></p>
<p>ActionSMS (progetto finale)<br />
<a class="downloadlink" href="http://dev.sarasini.it/wp-content/plugins/download-monitor/download.php?id=8" title=" downloaded 199 times" >Sorgente ActionSMS (199)</a></p>
<p>ActionSMS è un progetto realizzato per l&#8217;ultima lezione del corso con le seguenti funzionalità:<br />
- Lettura tramite sintesi vocale degli sms in arrivo<br />
- Controllo remoto del cellulare tramite sms<br />
- Invio di sms<br />

<a href='http://dev.sarasini.it/?attachment_id=335' title='action_sms_1'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2011/03/action_sms_1-150x150.jpg" class="attachment-thumbnail" alt="action_sms_1" title="action_sms_1" /></a>
<a href='http://dev.sarasini.it/?attachment_id=336' title='action_sms_2'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2011/03/action_sms_2-150x150.jpg" class="attachment-thumbnail" alt="action_sms_2" title="action_sms_2" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=334</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Inviare SMS all&#8217;emulatore</title>
		<link>http://dev.sarasini.it/?p=325</link>
		<comments>http://dev.sarasini.it/?p=325#comments</comments>
		<pubDate>Thu, 03 Mar 2011 11:54:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[emulatore]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=325</guid>
		<description><![CDATA[Può capitare di dover inviare un sms all&#8217;emulatore di Android ad esempio per testare un SMS reciver. Vediamo come fare. Avviamo l&#8217;emulatore. Poi digitiamo da terminale: ./adb devices otterremo qualcosa di simile: List of devices attached emulator-5554 device 5554 è la porta dell&#8217;emulatore che ci servirà per connetterci via telnet. Digitiamo: telnet localhost 5554 Ora [...]]]></description>
			<content:encoded><![CDATA[<p>Può capitare di dover inviare un sms all&#8217;emulatore di Android ad esempio per testare un SMS reciver. Vediamo come fare.<br />
Avviamo l&#8217;emulatore. Poi digitiamo da terminale:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>adb devices</pre></div></div>

<p>otterremo qualcosa di simile:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">List of devices attached
emulator-<span style="color: #000000;">5554</span>	device</pre></div></div>

<p>5554 è la porta dell&#8217;emulatore che ci servirà per connetterci via telnet.<br />
Digitiamo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">telnet localhost <span style="color: #000000;">5554</span></pre></div></div>

<p>Ora siamo pronti ad inviare un sms digitando</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sms send numero messaggio</pre></div></div>

<p>Ad esempio</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sms send <span style="color: #000000;">123456789</span> Ciao come va?</pre></div></div>

<p>Dopo pochi secondi vedremo arrivare sull&#8217;emulatore il nostro messaggio.</p>
<p><a href="http://dev.sarasini.it/wp-content/uploads/2011/03/sms_emulatore1.jpg"><img title="SMS Emulatore" src="http://dev.sarasini.it/wp-content/uploads/2011/03/sms_emulatore1.jpg" alt="SMS Emulatore" width="358" height="298" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=325</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grafici con AndroidPlot</title>
		<link>http://dev.sarasini.it/?p=313</link>
		<comments>http://dev.sarasini.it/?p=313#comments</comments>
		<pubDate>Tue, 01 Mar 2011 09:05:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[grafici]]></category>
		<category><![CDATA[plot]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=313</guid>
		<description><![CDATA[AndroidPlot è una libreria java per Android che consente la creazione di grafici statici e dinamici in modo semplice ed efficace. Dispone anche di un piccolo wiki con alcuni esempi pronti. Vediamo un semplice programma che visualizza su un grafico a barre i valori letti dall&#8217;accelerometro. MainActivity.java package it.sarasini.android.graficoaccelerometri; &#160; import it.sarasini.android.graficoaccelerometri.R; import java.util.Arrays; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://androidplot.com/wiki/Home" target="_blank">AndroidPlot</a> è una libreria java per Android che consente la creazione di grafici statici e dinamici in modo semplice ed efficace. Dispone anche di un piccolo wiki con alcuni esempi pronti.</p>
<p><img class="alignnone" title="Grafico" src="http://androidplot.com/w/images/d/d8/Dynamicplot.jpg" alt="Grafico" width="305" height="109" /></p>
<p><img class="alignnone" title="Grafico" src="http://androidplot.com/w/images/c/cb/Simplexyplot1.jpg" alt="Grafico" width="305" height="106" /></p>
<p>Vediamo un semplice programma che visualizza su un grafico a barre i valori letti dall&#8217;accelerometro.</p>
<p>MainActivity.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">it.sarasini.android.graficoaccelerometri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">it.sarasini.android.graficoaccelerometri.R</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Arrays</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.androidplot.xy.BarFormatter</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.androidplot.xy.BarRenderer</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.androidplot.xy.BoundaryMode</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.androidplot.xy.SimpleXYSeries</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.androidplot.xy.XYPlot</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.Color</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.hardware.Sensor</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.hardware.SensorEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.hardware.SensorEventListener</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.hardware.SensorManager</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MainActivity <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #000000; font-weight: bold;">implements</span> SensorEventListener <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> SensorManager mSensorManager <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> XYPlot grafico <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> SimpleXYSeries serie <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        grafico <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>XYPlot<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">grafico</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        makeChart<span style="color: #009900;">&#40;</span>grafico<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        mSensorManager <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>SensorManager<span style="color: #009900;">&#41;</span> getSystemService<span style="color: #009900;">&#40;</span>SENSOR_SERVICE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	mSensorManager.<span style="color: #006633;">registerListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, mSensorManager.<span style="color: #006633;">getDefaultSensor</span><span style="color: #009900;">&#40;</span>Sensor.<span style="color: #006633;">TYPE_ACCELEROMETER</span><span style="color: #009900;">&#41;</span>, SensorManager.<span style="color: #006633;">SENSOR_DELAY_UI</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> makeChart<span style="color: #009900;">&#40;</span>XYPlot grafico<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    	serie <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleXYSeries<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;valori&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    	grafico.<span style="color: #006633;">addSeries</span><span style="color: #009900;">&#40;</span>serie, BarRenderer.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000000; font-weight: bold;">new</span> BarFormatter<span style="color: #009900;">&#40;</span><span style="color: #003399;">Color</span>.<span style="color: #006633;">BLUE</span>, <span style="color: #003399;">Color</span>.<span style="color: #006633;">DKGRAY</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">setDomainStepValue</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">setTicksPerRangeLabel</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        grafico.<span style="color: #006633;">setDomainValueFormat</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> MyFormat<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        grafico.<span style="color: #006633;">setRangeBoundaries</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">11</span>, <span style="color: #cc66cc;">11</span>, BoundaryMode.<span style="color: #006633;">FIXED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// update our domain and range axis labels:</span>
        grafico.<span style="color: #006633;">setDomainLabel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Axis&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">getDomainLabelWidget</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">setRangeLabel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Angle (Degs)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">getRangeLabelWidget</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        BarRenderer barRenderer <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>BarRenderer<span style="color: #009900;">&#41;</span> grafico.<span style="color: #006633;">getRenderer</span><span style="color: #009900;">&#40;</span>BarRenderer.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>barRenderer <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
            barRenderer.<span style="color: #006633;">setBarWidth</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span>, BarRenderer.<span style="color: #006633;">BarWidthStyle</span>.<span style="color: #006633;">FIXED_WIDTH</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        grafico.<span style="color: #006633;">setGridPadding</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        grafico.<span style="color: #006633;">disableAllMarkup</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onAccuracyChanged<span style="color: #009900;">&#40;</span>Sensor sensor, <span style="color: #000066; font-weight: bold;">int</span> accuracy<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// TODO Auto-generated method stub</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	@Override
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onSensorChanged<span style="color: #009900;">&#40;</span>SensorEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">sensor</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> Sensor.<span style="color: #006633;">TYPE_ACCELEROMETER</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Dalla documentazione:</span>
			<span style="color: #666666; font-style: italic;">// All values are in SI units (m/s^2) and  measure the</span>
			<span style="color: #666666; font-style: italic;">// acceleration applied to the phone minus the force of gravity. </span>
&nbsp;
			<span style="color: #003399;">Number</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> series1Numbers <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>event.<span style="color: #006633;">values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, event.<span style="color: #006633;">values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, event.<span style="color: #006633;">values</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
	        serie.<span style="color: #006633;">setModel</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Arrays</span>.<span style="color: #006633;">asList</span><span style="color: #009900;">&#40;</span>series1Numbers<span style="color: #009900;">&#41;</span>, SimpleXYSeries.<span style="color: #006633;">ArrayFormat</span>.<span style="color: #006633;">Y_VALS_ONLY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grafico.<span style="color: #006633;">redraw</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>MyFormat.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">it.sarasini.android.graficoaccelerometri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.FieldPosition</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.Format</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.ParsePosition</span><span style="color: #339933;">;</span>
&nbsp;
@SuppressWarnings<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serial&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyFormat <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">Format</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        @Override
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">StringBuffer</span> format<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> obj, <span style="color: #003399;">StringBuffer</span> toAppendTo, <span style="color: #003399;">FieldPosition</span> pos<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        	<span style="color: #003399;">Number</span> num <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Number</span><span style="color: #009900;">&#41;</span> obj<span style="color: #339933;">;</span>
            <span style="color: #666666; font-style: italic;">// using num.intValue() will floor the value, so we add 0.5 to round instead:</span>
            <span style="color: #000066; font-weight: bold;">int</span> roundNum <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#40;</span>num.<span style="color: #006633;">floatValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> 0.5f<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>roundNum<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
                    toAppendTo.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;X&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
                    toAppendTo.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
                    toAppendTo.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Z&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">default</span><span style="color: #339933;">:</span>
                    toAppendTo.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Unknown&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> toAppendTo<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        @Override
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> parseObject<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> source, <span style="color: #003399;">ParsePosition</span> pos<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// We don't use this so just return null for now.</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><img class="alignnone size-full wp-image-315" title="Grafici accelerometro" src="http://dev.sarasini.it/wp-content/uploads/2011/03/grafici.png" alt="Grafici accelerometro" width="320" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=313</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>0xdroid su Devkit8000</title>
		<link>http://dev.sarasini.it/?p=265</link>
		<comments>http://dev.sarasini.it/?p=265#comments</comments>
		<pubDate>Wed, 03 Nov 2010 13:04:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[0xdroid]]></category>
		<category><![CDATA[devkit]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=265</guid>
		<description><![CDATA[Grazie alla community di 0xdroid è possibile installare facilmente Android su Beagleboard e su Devkit8000. Vediamo come fare. Prendiamo la solita SD assicurandoci che la prima partizione sia di tipo Fat32 e di almeno 100Mb. Scarichiamo l&#8217;immagine già pronta di Android Eclair: download Scarichiamo il nuovo bootloader necessario per avviare Android: download Estraiamo il file [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="0xdroid" src="http://code.google.com/p/0xdroid/logo?cct=1282725977" alt="" width="55" height="55" /><br />
Grazie alla community di <a href="http://code.google.com/p/0xdroid">0xdroid</a> è possibile installare facilmente Android su Beagleboard e su Devkit8000. Vediamo come fare.</p>
<p>Prendiamo la solita SD assicurandoci che la prima partizione sia di tipo Fat32 e di almeno 100Mb.<br />
Scarichiamo l&#8217;immagine già pronta di Android Eclair: <a href="http://downloads.0xlab.org/release/devkit8k-eclair-0x5-sgx/devkit8k-eclair-0x5_sgx.zip">download</a><br />
Scarichiamo il nuovo bootloader necessario per avviare Android: <a href="http://downloads.0xlab.org/release/devkit8k-eclair-0x4/flash-uboot.bin">download</a></p>
<p>Estraiamo il file devkit8k-eclair-0x5_sgx.zip nella prima partizione della SD e copiamo anche il file flash-uboot.bin.<br />
Modifichiamo il file install.conf decommentando la riga relativa al U_BOOT_IMAGE. Controllate inoltre che sia selezionato il display corretto.</p>
<p>Ora inseriamo la SD nella nostra Devkit8000. La colleghiamo al nostro pc tramite seriale (su Linux è molto comodo GtkTerm) e accendiamo. Interrompiamo l&#8217;autoboot e digitiamo i seguenti comandi (Attenzione questi comandi possono danneggiare la vostra scheda, non mi assumo nessuna responsabilità, provateli a vostro rischio e pericolo <img src='http://dev.sarasini.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mmcinit
fatload mmc <span style="color: #000000;">0</span>:<span style="color: #000000;">1</span> <span style="color: #000000;">80000000</span> flash-uboot.bin
nand unlock
nand ecc sw
nand erase <span style="color: #000000;">80000</span> <span style="color: #000000;">160000</span>
nand write.i <span style="color: #000000;">80000000</span> <span style="color: #000000;">80000</span> <span style="color: #000000;">160000</span></pre></div></div>

<p>Adesso riavviamo. Interrompiamo ancora l&#8217;autoboot e digitiamo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mmc init
fatload mmc <span style="color: #000000;">0</span> <span style="color: #000000;">80300000</span> uimage.bin
bootm <span style="color: #000000;">80300000</span></pre></div></div>

<p>Si avvierà l&#8217;installer di Android. Lasciamolo lavorare. A processo completato troveremo queste scritte:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Press <span style="color: #7a0874; font-weight: bold;">&#91;</span>Enter<span style="color: #7a0874; font-weight: bold;">&#93;</span> to activate shell
Welcome to 0xdroid Image Installer
&nbsp;
Mounting SD card...
Copying files..
	<span style="color: #000000; font-weight: bold;">*</span> 0xkernel.bin
	<span style="color: #000000; font-weight: bold;">*</span> android.ubi
	<span style="color: #000000; font-weight: bold;">*</span> flash-uboot.bin
Writing android.ubi into NAND flash...
File System :: Done<span style="color: #000000; font-weight: bold;">!</span>
Check point
Erase NAND flash <span style="color: #7a0874; font-weight: bold;">&#40;</span>Kernel<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Writing 0xkernel.bin into NAND flash...
starting from <span style="color: #000000;">0</span>
&nbsp;
Kernel :: Done<span style="color: #000000; font-weight: bold;">!</span>
Check point
Erase NAND flash <span style="color: #7a0874; font-weight: bold;">&#40;</span>U-Boot<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Writing into NAND flash...
starting from <span style="color: #000000;">0</span>
U-Boot :: Done<span style="color: #000000; font-weight: bold;">!</span>
Setup U-Boot Env...
U-Boot Env :: Done<span style="color: #000000; font-weight: bold;">!</span>
All done. You may reboot now.</pre></div></div>

<p>Rimuoviamo la SD e riavviamo. Se tutto è andato a buon fine si avvierà Android</p>
<p>Alcuni links utili:<br />
<a href="http://code.google.com/p/0xdroid/"> http://code.google.com/p/0xdroid/</a><br />
<a href="http://code.google.com/p/0xdroid/wiki/UsingPreBuiltImages"> http://code.google.com/p/0xdroid/wiki/UsingPreBuiltImages</a><br />
<a href="http://code.google.com/p/0xdroid/wiki/EnhanceButton"> http://code.google.com/p/0xdroid/wiki/EnhanceButton</a><br />
<a href="http://www.armkits.com/Product/devkit8000.asp"> http://www.armkits.com/Product/devkit8000.asp</a></p>

<a href='http://dev.sarasini.it/?attachment_id=272' title='1'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/1-150x150.jpg" class="attachment-thumbnail" alt="1" title="1" /></a>
<a href='http://dev.sarasini.it/?attachment_id=273' title='2'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/2-150x150.jpg" class="attachment-thumbnail" alt="2" title="2" /></a>
<a href='http://dev.sarasini.it/?attachment_id=274' title='3'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/3-150x150.jpg" class="attachment-thumbnail" alt="3" title="3" /></a>
<a href='http://dev.sarasini.it/?attachment_id=275' title='4'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/4-150x150.jpg" class="attachment-thumbnail" alt="4" title="4" /></a>
<a href='http://dev.sarasini.it/?attachment_id=276' title='5'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/5-150x150.jpg" class="attachment-thumbnail" alt="5" title="5" /></a>
<a href='http://dev.sarasini.it/?attachment_id=277' title='6'><img width="150" height="150" src="http://dev.sarasini.it/wp-content/uploads/2010/11/6-150x150.jpg" class="attachment-thumbnail" alt="6" title="6" /></a>

]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=265</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telecomando IR con Pic</title>
		<link>http://dev.sarasini.it/?p=224</link>
		<comments>http://dev.sarasini.it/?p=224#comments</comments>
		<pubDate>Sun, 10 Oct 2010 14:37:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PICs]]></category>
		<category><![CDATA[infrarossi]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[telecomando]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=224</guid>
		<description><![CDATA[Vediamo come realizzare un semplice telecomando usando i Pic. Ci servono un ricevitore infrarossi a 3 pin (come quelli usati nei televisori), un led ad infrarossi, alcune resistenze, condensatori, led e transistor, e naturalmente un paio di Pic. Il ricevitore che ho utilizzato è l&#8217;SFH 5110 a 36kHz (datasheet) Il led IR invece è un [...]]]></description>
			<content:encoded><![CDATA[<p>Vediamo come realizzare un semplice telecomando usando i Pic.</p>
<p>Ci servono un ricevitore infrarossi a 3 pin (come quelli usati nei televisori), un led ad infrarossi, alcune resistenze, condensatori, led e transistor, e naturalmente un paio di Pic.</p>
<p>Il ricevitore che ho utilizzato è l&#8217;SFH 5110 a 36kHz (<a href="http://docs-europe.origin.electrocomponents.com/webdocs/08b4/0900766b808b4438.pdf">datasheet</a>)<br />
<img class="alignnone size-full wp-image-227" style="margin: 5px;" title="Ricevitore IR" src="http://dev.sarasini.it/wp-content/uploads/2010/09/ric_ir.jpg" alt="" width="100" height="100" /></p>
<p>Il led IR invece è un comune led con lunghezza d&#8217;onda pari a 940nm.</p>
<p>Ecco il circuito ricevente<br />
<img class="alignnone size-full wp-image-230" title="circuito_ric" src="http://dev.sarasini.it/wp-content/uploads/2010/09/circuito_ric.jpg" alt="" width="415" height="281" /></p>
<p>E il telecomando<br />
<img class="alignnone size-full wp-image-249" title="Telecomando IR" src="http://dev.sarasini.it/wp-content/uploads/2010/09/tel_ir.jpg" alt="" width="460" height="222" /></p>
<p>Ho utilizzato un protocollo di comunicazione simile al protocollo Sony. un segnale alto di 2400us e una pausa di 300us all&#8217;inizio di ogni trama, 1 generato con un segnale alto di 1200us e una pausa di 600us, 0 generato con un segnale alto di 600us e una pausa di 600us.<br />
Il ricevitore riconosce segnali con frequenza pari a 36kHz, quindi il segnale dovrà essere generato con tale frequenza (infatti nell&#8217;immagine si vede il segnale alto rappresentato come una serie di &#8220;alti-bassi&#8221;).<br />
<img class="alignnone size-full wp-image-239" title="protocollo" src="http://dev.sarasini.it/wp-content/uploads/2010/09/protocollo.jpg" alt="" width="600" height="200" /></p>
<p><img class="alignnone size-full wp-image-261" title="Segnale ricevuto" src="http://dev.sarasini.it/wp-content/uploads/2010/09/segnale.jpg" alt="" width="500" height="287" /></p>
<p>Il telecomando è molto semplice, si limita ad inviare continuamente il segnale alla frequenza di 36Khz. Per realizzare un telecomando completo è sufficiente collegare dei pulsanti e associare ad ognuno di essi l&#8217;invio di una trama diversa.<br />
Il ricevitore è più complesso. Viene utilizzato il timer0 per misurare la lunghezza dei dati ricevuti in modo da poterli riconoscere. Tutto questo viene fatto senza utilizzare interrupt, perché il pic scelto è molto economico e non li supporta. L&#8217;algoritmo inizia cercando il segnale alto di start e verificando la sua lunghezza. Quando lo trova si prepara a ricevere 6 numeri (possono essere anche molti di più volendo) controllando ogni volta la loro lunghezza. Se la lunghezza non corrisponde ne ad un 1 ne ad uno 0 si ricomincia da capo. Chiaramente non cerca il valore esatto ma vengono ammessi più valori compresi in un intervallo.<br />
Ogni volta che riceve un valore corretto lo inserisce nella coda e controlla la sequenza.</p>
<p><img class="alignnone size-full wp-image-262" title="Circuito ricevitore" src="http://dev.sarasini.it/wp-content/uploads/2010/09/ricevitore.jpg" alt="" width="500" height="390" /></p>
<p>Codice ricevitore main.c</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &quot;main.h&quot;</span>
&nbsp;
<span style="color: #339900;">#define  PIN_LED        PIN_B4</span>
<span style="color: #339900;">#define  PIN_SIGNAL     PIN_B2</span>
&nbsp;
<span style="color: #339900;">#define  SEGNALE_ALTO   !input(PIN_B5)</span>
<span style="color: #339900;">#define  SEGNALE_BASSO  input(PIN_B5)</span>
&nbsp;
<span style="color: #339900;">#define  MAX_DATA_RX    6</span>
&nbsp;
<span style="color: #0000ff;">int</span> data_rx<span style="color: #008000;">&#91;</span>MAX_DATA_RX<span style="color: #008000;">&#93;</span>        <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">2</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> data_colpito<span style="color: #008000;">&#91;</span>MAX_DATA_RX<span style="color: #008000;">&#93;</span>   <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> cancella<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> shift_sx<span style="color: #008000;">&#40;</span>byte data<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> data<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">short</span> controlla<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
      <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
         <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
               <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
                  <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>data_rx<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> data_colpito<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
                     <span style="color: #0000ff;">return</span> TRUE<span style="color: #008080;">;</span>
&nbsp;
   <span style="color: #0000ff;">return</span> FALSE<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">long</span> <span style="color: #0000dd;">time</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> i<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> dato<span style="color: #008080;">;</span>
&nbsp;
   setup_timer_0<span style="color: #008000;">&#40;</span>RTCC_INTERNAL<span style="color: #000040;">|</span>RTCC_DIV_16<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
&nbsp;
   delay_ms<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">200</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
&nbsp;
   <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
      <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>SEGNALE_BASSO<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>         <span style="color: #666666;">// aspetto segnale alto</span>
      set_timer0<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                <span style="color: #666666;">// inizio a contare</span>
      <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>SEGNALE_ALTO<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>          <span style="color: #666666;">// aspetto che finisca</span>
      <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>get_timer0<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">105</span><span style="color: #008000;">&#41;</span>         <span style="color: #666666;">// se non è lo start ricomincio</span>
         <span style="color: #0000ff;">continue</span><span style="color: #008080;">;</span>
&nbsp;
      <span style="color: #666666;">// trovato lo start prendo la sequenza</span>
      <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>SEGNALE_BASSO<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                  <span style="color: #666666;">// aspetto segnale alto</span>
&nbsp;
      set_timer0<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                         <span style="color: #666666;">// inizio a contare il dato</span>
      <span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">6</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>             
         <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>SEGNALE_ALTO<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                <span style="color: #666666;">// aspetto che finisca il dato</span>
         <span style="color: #0000dd;">time</span> <span style="color: #000080;">=</span> get_timer0<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                <span style="color: #666666;">// salvo il tempo del dato</span>
         set_timer0<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                      <span style="color: #666666;">// inizio a contare la pausa</span>
&nbsp;
         <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">59</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">&amp;&amp;</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            dato <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>                        <span style="color: #666666;">// sto ricevendo un 1</span>
         <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">24</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">&amp;&amp;</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            dato <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>                        <span style="color: #666666;">// sto ricevendo uno 0</span>
         <span style="color: #0000ff;">else</span>
         <span style="color: #008000;">&#123;</span>
            cancella<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                      <span style="color: #666666;">// cancello tutto</span>
            <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>                           <span style="color: #666666;">// ricomincio</span>
         <span style="color: #008000;">&#125;</span>
&nbsp;
         <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>SEGNALE_BASSO<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>               <span style="color: #666666;">// aspetto che finisca la pausa</span>
         <span style="color: #0000dd;">time</span> <span style="color: #000080;">=</span> get_timer0<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                <span style="color: #666666;">// salvo il tempo della pausa</span>
         set_timer0<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                      <span style="color: #666666;">// inizio a contare il prossimo dato</span>
&nbsp;
         <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">time</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">30</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            shift_sx<span style="color: #008000;">&#40;</span>dato<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>                  <span style="color: #666666;">// il dato è corretto e lo salvo</span>
         <span style="color: #0000ff;">else</span>
         <span style="color: #008000;">&#123;</span>
            cancella<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
         <span style="color: #008000;">&#125;</span>
      <span style="color: #008000;">&#125;</span>
&nbsp;
      <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>controlla<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
         output_high<span style="color: #008000;">&#40;</span>PIN_LED<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         delay_ms<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">200</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         output_low<span style="color: #008000;">&#40;</span>PIN_LED<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
         cancella<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Codice ricevitore main.h</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &quot;12F508.h&quot;;</span>
&nbsp;
<span style="color: #339900;">#FUSES NOWDT</span>
<span style="color: #339900;">#FUSES INTRC                    //Internal RC Osc</span>
<span style="color: #339900;">#FUSES NOPROTECT                //Code not protected from reading</span>
<span style="color: #339900;">#FUSES NOMCLR                   //Master Clear pin used for I/O</span>
&nbsp;
<span style="color: #339900;">#use delay(clock=4000000)</span></pre></div></div>

<p>Codice telecomando main.c</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &quot;main.h&quot;</span>
<span style="color: #339900;">#include &quot;ir.h&quot;</span>
&nbsp;
<span style="color: #0000ff;">void</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   setup_adc_ports<span style="color: #008000;">&#40;</span>NO_ANALOGS<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   setup_adc<span style="color: #008000;">&#40;</span>ADC_CLOCK_INTERNAL<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   setup_wdt<span style="color: #008000;">&#40;</span>WDT_OFF<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   setup_timer_0<span style="color: #008000;">&#40;</span>RTCC_INTERNAL<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   setup_timer_1<span style="color: #008000;">&#40;</span>T1_DISABLED<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
      invia_start<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_uno<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_uno<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_uno<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_zero<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_uno<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      invia_zero<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
      delay_ms<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Codice ir.h</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define  CYC_DELAY         CYC_DELAY</span>
<span style="color: #339900;">#define  US_FINAL_DELAY    600</span>
&nbsp;
<span style="color: #0000ff;">void</span> invia_start<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_us<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">300</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> invia_uno<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_us<span style="color: #008000;">&#40;</span>US_FINAL_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> invia_zero<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_high<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_cycles<span style="color: #008000;">&#40;</span>CYC_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   output_low<span style="color: #008000;">&#40;</span>PIN_B2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   delay_us<span style="color: #008000;">&#40;</span>US_FINAL_DELAY<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Codice telecomando main.h</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &quot;18F1330.h&quot;;</span>
<span style="color: #339900;">#device adc=8</span>
&nbsp;
<span style="color: #339900;">#FUSES NOWDT                    //No Watch Dog Timer</span>
<span style="color: #339900;">#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale</span>
<span style="color: #339900;">#FUSES HS                       //High speed Osc (&amp;gt; 4mhz)</span>
<span style="color: #339900;">#FUSES FCMEN                    //Fail-safe clock monitor enabled</span>
<span style="color: #339900;">#FUSES BROWNOUT                 //Reset when brownout detected</span>
<span style="color: #339900;">#FUSES BORV27                   //Brownout reset at 2.7V</span>
<span style="color: #339900;">#FUSES PUT                      //Power Up Timer</span>
<span style="color: #339900;">#FUSES NOCPD                    //No EE protection</span>
<span style="color: #339900;">#FUSES STVREN                   //Stack full/underflow will cause reset</span>
<span style="color: #339900;">#FUSES NODEBUG                  //No Debug mode for ICD</span>
<span style="color: #339900;">#FUSES NOWRT                    //Program memory not write protected</span>
<span style="color: #339900;">#FUSES NOWRTD                   //Data EEPROM not write protected</span>
<span style="color: #339900;">#FUSES NOWRTC                   //configuration not registers write protected</span>
<span style="color: #339900;">#FUSES IESO                     //Internal External Switch Over mode enabled</span>
<span style="color: #339900;">#FUSES NOEBTR                   //Memory not protected from table reads</span>
<span style="color: #339900;">#FUSES NOEBTRB                  //Boot block not protected from table reads</span>
<span style="color: #339900;">#FUSES NOMCLR                     //Master Clear pin disabled</span>
<span style="color: #339900;">#FUSES NOPROTECT                //Code not protected from reading</span>
<span style="color: #339900;">#FUSES NOCPB                    //No Boot Block code protection</span>
<span style="color: #339900;">#FUSES NOWRTB                   //Boot block not write protected</span>
<span style="color: #339900;">#FUSES BBSIZ1K                  //1K words Boot Block size</span>
<span style="color: #339900;">#FUSES T1OSCA6                  //T1 oscillator pin on A6</span>
<span style="color: #339900;">#FUSES NOPWMPIN                 //PWM outputs drive active state upon Reset</span>
<span style="color: #339900;">#FUSES HPOL_HIGH                //High-Side Transistors Polarity is Active-High (PWM 1,3,5 and 7)</span>
<span style="color: #339900;">#FUSES LPOL_HIGH                //Low-Side Transistors Polarity is Active-High (PWM 0,2,4 and 6)</span>
&nbsp;
<span style="color: #339900;">#use delay(clock=20000000)</span></pre></div></div>

<p>Circuito con 4 ricevitori per una ricezione a 360°<br />
<a href="http://dev.sarasini.it/wp-content/uploads/2010/11/ricevitore4.jpg"><img src="http://dev.sarasini.it/wp-content/uploads/2010/11/ricevitore4.jpg" alt="" title="Circuito con 4 ricevitori" width="450" height="380" class="alignnone size-full wp-image-296" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=224</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bluetooth scanner con Bluez</title>
		<link>http://dev.sarasini.it/?p=211</link>
		<comments>http://dev.sarasini.it/?p=211#comments</comments>
		<pubDate>Thu, 27 May 2010 11:05:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://dev.sarasini.it/?p=211</guid>
		<description><![CDATA[Ecco un semplice programma in grado di rilevare la presenza di dispositivi bluetooth scritto in C++ (con Qt) utilizzando le librerie BlueZ su Linux. Link utili: http://www.bluez.org http://people.csail.mit.edu/albert/bluez-intro http://it.wikipedia.org/wiki/Bluetooth File main.cpp #include &#60;QtCore/QCoreApplication&#62; #include &#60;QDebug&#62; &#160; #include &#60;sys/socket.h&#62; #include &#60;bluetooth/bluetooth.h&#62; #include &#60;bluetooth/hci.h&#62; #include &#60;bluetooth/hci_lib.h&#62; &#160; int main&#40;int argc, char *argv&#91;&#93;&#41; &#123; QCoreApplication a&#40;argc, argv&#41;; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Ecco un semplice programma in grado di rilevare la presenza di dispositivi bluetooth scritto in C++ (con Qt) utilizzando le librerie BlueZ su Linux.</p>
<p>Link utili:<br />
<a href="http://www.bluez.org">http://www.bluez.org</a><br />
<a href="http://people.csail.mit.edu/albert/bluez-intro">http://people.csail.mit.edu/albert/bluez-intro</a><br />
<a href="http://it.wikipedia.org/wiki/Bluetooth">http://it.wikipedia.org/wiki/Bluetooth</a></p>
<p>File main.cpp</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;QtCore/QCoreApplication&gt;</span>
<span style="color: #339900;">#include &lt;QDebug&gt;</span>
&nbsp;
<span style="color: #339900;">#include &lt;sys/socket.h&gt;</span>
<span style="color: #339900;">#include &lt;bluetooth/bluetooth.h&gt;</span>
<span style="color: #339900;">#include &lt;bluetooth/hci.h&gt;</span>
<span style="color: #339900;">#include &lt;bluetooth/hci_lib.h&gt;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>argv<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    QCoreApplication a<span style="color: #008000;">&#40;</span>argc, argv<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    inquiry_info <span style="color: #000040;">*</span>ii <span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> max_rsp, num_rsp<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> dev_id, sock, len, flags<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> i<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">char</span> addr<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">19</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000dd;">0</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">char</span> name<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">248</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000dd;">0</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// bdaddr_t è la struttura di base per specificare un indirizzo bluetooth</span>
    <span style="color: #666666;">// tutto bluez utilizza questa struttura.</span>
    <span style="color: #666666;">// str2ba: permette di convertire un indirizzo bluetooth XX:XX:XX:XX:XX:XX in bdaddr_t</span>
    <span style="color: #666666;">// ba2str: fa esattamente il contrario di str2ba</span>
&nbsp;
    <span style="color: #666666;">// hci_get_route ricevendo un bdaddr_t restituisce il device id corrispondente.</span>
    <span style="color: #666666;">// di solito c'è solo un adattatore bluetooth nel sistema, quindi non specifico nessun bdaddr_t (NULL)</span>
    <span style="color: #666666;">// e hci_get_route mi restituirà l'id del primo adattatore disponibile.</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Rilevazione di un adattatore bluetooth...&quot;</span><span style="color: #008080;">;</span>
    dev_id <span style="color: #000080;">=</span> hci_get_route<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>dev_id <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Nessun adattore bluetooth disponibile&quot;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">exit</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Trovato un adattatore con device id&quot;</span> <span style="color: #000080;">&lt;&lt;</span> dev_id<span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// hci_open_dev ricevendo un device id, apre un socket verso l'adattatore bluetooth corrispondente.</span>
    <span style="color: #666666;">// anche se c'è solo un adattatore bluetooth nel sistema, passare 0 come device id sarebbe sbagliato</span>
    <span style="color: #666666;">// perchè non sempre il primo adattatore è indicato con il numero 0</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Apertura di un socket verso l'adattatore...&quot;</span><span style="color: #008080;">;</span>
    sock <span style="color: #000080;">=</span> hci_open_dev<span style="color: #008000;">&#40;</span>dev_id<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>sock <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Impossibile aprire un socket verso l'adattore bluetooth&quot;</span> <span style="color: #000080;">&lt;&lt;</span> dev_id<span style="color: #008080;">;</span>
        <span style="color: #0000dd;">exit</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Socket aperto&quot;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// parametri per il device discovery</span>
    len <span style="color: #000080;">=</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span>                        <span style="color: #666666;">// l'attesa durerà al massimo 1.28 * len secondi</span>
    max_rsp <span style="color: #000080;">=</span> <span style="color: #0000dd;">255</span><span style="color: #008080;">;</span>                  <span style="color: #666666;">// numero massimo di dispositivi rilevabili</span>
    flags <span style="color: #000080;">=</span> IREQ_CACHE_FLUSH<span style="color: #008080;">;</span>       <span style="color: #666666;">// svuoto la cache ad ogni nuovo scan. se non lo facessi potrei rilevare periferiche che non sono più attive</span>
&nbsp;
    ii <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>inquiry_info<span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">malloc</span><span style="color: #008000;">&#40;</span>max_rsp <span style="color: #000040;">*</span> <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>inquiry_info<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// hci_inquiry effettua un device discovery e ritorna il numero di dispositivi trovati</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Device discovery in corso...&quot;</span><span style="color: #008080;">;</span>
    num_rsp <span style="color: #000080;">=</span> hci_inquiry<span style="color: #008000;">&#40;</span>dev_id, len, max_rsp, <span style="color: #0000ff;">NULL</span>, <span style="color: #000040;">&amp;</span>ii, flags<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Device discovery completato&quot;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// se non ho trovato dispositivi lo segnalo</span>
    <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>num_rsp <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
        qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Nessun dispositivo rilevato&quot;</span><span style="color: #008080;">;</span>
&nbsp;
    qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;Dispositivi rilevati:&quot;</span> <span style="color: #000080;">&lt;&lt;</span> num_rsp<span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;</span>num_rsp<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        ba2str<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span><span style="color: #008000;">&#40;</span>ii<span style="color: #000040;">+</span>i<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>bdaddr, addr<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>name, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>name<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>hci_read_remote_name<span style="color: #008000;">&#40;</span>sock, <span style="color: #000040;">&amp;</span><span style="color: #008000;">&#40;</span>ii<span style="color: #000040;">+</span>i<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>bdaddr, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>name<span style="color: #008000;">&#41;</span>, name, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
            <span style="color: #0000dd;">strcpy</span><span style="color: #008000;">&#40;</span>name, <span style="color: #FF0000;">&quot;[unknown]&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
        qDebug<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;) &quot;</span> <span style="color: #000080;">&lt;&lt;</span> addr <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot; Nome:&quot;</span> <span style="color: #000080;">&lt;&lt;</span> name<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0000dd;">free</span><span style="color: #008000;">&#40;</span>ii<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    close<span style="color: #008000;">&#40;</span>sock<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">return</span> a.<span style="color: #007788;">exec</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>File progetto</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">QT  -= gui
&nbsp;
TARGET = bluetoothScan
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
&nbsp;
LIBS += <span style="color: #660033;">-lbluetooth</span></pre></div></div>

<p><a href="http://dev.sarasini.it/wp-content/uploads/2010/05/bluetooth_scan1.png"><img src="http://dev.sarasini.it/wp-content/uploads/2010/05/bluetooth_scan1.png" alt="" title="bluetooth_scan" width="472" height="263" class="alignnone size-full wp-image-218" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.sarasini.it/?feed=rss2&#038;p=211</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

