<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Digital Logic µFR NFC Card Reader - part 4: first meaningful ISO14443 / APDU conversation</title><link>/technologies/internet-of-things/b/blog/posts/digital-logic-fr-nfc-card-reader---part-4-first-meaningful-iso14443-apdu-conversation</link><description>In this article I make a c++ application for the D-Logic card reader and a set of smart cards.This time I focus on the ISO14443_4 / APDU protocol. Getting results instead of focusing on Object Oriented Design. In contrast to previous posts, I&amp;amp;#3...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Digital Logic µFR NFC Card Reader - part 4: first meaningful ISO14443 / APDU conversation</title><link>https://community.element14.com/technologies/internet-of-things/b/blog/posts/digital-logic-fr-nfc-card-reader---part-4-first-meaningful-iso14443-apdu-conversation</link><pubDate>Fri, 18 Dec 2020 19:09:38 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:abe7c33b-f1b8-4ba1-8097-4cb278b9d8e8</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve refactored a bit.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In my design, the reader checks the card type, and returns an object of that type.&lt;/p&gt;&lt;p&gt;The type of card returned isn&amp;#39;t depending on the reader though.&lt;/p&gt;&lt;p&gt;The reader may have capabilities to talk or not talk to certain cards, but it isn&amp;#39;t the one that needs to know.&lt;/p&gt;&lt;p&gt;Else, I&amp;#39;d have to create a reader for many card types, while the reader capabilities don&amp;#39;t change.&lt;/p&gt;&lt;p&gt;I&amp;#39;m going to restrict the reader knowledge to &amp;quot;ability to serve according to smartcard standards&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So I moved it out to the factory.&lt;/p&gt;&lt;p&gt;The standard factory knows how to create common known&amp;nbsp; cards. And how to use a reader.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For specialised cards, I&amp;#39;ll provide a specialised factory. It can use the existing reader class, but knows how to create specialised cards.&lt;/p&gt;&lt;p&gt;For the Infineon Security2Go cards, I&amp;#39;ll create a S2GoFactory and a CardS2Go class.&lt;/p&gt;&lt;p&gt;The factory will use reader API to check if the card is of the S2Go type, and if yes, create a CardS2Go object.&lt;/p&gt;&lt;p&gt;Else it will fail.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The CardS2Go will be a child of the CardISO14443 class. Because it uses that class&amp;#39; functions. But additionally runs a S2Go specific application API.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10499&amp;AppID=27&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>