<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pessinurmi.com/index.php?action=history&amp;feed=atom&amp;title=Vastaanotin_v1_l%C3%A4hdekoodi</id>
	<title>Vastaanotin v1 lähdekoodi - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pessinurmi.com/index.php?action=history&amp;feed=atom&amp;title=Vastaanotin_v1_l%C3%A4hdekoodi"/>
	<link rel="alternate" type="text/html" href="https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;action=history"/>
	<updated>2026-06-06T13:36:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=764&amp;oldid=prev</id>
		<title>Exf at 15:11, 3 October 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=764&amp;oldid=prev"/>
		<updated>2025-10-03T15:11:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:11, 3 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l257&quot;&gt;Line 257:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 257:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Vastaanottimen käyttö ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tämä laite vastaanottaa 433 MHz -radioviestejä, joissa on kiinteitä DIP-koodeja. Jokaisella DIP-koodilla on pysyvä &#039;&#039;&#039;ID-numero (1–16)&#039;&#039;&#039;. Näytöllä näkyy aina yksi koodi kerrallaan.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Vastaanotin-oled.jpg|thumb|Vastaanottimen oled näyttö]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== Mitä näyttö kertoo? ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Näyttö on jaettu kahteen osaan:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Vasemmassa reunassa (suurena):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** &#039;&#039;&#039;ID-numero&#039;&#039;&#039; (esim. &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** &#039;&#039;&#039;Huutomerkki &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&#039;&#039;&#039; näkyy, jos koodi on &#039;&#039;&#039;aktiivinen&#039;&#039;&#039; (viesti saatu viimeisen 5 minuutin aikana)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Oikeassa reunassa (pienellä tekstillä):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &#039;&#039;&#039;Ylärivi:&#039;&#039;&#039;  Esim. &amp;lt;code&amp;gt;2/(3)/[5]&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = aktiivisten lähetysten määrä&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* &amp;lt;code&amp;gt;(3)&amp;lt;/code&amp;gt; = passiivisten lähetysten määrä (viesti yli 5 min vanha)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* &amp;lt;code&amp;gt;[5]&amp;lt;/code&amp;gt; = kaikkien vastaanotettujen lähetyksien määrä&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &#039;&#039;&#039;Toinen rivi (vain jos koodi on passiivinen):&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* Aika viimeisestä viestistä minuutteina (esim. &amp;lt;code&amp;gt;17m&amp;lt;/code&amp;gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &#039;&#039;&#039;Kolmas rivi (vain jos passiivinen):&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* Sana &amp;lt;code&amp;gt;PASSIVE&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &#039;&#039;&#039;Alarivi:&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* DIP-koodi (esim. &amp;lt;code&amp;gt;0100&amp;lt;/code&amp;gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-759:rev-764:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Exf</name></author>
	</entry>
	<entry>
		<id>https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=759&amp;oldid=prev</id>
		<title>Exf at 14:36, 3 October 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=759&amp;oldid=prev"/>
		<updated>2025-10-03T14:36:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:36, 3 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lähdekoodi V1&amp;lt;syntaxhighlight lang=&quot;c#&quot; line=&quot;1&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lähdekoodi V1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tiedetyt bugit:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ei lue ID 6:sta tai ID 12:sta&lt;/ins&gt;&amp;lt;syntaxhighlight lang=&quot;c#&quot; line=&quot;1&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;RH_ASK.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;RH_ASK.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;Wire.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#include &amp;lt;Wire.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-757:rev-759:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Exf</name></author>
	</entry>
	<entry>
		<id>https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=757&amp;oldid=prev</id>
		<title>Exf: Created page with &quot;Lähdekoodi V1&lt;syntaxhighlight lang=&quot;c#&quot; line=&quot;1&quot;&gt; #include &lt;RH_ASK.h&gt; #include &lt;Wire.h&gt; #include &lt;Adafruit_GFX.h&gt; #include &lt;Adafruit_SSD1306.h&gt;  #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, OLED_RESET);  // Radiovastaanotin RH_ASK driver(1000, 12, 11, 10); // RX = D12  // Ajastukset const unsigned long ENTRY_TIMEOUT = 30 * 60 * 1000UL; // 30 min const unsigned long DISPLAY_DURATION =...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.pessinurmi.com/index.php?title=Vastaanotin_v1_l%C3%A4hdekoodi&amp;diff=757&amp;oldid=prev"/>
		<updated>2025-10-03T14:34:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Lähdekoodi V1&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; #include &amp;lt;RH_ASK.h&amp;gt; #include &amp;lt;Wire.h&amp;gt; #include &amp;lt;Adafruit_GFX.h&amp;gt; #include &amp;lt;Adafruit_SSD1306.h&amp;gt;  #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;amp;Wire, OLED_RESET);  // Radiovastaanotin RH_ASK driver(1000, 12, 11, 10); // RX = D12  // Ajastukset const unsigned long ENTRY_TIMEOUT = 30 * 60 * 1000UL; // 30 min const unsigned long DISPLAY_DURATION =...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Lähdekoodi V1&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;RH_ASK.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_GFX.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_SSD1306.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define SCREEN_WIDTH 128&lt;br /&gt;
