<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.hydrover.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrea</id>
		<title>Hydrover - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.hydrover.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrea"/>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Special:Contributions/Andrea"/>
		<updated>2026-04-29T17:12:33Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=370</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=370"/>
				<updated>2017-09-27T14:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 4 (0-5V, 0-10V, 0-20mA software controlled)&lt;br /&gt;
* Digita inputs / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Outputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=369</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=369"/>
				<updated>2017-09-27T14:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 4 (0-5V, 0-10V, 0-20mA software controlled)&lt;br /&gt;
* Digita inputs / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=368</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=368"/>
				<updated>2017-09-27T14:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 4 (0-5V, 0-10V, 0-20mA software controlled)&lt;br /&gt;
* Digita input / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=367</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=367"/>
				<updated>2017-09-27T14:10:10Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 4 (0-5V, 0-10V, 0-20mA software seletable)&lt;br /&gt;
* Digita input / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=366</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=366"/>
				<updated>2017-09-27T14:04:57Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Pinout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 6 (0-5V, 0-10V, 0-20mA software seletable)&lt;br /&gt;
* Digita input / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=File:HYD-MB_CONN.png&amp;diff=365</id>
		<title>File:HYD-MB CONN.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=File:HYD-MB_CONN.png&amp;diff=365"/>
				<updated>2017-09-27T14:04:16Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=364</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=364"/>
				<updated>2017-09-27T13:58:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 6 (0-5V, 0-10V, 0-20mA software seletable)&lt;br /&gt;
* Digita input / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:H6104-P-CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=363</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1&amp;diff=363"/>
				<updated>2017-09-27T13:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Created page with &amp;quot;__NOTOC__ = Description = 200px  The HYD-MB-REV-1.1 ( aka MB Mobile Board ) is an advanced slave board driven by H6105-D for controlling on/off an...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:H6104-P.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 6 (0-5V, 0-10V, 0-20mA software seletable)&lt;br /&gt;
* Digita input / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Otputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:H6104-P-CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Electronics&amp;diff=362</id>
		<title>Electronics</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Electronics&amp;diff=362"/>
				<updated>2017-09-27T13:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Mobile Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hydrover Automation System =&lt;br /&gt;
