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

<channel>
	<title>El Futirifoken &#187; serial port</title>
	<atom:link href="http://www.gazer.com.ar/tag/serial-port/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gazer.com.ar</link>
	<description>El arte de no decir nada ;-)</description>
	<lastBuildDate>Mon, 26 Dec 2011 19:56:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cómo perder un bit</title>
		<link>http://www.gazer.com.ar/2008/12/02/como-perder-un-bit/</link>
		<comments>http://www.gazer.com.ar/2008/12/02/como-perder-un-bit/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 00:46:58 +0000</pubDate>
		<dc:creator>Gazer</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[serial port]]></category>

		<guid isPermaLink="false">http://www.gazer.com.ar/?p=945</guid>
		<description><![CDATA[Un proyecto que hicimos a principio de año es un soft que maneja una PC para una rockola con su respectiva interfaz de hardware (&#8220;la caja&#8221; de ahora en más) para interactuar con la botonera. En estos días el cliente nos pidió que agregaramos alguna validación para que la caja y el programa se aseguren [...]]]></description>
			<content:encoded><![CDATA[<p>Un proyecto que hicimos a principio de año es un soft que maneja una PC para una rockola con su respectiva interfaz de hardware (&#8220;la caja&#8221; de ahora en más) para interactuar con la botonera. En estos días el cliente nos pidió que agregaramos alguna validación para que la caja y el programa se aseguren que son &#8220;originales&#8221; (no es algo que me agrade agregar, pero el software es del cliente).</p>
<p>En fin, la cosa es que estuve todo el viernes y todo el lunes sin poderlo hacer andar. La caja me respondía perfecto salvo en un caso: cuando me llegaba 0x3F pinchaba. Lo peor es que era un valor que me llegaba sospechosamente seguido para ser aleatorio.</p>
<p>Le dimos mil vueltas con Tulku hasta que finalmente encontramos el problema, que obviamente era yo <img src='http://www.gazer.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , o más bien la implementación de <a href="http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx">SerialPort</a> de .NET (de Microsoft al menos, el programa no corre en Mono todavía) que tiene defaults ridículos <img src='http://www.gazer.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>El problema era que yo estaba usando un método que lee todo lo que está pendiente, pero justo ese método pasa los bytes por un Encoder, ¿y a que no adivinan? &#8230; Si, el Encoder por default es <em>ASCII7BIT</em>, por lo que me tiraba a la basura el bit más significativo del byte leído, haciendo que no hubiera chance de responder correctamente para terminar el handshaking.</p>
<p>Reemplazando el método por un while y leyendo byte a byte de manera RAW, el problema se solucionó.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gazer.com.ar/2008/12/02/como-perder-un-bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

