RFLink-ESP/docs/RFLink-ESP Optimalisatie 2....

58 lines
27 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>
</title>
<style type="text/css">
.cs95E872D0{text-align:left;text-indent:0pt;margin:0pt 0pt 0pt 0pt}
.cs84FBA952{color:#000000;background-color:transparent;font-family:Calibri;font-size:17pt;font-weight:normal;font-style:normal;}
.csB33285EC{color:#808080;background-color:transparent;font-family:Calibri;font-size:10pt;font-weight:normal;font-style:normal;}
.cs14438CD8{text-align:left;text-indent:0pt;margin:0pt 0pt 0pt 0pt}
.cs1B16EEB5{color:#000000;background-color:transparent;font-family:Calibri;font-size:11pt;font-weight:normal;font-style:normal;}
.csA27DA275{color:#000000;background-color:transparent;font-family:Calibri;font-size:16pt;font-weight:bold;font-style:normal;}
.cs703390B3{text-align:left;margin:0pt 0pt 0pt 23pt;list-style-type:disc;color:#000000;background-color:transparent;font-family:Arial;font-size:11pt;font-weight:normal;font-style:normal}
.csD5D7D290{color:#000000;background-color:transparent;font-family:Arial;font-size:11pt;font-weight:normal;font-style:normal;}
.cs2F445579{text-align:left;text-indent:0pt;margin:0pt 0pt 0pt 27pt}
.cs2D2816FE{}
.cs4974C6A2{width:385.2pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.csD7F14B45{width:191.8pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.csDED119D5{width:406.45pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.cs10095E8{width:271.05pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.cs42B84EFB{width:276.6pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.cs5D826CCB{width:328.45pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.csA0EC26C4{width:417.4pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.cs958082D0{width:232.1pt;padding:1.95pt 3pt 1.95pt 3pt;border-top:1pt #A3A3A3 solid;border-right:1pt #A3A3A3 solid;border-bottom:1pt #A3A3A3 solid;border-left:1pt #A3A3A3 solid}
.csCF6BBF71{color:#000000;background-color:transparent;font-family:Times New Roman;font-size:12pt;font-weight:normal;font-style:normal;}
.cs7FC7682D{color:#969696;background-color:transparent;font-family:Arial;font-size:9pt;font-weight:normal;font-style:normal;}
</style>
</head>
<body>
<p class="cs95E872D0"><span class="cs84FBA952">RFLink-ESP Optimalisatie 2</span></p><p class="cs95E872D0"><span class="csB33285EC">3 August, 2018</span></p><p class="cs95E872D0"><span class="csB33285EC">15:34</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Samenvatting:</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Op dit punt is besloten zelf verder te gaan op basis van R29 sources.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Echt meten en optimaal instellen van LoopsPerMillis, meten is gelukt, optimale instelling nog niet gevonden.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Het programma is herschreven, waarbij protocollen in een class zijn ondergebracht (moet nog gebeuren voor TX).</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Tussenstand opgeborgen in RFLink_06.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Conclusie na deze optimalisatie</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">N.B. met maar 2 protocollen</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">QIA remote wordt nu correct gedetecteerd</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">6-knops wordt wel consistent gedetecteert, maar niet de juiste informatie voor Domoticz. Is dit wel oplosbaar ???</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Ventilatie wordt correct gedetecteerd</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Alle detectie is consistetent.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Geconstateerde problemen</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">QIA remote D wordt anders gedetecteerd dan A,B,C</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">6-knops links en rechts worden verschillend gedetecteerd</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Ventilatie wordt op diverse manieren gedetecteerd.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Deurbel zou een random code moeten bevatten, maar daar is niet veel van terug te vinden</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Bed besturing doet het niet</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Beperkt aantal valse meldingen (ongeveer 1 per uur)</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Er zijn een paar knoppen die bij ingedrukt houden geen consistente detectie geven</span></p><ol start="1" style="margin-top:0;margin-bottom:0;">
<li class="cs703390B3"><span class="cs1B16EEB5">Ventilatie +</span></li><li class="cs703390B3"><span class="cs1B16EEB5">Ventilatie -</span></li><li class="cs703390B3"><span class="cs1B16EEB5">6 button 3R</span></li></ol>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">LoopsPerMilli</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image0.png" width="874" height="294" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">De Timeout value staat ingesteld op 7 msec, we hebben dus iets meer dan een waarde van 4000 nodig.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Dit zou overigens ook betekenen dat de ESP32 meer dan 20 keer sneller is dann een Arduino Mega.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Voor dit moment hebben we echter een beter gevoel bij een waarde van 1500. Als we naar de QIAchip series kijken, zien we dat met name de begin puls (pre-ample) beter wordt gedetecteerd (deze is in het echt namelijk 2.5 msec.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">In een later stadium zullen we kijken of we deze parameter beter kunnen tunen,</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Betere logging/displaying</span><span class="cs1B16EEB5"> </span></p><p class="cs14438CD8"><span class="cs1B16EEB5">van meetresultaten en interpretaties.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">De gebruikte Debug parameters vinden wij onvoldoende:</span></p><p class="cs2F445579"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs2F445579"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image1.png" width="309" height="74" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Daarom hebben we deze vervangen door&nbsp; &quot;LEARNING_MODE&quot; , een parameter die gemakkelijk is uit te breiden.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs2F445579"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image2.png" width="560" height="97" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Production Mode</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Omdat we zo weinig mogelijk vals positieve detecties willen hebben, is het goed om alleen de protocollen actief te hebben die ook daadwerkelijk gebruikt gaan worden. Heb je een nieuw device, schakel dan tijdelijk naar de Learning mode, laat het programma de juiste detectie doen en ga weer naar productie mode.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Volgorde Protocollen</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Naast beperken van het aantal aktieve protocollen is het goed om eenvoudig de volgorde te bepalen waarin de protocollen worden getoetst. Dit hebben we voorlopig even opgelost door de define van een protocol een integer waarde mee te geven. Deze integer waarde beapplt simpelweg de absolute positie in de lijst met actieve protocollen. </span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs2F445579"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image3.png" width="740" height="214" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Tijdens het testen willen we graag zien welke protocollen actief zijn en in welke volgorde ze worden aangeroepen. Daarom printen we alle protocollen als we niet in de productie mode zitten:</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
<tr>
<td class="cs4974C6A2" valign="top" width="514"><p class="cs95E872D0"><span class="cs1B16EEB5">Tijdens het testen willen we graag zien welke protocollen actief zijn en in welke volgorde ze worden aangeroepen. Daarom printen we alle protcollen als we niet in de productie mode zitten:</span></p></td><td class="csD7F14B45" valign="top" width="256"><p class="cs95E872D0"><span class="cs1B16EEB5">20;00;Nodo RadioFrequencyLink V1.1;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 1</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 5</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 2</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 3</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 4</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 6</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 7</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 8</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 9</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 11</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 12</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 13</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 15</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 60</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 61</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 62</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol Available = 254</span></p></td></tr>
</table>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Learning Mode 2</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image4.png" width="542" height="125" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
<tr>
<td class="csDED119D5" valign="top" width="542"><p class="cs95E872D0"><span class="cs1B16EEB5">And here you can see the Learning Mode 2 in action.</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Notenhouten ABCD switch, dit is een QIAchip.</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">The A-button of this chip is recognized by both protocol 5 and protocol 61. Interesting to see that the decoding is different. Also interesting is that the code signal is inverted and the only way we can explain it at this moment is that there&#39;s a bug in the program.</span></p></td><td class="cs10095E8" valign="top" width="362"><p class="cs95E872D0"><span class="cs1B16EEB5">20;01;Eurodomest;ID=0ffa20;SWITCH=07;CMD=ALLOFF;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=5&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;02;X10;ID=a20e;SWITCH=ff;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;03;Eurodomest;ID=0ffa20;SWITCH=07;CMD=ALLOFF;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=5&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;04;X10;ID=a20e;SWITCH=ff;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p></td></tr>
<tr>
<td class="csDED119D5" valign="top" width="542"><p class="cs95E872D0"><span class="cs1B16EEB5">Pressing the D-button, shows some other interesting things:</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">Protocol 5 doesn&#39;t recognize the signal anymore</span></p></td><td class="cs10095E8" valign="top" width="362"><p class="cs95E872D0"><span class="cs1B16EEB5">20;05;X10;ID=a207;SWITCH=ff;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">LM=2&nbsp;&nbsp;&nbsp; ID=61&nbsp;&nbsp;&nbsp; Len=50</span></p></td></tr>
</table>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">QIAchip</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">The QIAchip uses an EV1527 Encoding, so we would expect something like this (20 Address bits and 4 Data bits)</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">AAAA&nbsp;&nbsp; AAAA&nbsp;&nbsp; AAAA&nbsp;&nbsp;&nbsp; AAAA&nbsp;&nbsp;&nbsp; DDDD</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Based on the above description, the decoding criteria should be:</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">See EV1527 page or table below</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Looking at the protocols 5 and 61 which is, pure technical seen, the best decoding algoritm ?</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Protocol 5 is inverted, sees analysis below</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Protocol 61 is even worse, because the switch is interpreted very weird</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">And now what e the correct interpretation of this signal and how should we send it to e.g. Domoticz ?</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">See table below</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csA27DA275">Knop-A</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Geeft onderstaande code terug (protocol 254 is gewijzigd, zodat ook het eerste element wordt weergegeven).</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">2400,270,690,270,690,270,690,270,690,270,690,270,690,270,690,270,690,270,690,750,210,270,690,750,210,750,210,750,210,270,690,750,210,750,210,750,210,750,210,750,210,240,720,270,690,240,690,750,210,240,2640;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Als je naar de EVT1527 code kijkt is de interpretatie van deze tijdserie helder en duidelijk</span></p><ol start="4" style="margin-top:0;margin-bottom:0;">
<li class="cs703390B3"><span class="cs1B16EEB5">Een hoog-laag combinatie (een informatie-bit) duurt ongeveer 1000 usec = 1 msec</span></li></ol>
<ol start="2" style="margin-top:0;margin-bottom:0;">
<li class="cs703390B3" value="2"><span class="cs1B16EEB5">De preamble bestaat uit een korte puls hoog + ongeveer 8 informatie-bits laag</span></li></ol>
<ol start="3" style="margin-top:0;margin-bottom:0;">
<li class="cs703390B3" value="3"><span class="cs1B16EEB5">De eerste pulsduur van 2400 usec moet dus het tweede deel van de preamble zijn en dus een LAAG nivo hebben</span></li></ol>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
<tr>
<td class="cs42B84EFB" valign="top" width="369"><p class="cs95E872D0"><span class="cs1B16EEB5">Als we dan de resterende code analyseren:<br/><br/>2400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;&lt;&lt;&lt; tweede deel van de preamble</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">240,720,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">270,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">240,690,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">750,210,</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">240,2640;&nbsp;&nbsp;&nbsp; &lt;&lt;&lt; dit is de preamble van de volgende serie</span></p></td><td class="cs5D826CCB" valign="top" width="438"><p class="cs95E872D0"><span class="cs1B16EEB5"><br/><br/><br/>De eerste puls is kort hoog en laag laag dus een logische 0<br/>0000<br/><br/><br/><br/><br/>0000<br/><br/><br/><br/><br/><br/>0101<br/><br/><br/><br/><br/>1101<br/><br/><br/><br/><br/>1111<br/><br/><br/><br/><br/>0001<br/><br/><br/>En in hexadecimale vorm:&nbsp; 005DF1</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">En niet 0ffa20 zoals RFLink aangeeft<br/><br/>005DF1 = 0000 0000 0101 1101 1111 0001</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">FFA20&nbsp;&nbsp;&nbsp; = 1111 1111 1010 0010 0000</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">We zien dus duidelijk dat de signalen geinverteerd zijn.</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">De laatste 4 bits 0001 geven aan dat de A-knop is ingedrukt (toggle knop) en niet SWITHCH-7 / OFF, ook hier weer de inversie.</span></p></td></tr>
</table>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Looking into the code of protocol 5 and protocl 61, we see that protocol 5 is complex and protocol 61 is about what we would expect but misses some basic testing (like the length of the signal) and above gives a too short result back</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">And now a very fundamental question arises: should we continue with these buggy algoritms or should we start all over again, neatly with a class implementation.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">There are 4 calls to the Receive protocols:</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image5.png" width="287" height="81" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">The function is always called with arguments0,0 and fucntions are not doing anything with these arguments, so probably the designers had future plans which were never realized.&nbsp; &hellip;..</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><table class="cs2D2816FE" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
<tr>
<td class="csA0EC26C4" valign="top" width="557"><p class="cs95E872D0"><span class="cs1B16EEB5">Ok first let&#39;s make a new protocol, number 16 is free, to see if we&#39;ve the right skills.</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">In less than 30 lines of code (and simpeler than the original, so we might me missing something) we created a new detection protocol.</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">On the right the results which looks OK</span></p></td><td class="cs958082D0" valign="top" width="310"><p class="cs95E872D0"><span class="cs1B16EEB5">20;01;EV1527;ID=005DF;SWITCH=01;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;02;EV1527;ID=005DF;SWITCH=02;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;03;EV1527;ID=005DF;SWITCH=04;CMD=ON;</span></p><p class="cs95E872D0"><span class="cs1B16EEB5">20;04;EV1527;ID=005DF;SWITCH=08;CMD=ON;</span></p></td></tr>
</table>
<p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Now minimize the number of available protocols and let&#39;s go to class definitions.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">The functional protocols we want to keep are, the new protocol we just made and the new KAKU protocol 005.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Of course we also need to keep 001 and 0254.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Ok that&#39;s done, and save these files as RFLink_03</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Created:</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">RFL_Protocol_Base,h</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">RFL_Protocol_EV1527.h</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">RFL_Protocols.h</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Protocollen 1/254/5/16 omgezet in class, lijkt allemaal te werken, tussenstand in RFLink_04 bewaard.</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Er is nu nog maar 1 plaats waar protocollen worden geimporteerd en waar tevens de volgorde wordt vastgelegd (geen complexe define structuren meer)</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="csD5D7D290"><img src="RFLink-ESP%20Optimalisatie%202_files/image6.png" width="443" height="61" alt="" style="border-width:0px;" /></span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">TX er even uitggegooid, tussen resultaat in RFLink_05</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">Serial Commands detectie ook maar ff herschreven, tamelijk ingewikkeld, bevat niet alle commando&#39;s )dat laatste nog steeds niet).</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs14438CD8"><span class="cs1B16EEB5">&nbsp;</span></p><p class="cs95E872D0"><span class="csCF6BBF71">&nbsp;</span></p><p class="cs95E872D0"><span class="cs7FC7682D">Created with Microsoft Office OneNote 2007<br/>One place for all your notes and information</span></p></body>
</html>