&lt;br /&gt;
The '''Hydrover Automation System''' is our solution to actual [[Electronics#Industrial_Solution | industrial]] and [[Electronics#Mobile_Solution | mobile]] automation needs that are hard to face with standard PLC.&lt;br /&gt;
&lt;br /&gt;
It is composed of two brand of boards: [[Electronics#Industrial_Solution | industrial]] and [[Electronics#Mobile_Solution | mobile]].&lt;br /&gt;
&lt;br /&gt;
We have made a big effort in putting together a single [[Hydrover Developement System | developement system]] that works on both brands, that way you can share and reuse your code within various different applications.&lt;br /&gt;
&lt;br /&gt;
== Hydrover Developement System ==&lt;br /&gt;
&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
== Industrial Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* composed of four type of board, connected with [https://en.wikipedia.org/wiki/CAN_bus Can bus]&lt;br /&gt;
* controlled by the simple yet powerfull [[Hydrover Developement System]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Code&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[File:H6105-D.png|100px]]&lt;br /&gt;
| [[H6105-D]]&lt;br /&gt;
| Control Panel, master of the system&lt;br /&gt;
|-&lt;br /&gt;
| [[File:H6105-E.png|100px]]&lt;br /&gt;
| [[H6105-E]]&lt;br /&gt;
| Control Expansion, slave board for expanding inputs of [[H6105-D]]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:H6103.png|100px]]&lt;br /&gt;
| [[H6103]]&lt;br /&gt;
| Input Output, slave board for sensing inputs and drive outputs&lt;br /&gt;
|-&lt;br /&gt;
| [[File:H6104-P.png|100px]]&lt;br /&gt;
| [[H6104-P]]&lt;br /&gt;
| Control Axis, slave board for proportional PWM axis control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mobile Solution ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* composed of two type of board, connected with [https://en.wikipedia.org/wiki/CAN_bus Can bus]&lt;br /&gt;
* controlled by the simple yet powerfull [[Hydrover Developement System]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Image&lt;br /&gt;
! Code&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| Control Panel, master of the system that can be interfaced with: trucks / tractors&lt;br /&gt;
|-&lt;br /&gt;
| [[File:MB.png|100px]]&lt;br /&gt;
| [[HYD-MB-REV-1.1]]&lt;br /&gt;
| MB Power Module, slave board with: digital / analog / pwm / input / output / power output&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Pagina_principale&amp;diff=354</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Pagina_principale&amp;diff=354"/>
				<updated>2017-08-03T09:44:29Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* main */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Electronics]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Pagina_principale&amp;diff=353</id>
		<title>Pagina principale</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Pagina_principale&amp;diff=353"/>
				<updated>2017-08-03T09:40:36Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Creata pagina con &amp;quot;= main =&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= main =&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=350</id>
		<title>H6105-D and H6103 basic input/output</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=350"/>
				<updated>2017-07-06T12:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
This programming example make use of events to monitor the switchs S1 and S2 and drive the corresponding lamps L1 and L2,&lt;br /&gt;
refer to the [[H6105-D and H6103 basic input/output wiring]] example.&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
&lt;br /&gt;
This is the source code in PAWN language of the '''H6105-D and H6103 basic input/output''' example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Basic Input Output - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define inputs&lt;br /&gt;
//&lt;br /&gt;
#define SWITCH_S1 MAKE_DIN_BOARD_CP(0)&lt;br /&gt;
#define SWITCH_S2 MAKE_DIN_BOARD_IO(0,0)&lt;br /&gt;
&lt;br /&gt;
// define outputs&lt;br /&gt;
//&lt;br /&gt;
#define LAMP_L1 MAKE_OUT_BOARD_IO(0,0)&lt;br /&gt;
#define LAMP_L2 MAKE_OUT_BOARD_IO(0,1)&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf( &amp;quot;Basic IO&amp;quot; );&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S1 and LAMP_L1&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 10 );&lt;br /&gt;
	if( DinRead( SWITCH_S1 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S2 and LAMP_L2&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 20 );&lt;br /&gt;
	if( DinRead( SWITCH_S2 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=349</id>
		<title>H6105-D and H6103 basic input/output</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=349"/>
				<updated>2017-07-06T12:10:34Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Desription */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
&lt;br /&gt;
This is the source code in PAWN language of the '''H6105-D and H6103 basic input/output''' example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Basic Input Output - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define inputs&lt;br /&gt;
//&lt;br /&gt;
#define SWITCH_S1 MAKE_DIN_BOARD_CP(0)&lt;br /&gt;
#define SWITCH_S2 MAKE_DIN_BOARD_IO(0,0)&lt;br /&gt;
&lt;br /&gt;
// define outputs&lt;br /&gt;
//&lt;br /&gt;
#define LAMP_L1 MAKE_OUT_BOARD_IO(0,0)&lt;br /&gt;
#define LAMP_L2 MAKE_OUT_BOARD_IO(0,1)&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf( &amp;quot;Basic IO&amp;quot; );&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S1 and LAMP_L1&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 10 );&lt;br /&gt;
	if( DinRead( SWITCH_S1 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S2 and LAMP_L2&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 20 );&lt;br /&gt;
	if( DinRead( SWITCH_S2 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=348</id>
		<title>H6105-D and H6103 basic input/output</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output&amp;diff=348"/>
				<updated>2017-07-06T12:09:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Creata pagina con &amp;quot;= Desription =   = Source Code =  This is the source code in PAWN language of the '''H6105-D and H6103 basic input/output''' example:  &amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;  /********...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Desription =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
&lt;br /&gt;
This is the source code in PAWN language of the '''H6105-D and H6103 basic input/output''' example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Basic Input Output - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define inputs&lt;br /&gt;
//&lt;br /&gt;
#define SWITCH_S1 MAKE_DIN_BOARD_CP(0)&lt;br /&gt;
#define SWITCH_S2 MAKE_DIN_BOARD_IO(0,0)&lt;br /&gt;
&lt;br /&gt;
// define outputs&lt;br /&gt;
//&lt;br /&gt;
#define LAMP_L1 MAKE_OUT_BOARD_IO(0,0)&lt;br /&gt;
#define LAMP_L2 MAKE_OUT_BOARD_IO(0,1)&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf( &amp;quot;Basic IO&amp;quot; );&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S1 and LAMP_L1&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 10 );&lt;br /&gt;
	if( DinRead( SWITCH_S1 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S2 and LAMP_L2&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 20 );&lt;br /&gt;
	if( DinRead( SWITCH_S2 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=347</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=347"/>
				<updated>2017-07-06T10:39:12Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event type&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Type of Events =&lt;br /&gt;
&lt;br /&gt;
This are the system events, declared in the library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/* events codes */&lt;br /&gt;
const&lt;br /&gt;
{&lt;br /&gt;
	SevEmergExit = 1,	// receiving this event means that the program must stop execution&lt;br /&gt;
&lt;br /&gt;
	SevOnEnter,			// the first event sent while entering a state&lt;br /&gt;
	SevOnExit,			// the last event sent while exiting a state&lt;br /&gt;
&lt;br /&gt;
	SevTick100mSec,		// system tick sent at 100 (ms) rate&lt;br /&gt;
	SevTick500mSec,		// system tick sent at 500 (ms) rate&lt;br /&gt;
	SevTickOneSec,		// system tick sent at 1 (s) rate&lt;br /&gt;
&lt;br /&gt;
	SevTimerElapsed,	// p0=timer number&lt;br /&gt;
&lt;br /&gt;
	SevEncCount,		// p0=0, p1=1(count UP), p1=2(count DW)&lt;br /&gt;
&lt;br /&gt;
	SevDinChange,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinActive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinInactive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinFastRel,		// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
	SevDinKeep,			// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
&lt;br /&gt;
	SevAccMatch,		// p0= acc number&lt;br /&gt;
&lt;br /&gt;
	SevAxisMoveDone,	// p0= board number&lt;br /&gt;
	SevAxisMoveAbort,	// p0= board number p1= abort code ( 0= cil0 stalled max curr, 1= cil1 stalled max curr, 2= cil0 stop by cil1, 3= cil1 stop by cil0, 4= max delta )&lt;br /&gt;
&lt;br /&gt;
	SevCsDone,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsAbort,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsStep,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
&lt;br /&gt;
	SevMenuChange,		// p0= return code of menu item selected&lt;br /&gt;
	SevMenuClick,		// p0= return code of menu item clicked&lt;br /&gt;
&lt;br /&gt;
	SevBareditChange,	// no params&lt;br /&gt;
	SevBareditExit,		// no params&lt;br /&gt;
&lt;br /&gt;
	SevNumeditChange,	// p0= numedit&lt;br /&gt;
	SevNumeditExit,		// p0= numedit, p1= exit code ( 0= cancel, 1= ok)&lt;br /&gt;
&lt;br /&gt;
	SevCmd,				// p0,p1,p2,p3 came from command line eg:(script cmd 0 1 2 3)&lt;br /&gt;
	SevCustom			// opcode to use to feed in custom events&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=346</id>
		<title>H6105-D Hello World !!!</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=346"/>
				<updated>2017-07-06T10:38:46Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the source code in PAWN language of the Hello World example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Hello World - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Hello World !!!&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// print on console&lt;br /&gt;
	//&lt;br /&gt;
	printf(&amp;quot;Hello World !!!\n&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// wait a couple of seconds&lt;br /&gt;
	//&lt;br /&gt;
	Sleep( 2000 );&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=345</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=345"/>
				<updated>2017-07-06T10:32:25Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_architecture Event-driven architecture]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming]&lt;br /&gt;
* [[The Queue of Events]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=344</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=344"/>
				<updated>2017-07-06T10:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [https://en.wikipedia.org/wiki/Abstract_machine abstract machine] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Event-driven FSM =&lt;br /&gt;
&lt;br /&gt;
An '''Event-driven FSM''' is a kind of FSM where transistions from one state to another are triggered by events ( see [[The Queue of Events]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
This is one example of an '''Event-driven FSM'''&lt;br /&gt;
&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=343</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=343"/>
				<updated>2017-07-06T10:02:01Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [https://en.wikipedia.org/wiki/Abstract_machine abstract machine] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;br /&gt;
&lt;br /&gt;
= Event-driven FSM =&lt;br /&gt;
&lt;br /&gt;
An '''Event-driven FSM''' is a kind of FSM where transistions from one state to another are triggered by events ( see [[The Queue of Events]] )&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=342</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=342"/>
				<updated>2017-07-06T10:00:55Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [[abstract machine]] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Event-driven FSM =&lt;br /&gt;
&lt;br /&gt;
An '''Event-driven FSM''' is a kind of FSM where transistions from one state to another are triggered by events ( see [[The Queue of Events]] )&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=341</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=341"/>
				<updated>2017-07-06T09:59:52Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[ Introduction ]&lt;br /&gt;
&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [[abstract machine]] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[ Event-driven FSM ]&lt;br /&gt;
&lt;br /&gt;
An '''Event-driven FSM''' is a kind of FSM where transistions from one state to another are triggered by events ( see [[The Queue of Events]] )&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=340</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine&amp;diff=340"/>
				<updated>2017-07-06T09:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Creata pagina con &amp;quot; A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an abstract machine that can be in exactly one of a finite number of states at any given ti...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [[abstract machine]] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Configuration_of_Notepad%2B%2B_for_use_with_PAWN&amp;diff=339</id>
		<title>Configuration of Notepad++ for use with PAWN</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Configuration_of_Notepad%2B%2B_for_use_with_PAWN&amp;diff=339"/>
				<updated>2017-07-06T09:42:45Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Auto-completation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section cover all the necessary steps to get Notepad++ to compile your PAWN script, highlight errors and warnings and fast jump to where they are generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Associate Notepad++ with PAWN source files =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Settings''' Menu select '''Preferences...'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-set-pref.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select '''File Association''', then select '''Customize''', then add &amp;lt;code&amp;gt;.p .pwn .inc&amp;lt;/code&amp;gt; extensions&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-file-assoc.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compile =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NppExec plugin ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is a plugin that allow for execution of external programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Plugins''' Menu: select '''Plugin Manager''', then select '''Show Plugin Manager'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-open-plugin-manager.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the '''Available''' tab: find &amp;amp; select '''NppExec''', then click '''Install'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-inst-1.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Plugins''' Menu: select '''NppExec''', then select '''Execute'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cfg-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the Command(s) window type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npp_save&lt;br /&gt;
cd $(CURRENT_DIRECTORY)&lt;br /&gt;
&amp;quot;C:\Program Files (x86)\Pawn\bin\pawncc.exe&amp;quot; -V -d0 -O3 -v2 -t4 &amp;quot;$(FILE_NAME)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then clik '''Save'''&lt;br /&gt;
&lt;br /&gt;
in the Script Name type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PAWN Compile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then clik '''Save'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cfg-2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Plugins''' Menu: select '''NppExec''', then select '''Advanced Options'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-shortcut-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In '''Menu items *''' frame&lt;br /&gt;
&lt;br /&gt;
* check '''Place to the Macros submenu''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In '''Menu item''' frame:&lt;br /&gt;
&lt;br /&gt;
* in '''Associated script''' select '''PAWN Compile''' from the list&lt;br /&gt;
* click '''Add/Modify''', then click '''OK'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-shortcut-2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile Shortcut ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Settings''' Menu select '''Shortcut Mapper'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-shortcut-3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the '''Plugin Commands''' tab, search &amp;amp; select '''PAWN Compile''',  then click '''Modify'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-shortcut-4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the combination that you want e.g.: '''Shift + F7''' than click '''OK'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-shortcut-5.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile Toolbar Button ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Plugins''' Menu: select '''Plugin Manager''', then select '''Show Plugin Manager'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-open-plugin-manager.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Under the '''Available''' tab: find &amp;amp; select '''Customize Toolbar''', then click '''Install'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-cust-tbar-inst.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download this image [[File:Compile.bmp]] and save it in: &amp;lt;code&amp;gt;%appdata%\Notepad++\plugins\config&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;compile.bmp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Into the same folder create a file named &amp;lt;code&amp;gt;CustomizeToolbar.btn&amp;lt;/code&amp;gt; with this content &amp;lt;code&amp;gt;Macro,PAWN Compile,,,compile.bmp&amp;lt;/code&amp;gt;&lt;br /&gt;
* From '''Encoding''' Menu select '''Encode in UCS-2 LE BOM''' ( this apply to &amp;lt;code&amp;gt;CustomizeToolbar.btn&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-cust-tbar-cfg2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* From '''Plugins''' Menu select '''Customize Toolbar''', then select '''Custom Buttons''' to enable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-cust-tbar-cfg1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Errors &amp;amp; Warnings =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Plugins''' Menu select '''NppExec''', then select '''Console Output Filters'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cons-out-filt-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the '''Filter''' tab, check '''Enable Console Output Filter'''&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cons-out-filt-2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the '''Replace''' tab:&lt;br /&gt;
&lt;br /&gt;
* check '''Enable Replacing Filters'''&lt;br /&gt;
* check '''Replacing Filter 1'''&lt;br /&gt;
* fill Find what: &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
* fill Replace with: &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* check '''Replacing Filter 2'''&lt;br /&gt;
* fill Find what: &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* leave empty Replace with:&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cons-out-filt-3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the '''HighLight''' tab:&lt;br /&gt;
&lt;br /&gt;
* check first item&lt;br /&gt;
* fill it with: &amp;lt;code&amp;gt;%FILE%:%LINE% :*error*&amp;lt;/code&amp;gt;&lt;br /&gt;
* fill: Red 0x&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;, Green 0x&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, Blue 0x&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;&lt;br /&gt;
* check B&lt;br /&gt;
&lt;br /&gt;
* check second item&lt;br /&gt;
* fill it with: &amp;lt;code&amp;gt;%FILE%:%LINE% :*warning*&amp;lt;/code&amp;gt;&lt;br /&gt;
* fill: Red 0x&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, Green 0x&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;, Blue 0x&amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;&lt;br /&gt;
* check B&lt;br /&gt;
&lt;br /&gt;
* click OK&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-exec-cons-out-filt-4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Syntax Highlight &amp;amp; In-line Help =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* From the '''config''' folder of the [[HydDevKit]] copy &amp;lt;code&amp;gt;userDefineLang.xml&amp;lt;/code&amp;gt; into &amp;lt;code&amp;gt;%appdata%/Notepad++&amp;lt;/code&amp;gt; folder&lt;br /&gt;
* From the '''config''' folder of the [[HydDevKit]] copy &amp;lt;code&amp;gt;PAWN.xml&amp;lt;/code&amp;gt; into &amp;lt;code&amp;gt;C:\Program Files (x86)\Notepad++\plugins\APIs&amp;lt;/code&amp;gt; folder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Auto-completion =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From '''Settings''' Menu select '''Preferences...'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-set-pref.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select '''Auto-Completion''', then choose your preferred combination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Npp-auto-complete.png]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=338</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=338"/>
				<updated>2017-06-22T11:24:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event type&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Type of Events =&lt;br /&gt;
&lt;br /&gt;
This are the system events, declared in the library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/* events codes */&lt;br /&gt;
const&lt;br /&gt;
{&lt;br /&gt;
	SevEmergExit = 1,	// receiving this event means that the program must stop execution&lt;br /&gt;
&lt;br /&gt;
	SevOnEnter,			// the first event sent while entering a state&lt;br /&gt;
	SevOnExit,			// the last event sent while exiting a state&lt;br /&gt;
&lt;br /&gt;
	SevTick100mSec,		// system tick sent at 100 (ms) rate&lt;br /&gt;
	SevTick500mSec,		// system tick sent at 500 (ms) rate&lt;br /&gt;
	SevTickOneSec,		// system tick sent at 1 (s) rate&lt;br /&gt;
&lt;br /&gt;
	SevTimerElapsed,	// p0=timer number&lt;br /&gt;
&lt;br /&gt;
	SevEncCount,		// p0=0, p1=1(count UP), p1=2(count DW)&lt;br /&gt;
&lt;br /&gt;
	SevDinChange,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinActive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinInactive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinFastRel,		// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
	SevDinKeep,			// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
&lt;br /&gt;
	SevAccMatch,		// p0= acc number&lt;br /&gt;
&lt;br /&gt;
	SevAxisMoveDone,	// p0= board number&lt;br /&gt;
	SevAxisMoveAbort,	// p0= board number p1= abort code ( 0= cil0 stalled max curr, 1= cil1 stalled max curr, 2= cil0 stop by cil1, 3= cil1 stop by cil0, 4= max delta )&lt;br /&gt;
&lt;br /&gt;
	SevCsDone,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsAbort,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsStep,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
&lt;br /&gt;
	SevMenuChange,		// p0= return code of menu item selected&lt;br /&gt;
	SevMenuClick,		// p0= return code of menu item clicked&lt;br /&gt;
&lt;br /&gt;
	SevBareditChange,	// no params&lt;br /&gt;
	SevBareditExit,		// no params&lt;br /&gt;
&lt;br /&gt;
	SevNumeditChange,	// p0= numedit&lt;br /&gt;
	SevNumeditExit,		// p0= numedit, p1= exit code ( 0= cancel, 1= ok)&lt;br /&gt;
&lt;br /&gt;
	SevCmd,				// p0,p1,p2,p3 came from command line eg:(script cmd 0 1 2 3)&lt;br /&gt;
	SevCustom			// opcode to use to feed in custom events&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=337</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=337"/>
				<updated>2017-06-22T11:15:24Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event type&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Type of Events =&lt;br /&gt;
&lt;br /&gt;
This are the system events, declared in the library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/* events codes */&lt;br /&gt;
const&lt;br /&gt;
{&lt;br /&gt;
	SevEmergExit = 1,	// receiving this event means that the program must stop execution&lt;br /&gt;
&lt;br /&gt;
	SevOnEnter,			// the first event sent while entering a state&lt;br /&gt;
	SevOnExit,			// the last event sent while exiting a state&lt;br /&gt;
&lt;br /&gt;
	SevTick100mSec,		// system tick sent at 100 (ms) rate&lt;br /&gt;
	SevTick500mSec,		// system tick sent at 500 (ms) rate&lt;br /&gt;
	SevTickOneSec,		// system tick sent at 1 (s) rate&lt;br /&gt;
&lt;br /&gt;
	SevTimerElapsed,	// p0=timer number&lt;br /&gt;
&lt;br /&gt;
	SevEncCount,		// p0=0, p1=1(count UP), p1=2(count DW)&lt;br /&gt;
&lt;br /&gt;
	SevDinChange,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinActive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinInactive,		// p0= din number (0-19 = CP) (1000-1159 = IO) (2000-2159 = CA) (3000-3119 = CE)&lt;br /&gt;
	SevDinFastRel,		// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
	SevDinKeep,			// p0= din number (0-19 = CP) (3000-3119 = CE)&lt;br /&gt;
&lt;br /&gt;
	SevAccMatch,		// p0= acc number&lt;br /&gt;
&lt;br /&gt;
	SevAxisMoveDone,	// p0= board number&lt;br /&gt;
	SevAxisMoveAbort,	// p0= board number p1= abort code ( 0= cil0 stalled max curr, 1= cil1 stalled max curr, 2= cil0 stop by cil1, 3= cil1 stop by cil0, 4= max delta )&lt;br /&gt;
&lt;br /&gt;
	SevCsDone,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsAbort,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
	SevCsStep,			// p0= board number p1= pwm channel p2= cs number p3= step number&lt;br /&gt;
&lt;br /&gt;
	SevMenuChange,		// p0= return code of menu item selected&lt;br /&gt;
	SevMenuClick,		// p0= return code of menu item clicked&lt;br /&gt;
&lt;br /&gt;
	SevBareditChange,	// no params&lt;br /&gt;
	SevBareditExit,		// no params&lt;br /&gt;
&lt;br /&gt;
	SevNumeditChange,	// p0= numedit&lt;br /&gt;
	SevNumeditExit,		// p0= numedit, p1= exit code ( 0= cancel, 1= ok)&lt;br /&gt;
&lt;br /&gt;
	SevCmd,				// p0,p1,p2,p3 came from command line eg:(script cmd 0 1 2 3)&lt;br /&gt;
	SevCustom			// opcode to use to feed in custom events&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=336</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=336"/>
				<updated>2017-06-22T11:02:35Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Structure of an Event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event type&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=335</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=335"/>
				<updated>2017-06-21T17:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=334</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=334"/>
				<updated>2017-06-21T16:59:00Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=333</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=333"/>
				<updated>2017-06-21T16:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the main loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Pressed&amp;quot;);&lt;br /&gt;
				{&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				if( ev.p0 == 0 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf(&amp;quot;Button Released&amp;quot;);&lt;br /&gt;
				{&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=332</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=332"/>
				<updated>2017-06-21T16:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Processing Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;br /&gt;
&lt;br /&gt;
In [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming] the readmain loop of a program&lt;br /&gt;
takes care of fetch, process and/or dispatch incoming events, the following code is an example of a minimal one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Minimal Event Processing Loop&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Processing Events&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// script stop command&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// push button &lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=331</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=331"/>
				<updated>2017-06-21T16:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
The library functions for events management are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#define BASE_EVENT(%1) Event:%1[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt; is a macro to help in creating an event container&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvEnable()&amp;lt;/code&amp;gt; enable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;SysEvDisable()&amp;lt;/code&amp;gt; disable the system to post events into the queue&lt;br /&gt;
* &amp;lt;code&amp;gt;EventGet( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; get an event from the queue, if an event is not available will wait for&lt;br /&gt;
* &amp;lt;code&amp;gt;EventSend( BASE_EVENT(ev) )&amp;lt;/code&amp;gt; send an event to the queue, can be used to inject custom and/or simulated events&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=330</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=330"/>
				<updated>2017-06-21T15:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Structure of an Event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to uniquely identify the event&lt;br /&gt;
* &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=329</id>
		<title>The Queue of Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=The_Queue_of_Events&amp;diff=329"/>
				<updated>2017-06-21T15:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Creata pagina con &amp;quot;= Introduction =  The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's prog...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The queue of events is the queue where the system send events such as: input change, user action, encoder or transducer match, and from where the user's program get events to process and react to.&lt;br /&gt;
&lt;br /&gt;
= Structure of an Event =&lt;br /&gt;
&lt;br /&gt;
An event is defined in the library as an array of values &amp;lt;code&amp;gt;[.opcode, .p0, .p1, .p2, .p3]&amp;lt;/code&amp;gt;&lt;br /&gt;
where the first value &amp;lt;code&amp;gt;.opcode&amp;lt;/code&amp;gt; is used to identify the event and the  subsequent values &amp;lt;code&amp;gt;.p0, .p1, .p2, .p3&amp;lt;/code&amp;gt; contains informations specific to that event.&lt;br /&gt;
&lt;br /&gt;
= Events' Library Functions =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Processing Events =&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=328</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=328"/>
				<updated>2017-06-21T14:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_architecture Event-driven architecture]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming]&lt;br /&gt;
* [[The Queue of Events]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=327</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=327"/>
				<updated>2017-06-21T14:50:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* PAWN Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_architecture Event-driven_architecture]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Event-driven_programming Event-driven programming]&lt;br /&gt;
* [[The Queue of Events]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=326</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=326"/>
				<updated>2017-06-21T14:43:12Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* PAWN Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [[The Queue of Events]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=325</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=325"/>
				<updated>2017-06-21T12:16:25Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* PAWN Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [[The Events' Queue]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=324</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=324"/>
				<updated>2017-06-16T13:47:19Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* USB port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
[[File:Cp-console.png]]&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has three operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be used to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
follow this steps to download a new program into the board:&lt;br /&gt;
&lt;br /&gt;
* enter in disk mode 1 with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
* at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt; inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
* delete this file then copy the new one&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt; or reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=323</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=323"/>
				<updated>2017-06-16T00:36:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* USB port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
[[File:Cp-console.png]]&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be used to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
follow this steps to download a new program into the board:&lt;br /&gt;
&lt;br /&gt;
* enter in disk mode 1 with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
* at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt; inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
* delete this file then copy the new one&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt; or reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=322</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=322"/>
				<updated>2017-06-15T15:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
[[File:Cp-console.png]]&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
follow this steps to download a new program into the board:&lt;br /&gt;
&lt;br /&gt;
* enter in disk mode 1 with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
* at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt; inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
* delete this file then copy the new one&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt; or reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=321</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=321"/>
				<updated>2017-06-15T15:27:17Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Serial Port */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
[[File:Cp-console.png]]&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
enter in disk mode 1 with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
first delete this file then copy the new one&lt;br /&gt;
&lt;br /&gt;
when the copy is done you can:&lt;br /&gt;
&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt;&lt;br /&gt;
* reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=File:Cp-console.png&amp;diff=320</id>
		<title>File:Cp-console.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=File:Cp-console.png&amp;diff=320"/>
				<updated>2017-06-15T15:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=319</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=319"/>
				<updated>2017-06-15T14:42:24Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programming =&lt;br /&gt;
&lt;br /&gt;
enter in disk mode 1 with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
first delete this file then copy the new one&lt;br /&gt;
&lt;br /&gt;
when the copy is done you can:&lt;br /&gt;
&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt;&lt;br /&gt;
* reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=318</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=318"/>
				<updated>2017-06-15T14:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Entering disk mode 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering disk mode 1 =&lt;br /&gt;
&lt;br /&gt;
to enter in disk mode 1 you must stop a running script with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
&lt;br /&gt;
at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
first delete this file then copy the new one&lt;br /&gt;
&lt;br /&gt;
when the copy is done you can:&lt;br /&gt;
&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt;&lt;br /&gt;
* reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=317</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=317"/>
				<updated>2017-06-15T14:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hawrdware connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering disk mode 1 =&lt;br /&gt;
&lt;br /&gt;
to enter in disk mode 1 you must stop a running script with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt;&lt;br /&gt;
inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
first delete this file then copy the new one&lt;br /&gt;
when the copy is done you can:&lt;br /&gt;
&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt;&lt;br /&gt;
* reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=316</id>
		<title>Programming H6105-D</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Programming_H6105-D&amp;diff=316"/>
				<updated>2017-06-15T14:13:39Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: Creata pagina con &amp;quot;this section explain how to connect and dowanload a PAWN program to the H6105-D master    = Hawrdware connection =  we need to make two connections:  * use the USB to Seri...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this section explain how to connect and dowanload a PAWN program to the [[H6105-D]] master&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hawrdware connection =&lt;br /&gt;
&lt;br /&gt;
we need to make two connections:&lt;br /&gt;
&lt;br /&gt;
* use the USB to Serial adapter to connect to the serial port&lt;br /&gt;
&lt;br /&gt;
* use the USB Type-B cable to connect to the USB port&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Functions of the ports =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Serial Port ==&lt;br /&gt;
&lt;br /&gt;
on the serial port we will find the Console with the command promt &amp;lt;code&amp;gt;cp&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
pressing the ENTER key will show a help message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB port ==&lt;br /&gt;
&lt;br /&gt;
the USB port has tree operating modes:&lt;br /&gt;
&lt;br /&gt;
* '''libusb''', this mode is active when the script is running and can be used to give the control of the system to a PC program&lt;br /&gt;
* '''disk mode 1''', this mode is active when the script is not running and can be used to flash a new PAWN program&lt;br /&gt;
* '''disk mode 2''', this mode is active during the firmware update and can be usd to flash a new firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering disk mode 1 =&lt;br /&gt;
&lt;br /&gt;
to enter in disk mode 1 you must stop a running script with the &amp;lt;code&amp;gt;script stop&amp;lt;/code&amp;gt; command&lt;br /&gt;
at this point you should see a new usb disk unit connected to your PC named &amp;lt;code&amp;gt;HYDCPAMXDRV&amp;lt;/code&amp;gt;&lt;br /&gt;
inside this disk there is only one file named &amp;lt;code&amp;gt;PRMGFILE.AMX&amp;lt;/code&amp;gt;&lt;br /&gt;
first delete this file then copy the new one&lt;br /&gt;
when the copy is done you can:&lt;br /&gt;
&lt;br /&gt;
* start your new program with &amp;lt;code&amp;gt;script run&amp;lt;/code&amp;gt;&lt;br /&gt;
* reset the board with &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=315</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=315"/>
				<updated>2017-06-14T22:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Developement System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Programming H6105-D]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [[The Events Queue]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=314</id>
		<title>H6105-D Hello World !!!</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=314"/>
				<updated>2017-06-14T17:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the source code in PAWN language of the Hello World example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot; line&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Hello World - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Hello World !!!&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// print on console&lt;br /&gt;
	//&lt;br /&gt;
	printf(&amp;quot;Hello World !!!\n&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// wait a couple of seconds&lt;br /&gt;
	//&lt;br /&gt;
	Sleep( 2000 );&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=313</id>
		<title>H6105-D Hello World !!!</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_Hello_World_!!!&amp;diff=313"/>
				<updated>2017-06-14T17:25:11Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the source code in PAWN language of the Hello World example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Hello World - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf(&amp;quot;Hello World !!!&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// print on console&lt;br /&gt;
	//&lt;br /&gt;
	printf(&amp;quot;Hello World !!!\n&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// wait a couple of seconds&lt;br /&gt;
	//&lt;br /&gt;
	Sleep( 2000 );&lt;br /&gt;
	&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=312</id>
		<title>Hydrover Developement System</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Hydrover_Developement_System&amp;diff=312"/>
				<updated>2017-06-13T23:29:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Developement System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
The [[Hydrover Developement System]] is a collection of software tools and libraries that you can use for free to develop your applications.&lt;br /&gt;
&lt;br /&gt;
It is mainly base on:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++], powerfull programming editor&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN], scripting language&lt;br /&gt;
* [[HydLib]], library that interface the PAWN language with the hardware&lt;br /&gt;
* [http://libusb.org/ libusb], library that allow custom softwares to interface and control the automation system through the USB port&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
Here you can find all the software that you need to get started in programming.&lt;br /&gt;
&lt;br /&gt;
* [[HydDevKit]] all in one package with programs, libraries and device drivers for all our boards&lt;br /&gt;
&lt;br /&gt;
If you prefer to download from the original Author's pages:&lt;br /&gt;
&lt;br /&gt;
* [https://notepad-plus-plus.org Notepad++] one of the most powerfull editor for programmers with syntax highlight&lt;br /&gt;
* [https://www.compuphase.com/pawn/pawn.htm PAWN] the scripting language compiler&lt;br /&gt;
* [https://www.google.it/search?q=FastLCD.exe FastLCD] free program that help in fast icon/image creation&lt;br /&gt;
* [http://www.putty.org PuTTY] fast and flexible serial terminal emulator for comunication over RS-232&lt;br /&gt;
* [http://qfsm.sourceforge.net Qfsm] simple and fast program that help in designing FSM ( [https://en.wikipedia.org/wiki/Finite-state_machine Finite State Machine] )&lt;br /&gt;
* [http://libusb.org/ libusb], is a C library that gives applications easy access to USB devices on many different operating systems&lt;br /&gt;
&lt;br /&gt;
= Tutorials =&lt;br /&gt;
&lt;br /&gt;
=== Developement System ===&lt;br /&gt;
* [[Installation of HydLib]]&lt;br /&gt;
* [[Configuration of Notepad++ for use with PAWN]]&lt;br /&gt;
* [[Connecting your PC with the boards]]&lt;br /&gt;
* [[System configuration &amp;amp; boards addressing]]&lt;br /&gt;
* [[Firmware Updates]]&lt;br /&gt;
&lt;br /&gt;
=== PAWN Programming ===&lt;br /&gt;
* [[The Events Queue]]&lt;br /&gt;
* [[Finite State Machine]]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== Industrial ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
* [[CAN BUS wiring and terminators (Industrial)]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output wiring]]&lt;br /&gt;
* [[H6105-D wiring a rotary encoder with push button]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* [[H6105-D Hello World !!!]]&lt;br /&gt;
* [[H6105-D and H6103 basic input/output]]&lt;br /&gt;
* [[H6105-D and H6103 power saving on outputs]]&lt;br /&gt;
* [[H6105-D and H6103 accessory management]]&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Config and Usage]]&lt;br /&gt;
* [[H6105-D and H6104-P PWM Current Sequence]]&lt;br /&gt;
* [[H6105-D and H6104-P Axis Control]]&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
* [[CAN BUS wiring and terminators (Mobile)]]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	</feed>