#define SCREEN_HEIGHT 32&lt;br /&gt;
#define OLED_RESET -1&lt;br /&gt;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;amp;Wire, OLED_RESET);&lt;br /&gt;
&lt;br /&gt;
// Radiovastaanotin&lt;br /&gt;
RH_ASK driver(1000, 12, 11, 10); // RX = D12&lt;br /&gt;
&lt;br /&gt;
// Ajastukset&lt;br /&gt;
const unsigned long ENTRY_TIMEOUT = 30 * 60 * 1000UL; // 30 min&lt;br /&gt;
const unsigned long DISPLAY_DURATION = 2500;         // 2.5 s&lt;br /&gt;
&lt;br /&gt;
// Seuraava ruutu nappi&lt;br /&gt;
#define BUTTON_PIN 2&lt;br /&gt;
&lt;br /&gt;
// Kiinteät DIP-koodit (16 kpl)&lt;br /&gt;
const char* dipIdMap[16] = {&lt;br /&gt;
  &amp;quot;0000&amp;quot;, &amp;quot;0001&amp;quot;, &amp;quot;0010&amp;quot;, &amp;quot;0011&amp;quot;,&lt;br /&gt;
  &amp;quot;0100&amp;quot;, &amp;quot;0101&amp;quot;, &amp;quot;0110&amp;quot;, &amp;quot;0111&amp;quot;,&lt;br /&gt;
  &amp;quot;1000&amp;quot;, &amp;quot;1001&amp;quot;, &amp;quot;1010&amp;quot;, &amp;quot;1011&amp;quot;,&lt;br /&gt;
  &amp;quot;1100&amp;quot;, &amp;quot;1101&amp;quot;, &amp;quot;1110&amp;quot;, &amp;quot;1111&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Vilkku&lt;br /&gt;
bool blinkState = false;&lt;br /&gt;
unsigned long lastBlink = 0;&lt;br /&gt;
const unsigned long BLINK_INTERVAL = 500;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Tallennetaan viimeisin aikaleima DIP-koodeille&lt;br /&gt;
unsigned long dipSeen[16] = {0};&lt;br /&gt;
&lt;br /&gt;
// Painallusmuuttujat&lt;br /&gt;
bool buttonPressed = false;&lt;br /&gt;
unsigned long lastDisplaySwitch = 0;&lt;br /&gt;
&lt;br /&gt;
// CRC8 Dallas/Maxim&lt;br /&gt;
byte crc8_dallas(const char* data, uint8_t len) {&lt;br /&gt;
  byte crc = 0x00;&lt;br /&gt;
  for (uint8_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
    crc ^= data[i];&lt;br /&gt;
    for (uint8_t j = 0; j &amp;lt; 8; j++) {&lt;br /&gt;
      crc = (crc &amp;amp; 0x80) ? (crc &amp;lt;&amp;lt; 1) ^ 0x31 : (crc &amp;lt;&amp;lt; 1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return crc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Palauttaa ID:n 1–16 tai 0 jos tuntematon&lt;br /&gt;
int getDipId(const char* dip) {&lt;br /&gt;
  for (int i = 0; i &amp;lt; 16; i++) {&lt;br /&gt;
    if (strncmp(dipIdMap[i], dip, 4) == 0) {&lt;br /&gt;
      return i + 1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Serial.begin(9600);&lt;br /&gt;
  // delay(1000);&lt;br /&gt;
&lt;br /&gt;
  pinMode(BUTTON_PIN, INPUT_PULLUP);&lt;br /&gt;
&lt;br /&gt;
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {&lt;br /&gt;
    display.clearDisplay();&lt;br /&gt;
    display.setTextSize(1);&lt;br /&gt;
    display.setCursor(0, 0);&lt;br /&gt;
    display.println(F(&amp;quot;OLED ei vastaa&amp;quot;));&lt;br /&gt;
    display.display();&lt;br /&gt;
    while (1); // Pysäyttää ohjelman&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  display.clearDisplay();&lt;br /&gt;
  display.setTextSize(1);&lt;br /&gt;
  display.setTextColor(SSD1306_WHITE);&lt;br /&gt;
  display.setCursor(0, 0);&lt;br /&gt;
  display.println(F(&amp;quot;Odotetaan...&amp;quot;));&lt;br /&gt;
  display.display();&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  if (!driver.init()) {&lt;br /&gt;
    display.clearDisplay();&lt;br /&gt;
    display.setCursor(0, 0);&lt;br /&gt;
    display.println(F(&amp;quot;Radio ei vastaa&amp;quot;));&lt;br /&gt;
    display.display();&lt;br /&gt;
    while (1); // &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  pinMode(12, INPUT);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  receiveRadio();&lt;br /&gt;
  cleanExpiredEntries();&lt;br /&gt;
  checkButton();&lt;br /&gt;
  updateDisplay();&lt;br /&gt;
  delay(10);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void checkButton() {&lt;br /&gt;
  static bool prevState = HIGH;&lt;br /&gt;
  bool state = digitalRead(BUTTON_PIN);&lt;br /&gt;
&lt;br /&gt;
  if (prevState == HIGH &amp;amp;&amp;amp; state == LOW) {&lt;br /&gt;
    buttonPressed = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  prevState = state;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void receiveRadio() {&lt;br /&gt;
  uint8_t buf[32];&lt;br /&gt;
  uint8_t buflen = sizeof(buf);&lt;br /&gt;
&lt;br /&gt;
  if (driver.recv(buf, &amp;amp;buflen)) {&lt;br /&gt;
    if (buflen &amp;lt; 8 || buf[0] != &amp;#039;S&amp;#039; || buf[5] != &amp;#039;E&amp;#039;) return;&lt;br /&gt;
&lt;br /&gt;
    byte expectedCrc = crc8_dallas((char*)buf, 6);&lt;br /&gt;
    char crcStr[3] = { (char)buf[6], (char)buf[7], &amp;#039;\0&amp;#039; };&lt;br /&gt;
    byte receivedCrc = strtoul(crcStr, NULL, 16);&lt;br /&gt;
    if (expectedCrc != receivedCrc) return;&lt;br /&gt;
&lt;br /&gt;
    char dip[5];&lt;br /&gt;
    memcpy(dip, &amp;amp;buf[1], 4);&lt;br /&gt;
    dip[4] = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    int dipId = getDipId(dip);&lt;br /&gt;
    &lt;br /&gt;
    if (dipId &amp;lt;= 0) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    dipSeen[dipId - 1] = millis(); // Päivitä aikaleima&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void cleanExpiredEntries() {&lt;br /&gt;
  unsigned long now = millis();&lt;br /&gt;
  for (int i = 0; i &amp;lt; 16; i++) {&lt;br /&gt;
    if (dipSeen[i] != 0 &amp;amp;&amp;amp; now - dipSeen[i] &amp;gt; ENTRY_TIMEOUT) {&lt;br /&gt;
      dipSeen[i] = 0; // Nollaa aikaleima = ei enää aktiivinen&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void updateDisplay() {&lt;br /&gt;
  static int currentActiveIndex = -1;&lt;br /&gt;
  unsigned long now = millis();&lt;br /&gt;
&lt;br /&gt;
  int allSeenIndices[16];&lt;br /&gt;
  int seenCount = 0;&lt;br /&gt;
  int activeCount = 0;&lt;br /&gt;
  int passiveCount = 0;&lt;br /&gt;
&lt;br /&gt;
  // Kerätään vastaanotetut DIP:t ja lasketaan aktiiviset/passiiviset&lt;br /&gt;
  for (int i = 0; i &amp;lt; 16; i++) {&lt;br /&gt;
    if (dipSeen[i] != 0) {&lt;br /&gt;
      allSeenIndices[seenCount++] = i;&lt;br /&gt;
      unsigned long ageMin = (now - dipSeen[i]) / 60000UL;&lt;br /&gt;
      if (ageMin &amp;lt;= 5) {&lt;br /&gt;
        activeCount++;&lt;br /&gt;
      } else {&lt;br /&gt;
        passiveCount++;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  display.clearDisplay();&lt;br /&gt;
&lt;br /&gt;
  if (seenCount &amp;lt;= 0) {&lt;br /&gt;
    // Jos ei ole aktiivisia koodeja&lt;br /&gt;
    currentActiveIndex = -1;&lt;br /&gt;
    display.setTextSize(1);&lt;br /&gt;
    display.setCursor(0, 0);&lt;br /&gt;
    display.println(F(&amp;quot;Kuunnellaan radiota...&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    // Vilkku aina näkyviin&lt;br /&gt;
    if (now - lastBlink &amp;gt;= BLINK_INTERVAL) {&lt;br /&gt;
      blinkState = !blinkState;&lt;br /&gt;
      lastBlink = now;&lt;br /&gt;
    }&lt;br /&gt;
    if (blinkState) {&lt;br /&gt;
      display.fillRect(SCREEN_WIDTH - 3, SCREEN_HEIGHT - 3, 2, 2, SSD1306_WHITE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    display.display();&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Päivitä ruutu vain tarvittaessa&lt;br /&gt;
  if (now - lastDisplaySwitch &amp;gt;= DISPLAY_DURATION || buttonPressed) {&lt;br /&gt;
    currentActiveIndex = (currentActiveIndex + 1) % seenCount;&lt;br /&gt;
    lastDisplaySwitch = now;&lt;br /&gt;
    buttonPressed = false;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Haetaan näytettävä DIP&lt;br /&gt;
  int dipIndex = allSeenIndices[currentActiveIndex];&lt;br /&gt;
  int id = dipIndex + 1;&lt;br /&gt;
&lt;br /&gt;
  unsigned long ageMin = (now - dipSeen[dipIndex]) / 60000UL;&lt;br /&gt;
  bool isPassive = (ageMin &amp;gt; 5);&lt;br /&gt;
&lt;br /&gt;
  // Vasemmalle iso ID-numero&lt;br /&gt;
  display.setTextSize(4);&lt;br /&gt;
  display.setCursor(0, 0);&lt;br /&gt;
  display.print(id);&lt;br /&gt;
  if (!isPassive) {&lt;br /&gt;
    display.print(&amp;quot;!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Oikealle tilastorivi&lt;br /&gt;
  display.setTextSize(1);&lt;br /&gt;
  int xTextStart = SCREEN_WIDTH - 6 * 10;&lt;br /&gt;
  char indexStr[20];&lt;br /&gt;
  snprintf(indexStr, sizeof(indexStr), &amp;quot;%d/(%d)/[%d]&amp;quot;, activeCount, passiveCount, seenCount);&lt;br /&gt;
  display.setCursor(xTextStart, 0);&lt;br /&gt;
  display.print(indexStr);&lt;br /&gt;
&lt;br /&gt;
  // PASSIVE-merkinnät jos yli 5 min vanha&lt;br /&gt;
  if (isPassive) {&lt;br /&gt;
    char timeStr[10];&lt;br /&gt;
    snprintf(timeStr, sizeof(timeStr), &amp;quot;%lum&amp;quot;, ageMin);&lt;br /&gt;
    display.setCursor(xTextStart, 8);&lt;br /&gt;
    display.print(timeStr);&lt;br /&gt;
&lt;br /&gt;
    display.setCursor(xTextStart, 16);&lt;br /&gt;
    display.print(F(&amp;quot;PASSIVE&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // DIP-koodi alariville&lt;br /&gt;
  display.setCursor(xTextStart, SCREEN_HEIGHT - 8);&lt;br /&gt;
  display.print(dipIdMap[dipIndex]);&lt;br /&gt;
&lt;br /&gt;
  // Vilkku (aina näkyvissä)&lt;br /&gt;
  if (now - lastBlink &amp;gt;= BLINK_INTERVAL) {&lt;br /&gt;
    blinkState = !blinkState;&lt;br /&gt;
    lastBlink = now;&lt;br /&gt;
  }&lt;br /&gt;
  if (blinkState) {&lt;br /&gt;
    display.fillRect(SCREEN_WIDTH - 3, SCREEN_HEIGHT - 3, 2, 2, SSD1306_WHITE);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  display.display();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Exf</name></author>
	</entry>
</feed>