<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8996377137098508061</id><updated>2024-09-07T17:24:29.928-07:00</updated><category term="data hidding"/><category term="image hiding"/><category term="programming technique"/><category term="steganography"/><category term="technocode"/><category term="watermarking"/><title type='text'>Wadix Group</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-209888964155327310</id><published>2011-11-20T00:52:00.000-08:00</published><updated>2011-11-20T01:27:50.167-08:00</updated><title type='text'>Controller Area Network - Development Process</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;font-size:130%;&quot;  &gt;DEVELOPMENT PROCESS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;As the application is designed to be as simple as possible, the first thing to start with is a simple code which uses buttons for connecting to the board (“Connect”) and disconnecting from it (“Disconnect”).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;For displaying the information received from the board, a RichEdit is placed into the application. The source code should have functions for opening ports, closing them, reading from and writing to the buffer as well as error handling.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;Code Snippet&lt;/span&gt;&lt;br /&gt;&lt;pre style=&quot;font-family: arial;&quot; name=&quot;code&quot; class=&quot;cpp&quot;&gt;//-----Code Snippet from the TCommPort Constructor-----//&lt;br /&gt;TCommPort::TCommPort()&lt;br /&gt;: m_CommOpen(false),&lt;br /&gt;m_CommPort(“COM5”),&lt;br /&gt;m_hCom(0)&lt;br /&gt;{&lt;br /&gt; m_dcb.DCBlength = sizeof(DCB);&lt;br /&gt; m_dcb.BaudRate  =1382400;&lt;br /&gt; m_dcb.ByteSize  =8;&lt;br /&gt; m_dcb.Parity    =NOPARITY;    //NOPARITY and friends are #defined in windows.h&lt;br /&gt; m_dcb.StopBits  =ONESTOPBIT;  //ONESTOPBIT is also from windows.h&lt;br /&gt;}&lt;br /&gt;//----end of TCommPort constructor-----//&lt;br /&gt;&lt;/pre&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The first step of implementing the communication library into the application is to assign the “OpenCommPort()” function to the “Connect” Button.&lt;/span&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;// Open the COM PORT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;com-&amp;gt;OpenCommPort();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;“com” is the name of the class used to call functions from the library. This is enabled by the following code snippet at the top of the file:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;TCommPort *com = new TCommPort;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The “OpenCommPort()” function first checks if the port is already open and if so throws an exception and then proceeds to handle the COM port treating it to be a file. It then writes the relevant configurations to the port like BaudRate, ByteSize and Parity. Besides the port open function, the Connect button also disables all other buttons while enebling the Disconnect Button. A safety feature to cut down on the amount of error messages the user may face.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The final application consists of seven buttons namely: Start, Stop, Exit, Connect, Disconnect, Run, Save along with two RichEdit Boxes namely: Display and Message.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: arial; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid9jIxldqIosDRKROtNFe9BsVQBBlcsejyrcgENdBgbKjKPTBupedfy9DKzKkoND7J5JFuJGIpkrcV5RErhG2LINdGVG4JE-vi8R85bpEAyjDtlRjyo3cxAnJlaU4o9hKJu5zo5YmRi7jz/s1600/1.png&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 233px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid9jIxldqIosDRKROtNFe9BsVQBBlcsejyrcgENdBgbKjKPTBupedfy9DKzKkoND7J5JFuJGIpkrcV5RErhG2LINdGVG4JE-vi8R85bpEAyjDtlRjyo3cxAnJlaU4o9hKJu5zo5YmRi7jz/s320/1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5677000180245653154&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;A screenshot of the running application&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;At the start of the application, all the buttons, timers and flags are initialized to a default status.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;The code snippet below provides the information:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family: arial;&quot; name=&quot;code&quot; class=&quot;cpp&quot;&gt;__fastcall TForm1::TForm1(TComponent* Owner)&lt;br /&gt;: TForm(Owner)&lt;br /&gt;{&lt;br /&gt;// Intializing the Buttons&lt;br /&gt;Start-&amp;gt;Enabled = true;&lt;br /&gt;Stop-&amp;gt;Enabled = false;&lt;br /&gt;Exit-&amp;gt;Enabled = true;&lt;br /&gt;Connect-&amp;gt;Enabled = false;&lt;br /&gt;Disconnect-&amp;gt;Enabled = false;&lt;br /&gt;Run-&amp;gt;Enabled = false;&lt;br /&gt;Save-&amp;gt;Enabled = false;&lt;br /&gt;// Initializing the flags&lt;br /&gt;open_port = false;&lt;br /&gt;filesaved = false;&lt;br /&gt;// Initializing the Timer&lt;br /&gt;Timer1-&amp;gt;Enabled = false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;Main features of the Buttons:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Start:&lt;/span&gt; Initially only the Start and the Exit buttons are enabled. With the click of the Start button the system becomes active enabling the Connect, Stop and Exit buttons and displaying an information regarding the status of the system through the RichEdit Box named “Message”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Connect: &lt;/span&gt;The Connect button press triggers the application to display a helpful message to the user through RichEdit Box “Message” letting them know that the port has been opened. It disables the Start button while enabling the Run, Disconnect, Stop, Exit buttons also updating various flag status mainly the open_port flag.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Run:&lt;/span&gt; The Run button press updates various button status. The major feature being triggering the Timer added to the application from the C++ Builder. This is done using the following code snippet:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Timer1-&amp;gt;Enabled = true;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The enabled timer updates the RichEdit Box “Display” with the data from the CAN-Bus every millisecond, clears the buffer and then repeats itself until an external agent deactivates (Disconnect/Stop buttons) the process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Disconnect:&lt;/span&gt; The Disconnect button press enables the Save, Connect, Stop and Exit buttons while keeping Run, Start and Disconnect buttons deactivated. This also disables the Timer and other flags and double checks with the open_port status and another Boolean function from the COM Library “ifConnected()”. When satisfied a helpful message is displayed through the RichEdit Box “Message” to inform the user about the connection status.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Save: &lt;/span&gt;The Save button opens the screen which allows options to save the information in the RichEdit Boxes to be written into .txt or .doc files for further analysis. The following code snippet is used to bring screen:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Form2-&amp;gt;ShowModal();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; style=&quot;font-family: arial;&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7A4s_9rStnzXcVHV7FKN4MFV8XyNjPGUDheJi7uf5QI1BrsMCl7KMZXd036dSwFn4Iwpe_udpBsD1AG5kZo6R-ncC0JdUBD6FglbvbA3hTp0ej5jQO9BI9g6x9V9lUkhtx69jCDYtUfLa/s1600/2.png&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 174px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7A4s_9rStnzXcVHV7FKN4MFV8XyNjPGUDheJi7uf5QI1BrsMCl7KMZXd036dSwFn4Iwpe_udpBsD1AG5kZo6R-ncC0JdUBD6FglbvbA3hTp0ej5jQO9BI9g6x9V9lUkhtx69jCDYtUfLa/s320/2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5677001599368564818&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;;font-family:arial;font-size:85%;&quot;  &gt;Screenshot (a) from the running application showing the options to save to files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; style=&quot;font-family: arial;&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGcRCcYmCmXVcbgJmqC7gYvebV7sWwr6WlRK06m39L0EZ5pE-ZBU2vydlH-T7rwGQdE0EaL4ugxt4ZV9aK3VkhJWpngBjipcsxCe8nOy4y7J6emgQwvZ6-ayJI9swvEhTkQviZAZ7JJIpM/s1600/4.png&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 126px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGcRCcYmCmXVcbgJmqC7gYvebV7sWwr6WlRK06m39L0EZ5pE-ZBU2vydlH-T7rwGQdE0EaL4ugxt4ZV9aK3VkhJWpngBjipcsxCe8nOy4y7J6emgQwvZ6-ayJI9swvEhTkQviZAZ7JJIpM/s320/4.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5677002143393270482&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;;font-family:arial;font-size:85%;&quot;  &gt;Screenshot (b) from the running application showing the menu to save to a logfile&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The Exit button shown on screenshot (a) closes the screen and goes back to the main screen.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Stop: &lt;/span&gt;The Stop button press triggers an application which deals with bringing the system to its default state, i.e., in a disconnected state and all buttons in disabled mode except the Start and Exit buttons. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The button press initially checks if the network is still live. If no, then it shuts down any action going on and brings the system to default state. If yes, pops up a warning message informing the user about the situation and providing options to override the system to disconnect from the network and sit at the default state or cancel the current operation and manually disconnect from the network, clear both the RichEdit boxes and passes appropriate status information for the user through RichEdit Box “Message” that the system is at halt. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;The code snippet below shows the generation of the warning pop up:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family: arial;&quot; name=&quot;code&quot; class=&quot;cpp&quot;&gt;// Message Box for options&lt;br /&gt;int response = Application-&amp;gt;MessageBoxA(&quot;The PORT is still connected. Are you sure you wish to STOP\n&quot;,&quot;Warning&quot;, MB_YESNOCANCEL|MB_ICONQUESTION);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; style=&quot;font-family: arial;&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwxU-UODC__ky5t6rxEZ-yEa_HCa4xdchZ_JvQffIj5EAet7UV97iOWbrKpKzrxUOLJP1y3Sum6TBT9mNrHuKcgeLpb2RjHPlPxDU_BTwMZbYvvloH16JqYCyDcnfWssC7YSQ17Rqmnk0d/s1600/3.png&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 252px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwxU-UODC__ky5t6rxEZ-yEa_HCa4xdchZ_JvQffIj5EAet7UV97iOWbrKpKzrxUOLJP1y3Sum6TBT9mNrHuKcgeLpb2RjHPlPxDU_BTwMZbYvvloH16JqYCyDcnfWssC7YSQ17Rqmnk0d/s320/3.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5677002140382360434&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;;font-family:arial;font-size:85%;&quot;  &gt;Screenshot from a running application showing warning pop up.&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Exit:&lt;/span&gt; The Exit button press, as the name indicates terminates the application.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The two RichEdit Boxes “Message” and “Display” have the same major functionality but varies in their usage. The Message Box is used to display system update information messages for the user while the Display Box displays the data streamed from the network.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/209888964155327310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/11/controller-area-network-development.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/209888964155327310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/209888964155327310'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/11/controller-area-network-development.html' title='Controller Area Network - Development Process'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid9jIxldqIosDRKROtNFe9BsVQBBlcsejyrcgENdBgbKjKPTBupedfy9DKzKkoND7J5JFuJGIpkrcV5RErhG2LINdGVG4JE-vi8R85bpEAyjDtlRjyo3cxAnJlaU4o9hKJu5zo5YmRi7jz/s72-c/1.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-2101192074187661643</id><published>2011-11-08T10:03:00.000-08:00</published><updated>2011-11-19T09:11:09.199-08:00</updated><title type='text'>Controller Area Network(CAN )  Hardware</title><content type='html'>&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;T&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;font-size:130%;&quot;  &gt;he Development Board:&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:100%;&quot;&gt;The analyzer itself is a LPC-E2294-RB development board from Olimex. This development board uniquely features four CAN controllers and a UART to USB conversion chip capable of RS-232 with speeds exceeding 1Mbits/s.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;font-size:100%;&quot;  &gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTK7SmBfNOWHqbMSxjzMi1CCWkvzBMetkmt7PnNB8AbrYmyPLHsUnGrO3K5r4gGV8FFVw7W7S8pzigsF2j4EAq4JoIuhgtRgYcCOu9dvegUPGyC1by1SbhuorkcWjFeXGjuTrr2wrnZV0-/s1600/CAN-Hardware.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 169px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTK7SmBfNOWHqbMSxjzMi1CCWkvzBMetkmt7PnNB8AbrYmyPLHsUnGrO3K5r4gGV8FFVw7W7S8pzigsF2j4EAq4JoIuhgtRgYcCOu9dvegUPGyC1by1SbhuorkcWjFeXGjuTrr2wrnZV0-/s320/CAN-Hardware.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5672688334685332690&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style=&quot; text-align: justify;font-family:arial;&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Picture courtesy of www.olimex.com&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;The key features of the board:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;MCU: LPC2294 16/32 bit ARM7TDMI-S™t with 256K Bytes Program Flash, 16K Bytes RAM, EXTERNAL MEMORY BUS, RTC,4x 10 bit ADC 2.44 uS, 2x UARTs, 4x CAN, I2C, SPI, 2x 32bit TIMERS, 7x CCR, 6x PWM, WDT, 5V tolerant I/O, up to 60MHz operation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Standard JTAG connector with ARM 2x10 pin layout for programming/debugging with ARM-JTAG&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;1MB (256Kx32bit) 12 ns 71V416 SRAM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;4MB (512Kx16bit) 70ns TE28F320C3BD70 C3 INTEL FLASH&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;USB to RS232 convertor, board can take power only from USB port&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;4 CAN drivers and connectors&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;RESET circuit with exterman control of Philips ISP utility via USB-RS232 virtual port&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Jumpers for boot select from external memory&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Jumpers for ISP/RUN mode&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Ethernet controller with CS8900A and RJ45 connector&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;LCD 16x2 DISPLAY with BACKLIGHT&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;2 BUTTONS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;POTENTIOMETER connected to AIN0&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;SPI connector&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;RS232 driver and connector&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;DALLAS i-BUTTON interface and connector&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;I2C 24LC515 EEPROM on board&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Two on board voltage regulators 1.8V and 3.3V with up to 800mA current .&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;The Communication Cable :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A serial communication cable.&lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTIdzMJ8nvEcghV9UeLPmXWgEOGr7JI6QICrvYLJ_yEK0cosTyu1B5r8kmMPh1X7wEV17azhqqiXPBLbMootgWaicfAAUZ0CopVV4oe6AycdFA9XTxcmTJ7gkWVbWIqTgit6ErbWUYIGm7/s1600/CAN-Cable.bmp&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 285px; height: 219px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTIdzMJ8nvEcghV9UeLPmXWgEOGr7JI6QICrvYLJ_yEK0cosTyu1B5r8kmMPh1X7wEV17azhqqiXPBLbMootgWaicfAAUZ0CopVV4oe6AycdFA9XTxcmTJ7gkWVbWIqTgit6ErbWUYIGm7/s320/CAN-Cable.bmp&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5672689201108145410&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span&gt;Picture courtesy of www.ebay.co.uk &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;The main features of the cable:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;USB Specification 1.1 and 2.0 compliant&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Supports RS-232 interface&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Supports over 1Mbits/s data transfer rate&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Buffer: 96 bytes for both upstream and downstream data flow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Supports remote wake up and power management&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Support automatic handshake protocol&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Supports Windows(98/Se/Me/2000/Xp/Vista)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Supports Mac OS9.0/OSX/Linux&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Creates a perfect solution for laptops that does not have serial port and     establishes a bridge between the serial devices to the computer USB port.     The cost for the cable was just £4.99 and well within the budget provided.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/2101192074187661643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/11/controller-area-networkcan-hardware.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2101192074187661643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2101192074187661643'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/11/controller-area-networkcan-hardware.html' title='Controller Area Network(CAN )  Hardware'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTK7SmBfNOWHqbMSxjzMi1CCWkvzBMetkmt7PnNB8AbrYmyPLHsUnGrO3K5r4gGV8FFVw7W7S8pzigsF2j4EAq4JoIuhgtRgYcCOu9dvegUPGyC1by1SbhuorkcWjFeXGjuTrr2wrnZV0-/s72-c/CAN-Hardware.JPG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-3693654126429011410</id><published>2011-11-08T09:53:00.000-08:00</published><updated>2011-11-08T10:02:18.836-08:00</updated><title type='text'>CAN-Controller Area Network -A Graphical User Interface</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Introducing CAN&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Controller Area Network (CAN) is the de-facto protocol for communication between embedded devices. It was developed by Bosch in 1983 and was designed originally to be used in automotive industry where many systems within a car need to be communicated with a central ECU.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;CAN or CAN-bus is a vehicle bus standard design to allow microcontrollers and devices to communicate within a vehicle without a host computer.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;CAN is a high integrity serial data communications bus for real time control applications. Operates at data rates up to 1Mbits/s over links up to approximately 40m.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;&quot; &gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Principle&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;A typical CAN message contains an ID (11 or 29 bits long) in the header and is followed by 8 bytes of data. There are other pieces of information in the message such as SOF (Start of Frame) and a 15 bit CRC.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;Data messages transmitted from any node of a CAN bus does not contain addresses of either of the transmitting node or any of the intended receiving mode. Instead, the content of the message (e.g. Revolutions per minute, etc.) is labeled by an identifier that is unique throughout the network. All other nodes on the network receive the message and each performs an acceptance test on the identifier to determine if the message, and thus its content, is relevant to that particular node.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;If the message is relevant, it will be processed; otherwise it is ignored. The unique identifier also determines the priority of the message. The lower the numerical value of the identifier, the higher the priority.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;In situations where two or more nodes attempt to transmit at the same time, a non-destructive arbitration technique guarantees that messages are sent in order of priority and no messages are lost.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;CAN will operate in extremely harsh environments and the extensive error checking mechanisms ensure that any transmission errors are detected.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;&quot; &gt;&lt;span style=&quot;font-size:130%;&quot;&gt;CAN Analyzer&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;A CAN Analyzer is an efficient and versatile tool for analysis of CAN-based networks. This development and service tool aids an engineer to observe record and analyze communication protocols on CAN bus at a logical level. The analyzer distinguishes itself by its programmability and ability to work with different hardware interfaces.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;A CAN tool specification &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Multi channel functionality&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Inter-window, time synchronous analysis of received data&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Graphic highlighting of altered data contents&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Communication with the CAN driver and the hardware is carried out centrally via a communication server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Analysis of functions are provided by separate function modules; customer-specific functions can be integrated using individual modules&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;•    Safe reception of CAN messages and time oriented buffering, even with high bus loads and baud rates.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-family:arial;&quot; &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/3693654126429011410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/11/can-controller-area-network-graphical.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3693654126429011410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3693654126429011410'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/11/can-controller-area-network-graphical.html' title='CAN-Controller Area Network -A Graphical User Interface'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-3136643266505399686</id><published>2011-06-02T08:56:00.001-07:00</published><updated>2011-11-03T10:03:45.479-07:00</updated><title type='text'>Google&amp;#39;s Android tops as others including BlackBerry and Nokia sink</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Google&#39;s Android devices have become  most popular smart phones in the US, said a Nielsen survey Tuesday, a  day when Nokia shares tanked more than 15 percent on weaker quarterly  outlook.&lt;br /&gt;&lt;br /&gt;The April survey of 65,000 users showed that 36  percent mobile consumers now use an Android device, compared to 26  percent who use Apple iPhones and 23 percent who use Blackberry.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;more&quot;&gt;&lt;/a&gt;If current mobile data usage is also any indicator, Google Android smart  phones are set to leave Apple iPhones way behind. Android smartphone  owners use an average of 582 MB of data each month, compared to 492 MB  for iPhone owners, said the survey.  Google&#39;s Android operating system  (OS) is also proving to be the most popular, according to the survey.&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;The Neilsen survey came yet another bad news for BlackBerry maker  Research In Motion (RIM) which was dragged down more than four percent  as Nokia shares tanked more than 15 percent in New York after the global  handset leader warned of lower sales in the second quarter.&lt;br /&gt;&lt;br /&gt;Jittery investors also abandoned RIM stock which closed at $41.35 - the  lowest levels not seen since 2006 - on the Toronto Stock Exchange.&lt;br /&gt;&lt;br /&gt;While RIM has lost more than 60 percent of its value since 2008, Nokia&#39;s  value has shrunk 43 percent since the last year.  At $7.02 Tuesday,  Nokia stock is at its 13-year low.&lt;br /&gt;&lt;br /&gt;&#39;Nokia&#39;s warning this morning is probably just the prelude to another  RIM warning that investors have learned to get used to,&#39;&#39; analyst Jon  Ogg told the Globe and Mail. &lt;br /&gt;He said merger was the only solution for RIM and Nokia.&lt;br /&gt;&lt;br /&gt;&#39;We do not like mergers but this may be the only shot for these  companies to stop the bleeding. Admittedly, this is a long-shot deal. A  RIM-Nokia merger might encounter too many problems before getting off  the ground. Still, what choices to these two companies have today?&#39; the  analysts said.&lt;br /&gt;RIM, whose current stock is a pale shadow of $150 seen in June 2008, is currently valued at about $23 billion.&lt;br /&gt;&lt;br /&gt;The presence of Microsoft CEO Steve Ballmer at RIM&#39;s BlackBerry World  annual conference of customers, developers and partners in Florida last  month fuelled speculation that the cash-rich software giant could soon  buy the BlackBerry company to make a mark in the smart phone market.   Microsoft, which is sitting on a $48-billion cash pile, has already  partnered RIM to adopt its Bing as the default search engine on  BlackBerry smart phones. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/3136643266505399686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/06/google-android-tops-as-others-including_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3136643266505399686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3136643266505399686'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/06/google-android-tops-as-others-including_02.html' title='Google&amp;#39;s Android tops as others including BlackBerry and Nokia sink'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-5964081064494885826</id><published>2011-04-28T03:09:00.000-07:00</published><updated>2011-11-05T10:48:42.035-07:00</updated><title type='text'>Code for Linked Lists</title><content type='html'>This is a C code for inserting elements in a linked list at its end, deleting elements from the end.&lt;br /&gt;&lt;br /&gt;This code is for the Linux environment written in the vi editor.&lt;br /&gt;&lt;br /&gt;Program :&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;cpp&quot;&gt;#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include&amp;lt;malloc.h&amp;gt;&lt;br /&gt;#include&amp;lt;stdlib.h&amp;gt;&lt;br /&gt;struct node{&lt;br /&gt;int data;&lt;br /&gt;struct node *link;&lt;br /&gt;}*start=NULL,*temp,*ptr;void display(){&lt;br /&gt;ptr=start;&lt;br /&gt;printf(&quot;Data in the list:\t&quot;);&lt;br /&gt;if(start==NULL)&lt;br /&gt;{&lt;br /&gt;printf(&quot;List empty&quot;);&lt;br /&gt;while(ptr!=NULL)&lt;br /&gt;{&lt;br /&gt;printf(&quot;%d\t&quot;,ptr-&amp;gt;data);&lt;br /&gt;ptr=ptr-&amp;gt;link;&lt;br /&gt;}&lt;br /&gt;}void insert_end(){&lt;br /&gt;temp=malloc(sizeof(struct node));&lt;br /&gt;printf(&quot;\nEnter data for node \n&quot;);&lt;br /&gt;scanf(&quot;%d&quot;,&amp;amp;temp-&amp;gt;data);&lt;br /&gt;if(start==NULL)&lt;br /&gt;{&lt;br /&gt;temp-&amp;gt;link=NULL;&lt;br /&gt;start=temp;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;ptr=start;&lt;br /&gt;while(ptr-&amp;gt;link!=NULL)&lt;br /&gt;{&lt;br /&gt;ptr=ptr-&amp;gt;link;&lt;br /&gt;}&lt;br /&gt;ptr-&amp;gt;link=temp;&lt;br /&gt;temp-&amp;gt;link=NULL;&lt;br /&gt;}&lt;br /&gt;display();&lt;br /&gt;}&lt;br /&gt;void delete_end(){&lt;br /&gt;if(start==NULL)&lt;br /&gt;{&lt;br /&gt;printf(&quot;No more nodes in the list&quot;);&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;if(start-&amp;gt;link==NULL)&lt;br /&gt;{&lt;br /&gt;free(start);&lt;br /&gt;start=NULL;&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;ptr=start;&lt;br /&gt;while(ptr-&amp;gt;link!=NULL)&lt;br /&gt;{&lt;br /&gt;temp=ptr;&lt;br /&gt;ptr=ptr-&amp;gt;link;&lt;br /&gt;}&lt;br /&gt;temp-&amp;gt;link=NULL;&lt;br /&gt;free(ptr);&lt;br /&gt;display();&lt;br /&gt;}&lt;br /&gt;int main(){&lt;br /&gt;int ch;&lt;br /&gt;while(1)&lt;br /&gt;{&lt;br /&gt;system(&quot;clear&quot;);&lt;br /&gt;printf(&quot;\n------Menu --------\n&quot;);&lt;br /&gt;printf(&quot;\n1.Insert at the end\n&quot;);&lt;br /&gt;printf(&quot;\n2.Delete from end\n&quot;);&lt;br /&gt;printf(&quot;\n3.Exit\n&quot;);&lt;br /&gt;printf(&quot;\nEnter choice\n&quot;);&lt;br /&gt;scanf(&quot;%d&quot;,&amp;amp;ch);&lt;br /&gt;switch(ch)&lt;br /&gt;{&lt;br /&gt;case 1:&lt;br /&gt;{&lt;br /&gt;insert_end();&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;case 2:&lt;br /&gt;{&lt;br /&gt;delete_end();&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;case 3:&lt;br /&gt;{&lt;br /&gt;exit(0);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/5964081064494885826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/04/code-for-linked-lists.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5964081064494885826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5964081064494885826'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/04/code-for-linked-lists.html' title='Code for Linked Lists'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-5811963113035821013</id><published>2011-04-12T11:17:00.000-07:00</published><updated>2011-04-12T23:50:44.698-07:00</updated><title type='text'>Linked Lists:</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;A linked list is a linear collection of data elements called nodes. The linear order is given by means of pointers. Each node is divided into two parts: the data part and the link part.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The data part contains the data that is to be stored and the link part contains the address of the next node in the list.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;﻿﻿﻿ &lt;/span&gt;&lt;/div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVibpUQmyBqph_F_OT9RaA7PSvybmQPOtmfjJrb9wruOAP8e_PbbZ3pph8rt-gA58Y-oP8T1sAW5E1-92uqcT0zl9YFp3vTp8vmDedyb7ceWVeHYQnemtCOntZRyzy-w1Vc11yavmK9Iw/s1600/ll.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;212&quot; r6=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVibpUQmyBqph_F_OT9RaA7PSvybmQPOtmfjJrb9wruOAP8e_PbbZ3pph8rt-gA58Y-oP8T1sAW5E1-92uqcT0zl9YFp3vTp8vmDedyb7ceWVeHYQnemtCOntZRyzy-w1Vc11yavmK9Iw/s400/ll.bmp&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;A linked list with four nodes.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The linked list also contains a list pointer variable called the Start pointer that contains the address of the first node in the list. We need this pointer in order to get the address of the linked list and to go through the list whenever required.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The end of the list is marked by a special pointer known as the NULL pointer. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;The Start and the Null pointer are very necessary in order to perform operations on the linked lists.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Representation of linked lists in memory:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 20 , Info[20] = W (The first character of the list)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link[20]= 29 , Info[29]= E&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link[29]= 31 , Info[31]= L&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link [31]= 35, Info[35]= C&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link[35]= 39 , Info[39]= O&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link[39]= 45, Info[45]= M&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; font-size: large; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Link[45]= 50 , Info[50]= E (The last character of the list)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;﻿﻿﻿﻿ &lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAozeHEBrY13NTf11AmDPcgp7ufzU41J4aw3EAPHW1XTyqc77rl3Xm554CBX2zCxISyKOVIbp_6I7pnbp9kjAxHiSO2OvTfA3EVh7qThRZKgXDm8KQwVUnK403Z1Yr6JDr6gtSwEvF43g/s1600/MEM_REP.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;350&quot; r6=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAozeHEBrY13NTf11AmDPcgp7ufzU41J4aw3EAPHW1XTyqc77rl3Xm554CBX2zCxISyKOVIbp_6I7pnbp9kjAxHiSO2OvTfA3EVh7qThRZKgXDm8KQwVUnK403Z1Yr6JDr6gtSwEvF43g/s400/MEM_REP.bmp&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Memory representation of linked lists&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;font-size: large;&quot;&gt;﻿﻿﻿﻿ &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;Need for use of linked lists:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;1.  The successive elements of linked lists do not need to occupy the  adjacent memory space in the memory unlike arrays as is shown in the  figure above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;2. Dynamic allocation of memory leaves us with an ease of&amp;nbsp; including more data into the list.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;3. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-size: large;&quot;&gt;.&lt;span style=&quot;line-height: 115%;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;Linked  lists allow insertion and removal of nodes at any point in the list,  and can do so with a constant number of operations if the link previous  to the link being added or removed is maintained during list traversal.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;,&#39;serif&#39;; line-height: 115%;&quot;&gt;Disadvantages of Linked lists:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;1. Linked lists do not allow &lt;/span&gt;random access&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;  to the data other than the first node&#39;s data, or any form of efficient  indexing. Many basic operations like obtaining the last node of the list  or finding a node that contains a given datum, or locating the place  where a new node should be inserted may require scanning most or all of  the list elements.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 10pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: large;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/5811963113035821013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/04/linked-lists.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5811963113035821013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5811963113035821013'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/04/linked-lists.html' title='Linked Lists:'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVibpUQmyBqph_F_OT9RaA7PSvybmQPOtmfjJrb9wruOAP8e_PbbZ3pph8rt-gA58Y-oP8T1sAW5E1-92uqcT0zl9YFp3vTp8vmDedyb7ceWVeHYQnemtCOntZRyzy-w1Vc11yavmK9Iw/s72-c/ll.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-7528060424681754837</id><published>2011-04-12T06:15:00.001-07:00</published><updated>2011-11-02T22:14:26.061-07:00</updated><title type='text'>Nokia facing software problems!!!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAyE2BZ3PEbPEfFxMpNX8y1gyYUVNljWT-si4EMt9Xb1jF9MWPrBKuWdC0Qso-P9qmrutHIB_nk0Bv8RT-Hd4E5Ul3anE6m2oYBW2Njy2xncO_1NBTJAHbP2AtMx-EemBCAs3y5gX0k_xB/s1600/nokia-logo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAyE2BZ3PEbPEfFxMpNX8y1gyYUVNljWT-si4EMt9Xb1jF9MWPrBKuWdC0Qso-P9qmrutHIB_nk0Bv8RT-Hd4E5Ul3anE6m2oYBW2Njy2xncO_1NBTJAHbP2AtMx-EemBCAs3y5gX0k_xB/s320/nokia-logo.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A critical issue has been noticed recently with Nokia handsets including its latest N8. The problem leads to text message delivery failure and software slow down. This is not only the case that Nokia is facing with its current market share dropped to 30% its getting difficult for Nokia to survive. I am personally a Nokia lover every cell phone that I have till date is Nokia, now it’s getting me to think over it.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFn8WTaQJyKelb3dkC_IpTF2I-P4rlvlTxR_vfrGP_nW_RW7PAr8v_xdZ2GkNxzgwANG_izbL2r5cLtiIlvzrd6aabU9AqK-GxB8oHofHniH_ZEyEUbDeF9wMDugekVJUXG0vmWnXwlG9d/s1600/Nokia-N8-10.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFn8WTaQJyKelb3dkC_IpTF2I-P4rlvlTxR_vfrGP_nW_RW7PAr8v_xdZ2GkNxzgwANG_izbL2r5cLtiIlvzrd6aabU9AqK-GxB8oHofHniH_ZEyEUbDeF9wMDugekVJUXG0vmWnXwlG9d/s320/Nokia-N8-10.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The problem that N8 faces is with the text message delivery. N8 fails to deliver text message. The problem can be solved by flashing or formatting.&amp;nbsp; I formatted my Nokia N8 twice still after a day or two it gets into the same problem.&amp;nbsp; According to Nokia Care the problem is with the software. Nokia should get a quick remedy for this. &lt;br /&gt;&lt;br /&gt;The problem not only persists for N8 other handsets like N79 N73 E63 are too into it. I would suggest you to quickly upgrade the software. You can do that with Nokia Software Updater online. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/7528060424681754837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/04/nokia-facing-software-problems_12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/7528060424681754837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/7528060424681754837'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/04/nokia-facing-software-problems_12.html' title='Nokia facing software problems!!!'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAyE2BZ3PEbPEfFxMpNX8y1gyYUVNljWT-si4EMt9Xb1jF9MWPrBKuWdC0Qso-P9qmrutHIB_nk0Bv8RT-Hd4E5Ul3anE6m2oYBW2Njy2xncO_1NBTJAHbP2AtMx-EemBCAs3y5gX0k_xB/s72-c/nokia-logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-2892280059338751432</id><published>2011-04-01T03:26:00.001-07:00</published><updated>2011-11-02T22:14:26.073-07:00</updated><title type='text'>Google Makes April FOOL!!!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;intro&quot;&gt;&lt;h1&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Google Motion BETA &lt;/span&gt;&lt;/h1&gt;&lt;h1&gt;&lt;span style=&quot;font-size: small;&quot;&gt;             A new way to communicate           &lt;/span&gt;&lt;/h1&gt;&lt;span style=&quot;font-size: small;&quot;&gt;             The mouse and keyboard were invented before the Internet even existed. Since then,             countless technological advancements have allowed for much more efficient human             computer interaction. Why then do we continue to use outdated technology? Introducing             Gmail Motion -- now you can control Gmail with your body.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_VhtEfs3h9H7qpUnIwMS5VS06s4CFCSkN9M_Tf5RH8Bej-9Q_oJqZrDHVle6AKbWSQb-sN0RSuXb9lNkQLywjqlnxxRdIC2PePhHagH3YLHm44cBHDgWii-VBGib8tUBPosyWBwwL_bV4/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_VhtEfs3h9H7qpUnIwMS5VS06s4CFCSkN9M_Tf5RH8Bej-9Q_oJqZrDHVle6AKbWSQb-sN0RSuXb9lNkQLywjqlnxxRdIC2PePhHagH3YLHm44cBHDgWii-VBGib8tUBPosyWBwwL_bV4/s400/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Click on Try Gmail Motion&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQB1JKKPEJrerYch7f77Yn1xerARVEYfl-gGzqtGd6_F6aTIaikQ35aNI3Ck4FCZ8KS9Cn6DqA9DyZU3XUrL01iPkzBMQ439kK1yWtlATgwvkG0ENI53v0yXguwcz307vZG1JqeGc2MARX/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQB1JKKPEJrerYch7f77Yn1xerARVEYfl-gGzqtGd6_F6aTIaikQ35aNI3Ck4FCZ8KS9Cn6DqA9DyZU3XUrL01iPkzBMQ439kK1yWtlATgwvkG0ENI53v0yXguwcz307vZG1JqeGc2MARX/s400/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It shows loading... you wait and then...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglSXHwQi5HvdC69I2WuoiywQ_OPzwY3GkjtJFkK_kefIzkgABuZ-x5UN-LwLZdrtkXQjfM04QnPDFDEi5Q4qr1FqoQH1ROzDl2QARoOCSf3419v-z1jpjhnuAlyC58V3wPCVbulJG2rNcY/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglSXHwQi5HvdC69I2WuoiywQ_OPzwY3GkjtJFkK_kefIzkgABuZ-x5UN-LwLZdrtkXQjfM04QnPDFDEi5Q4qr1FqoQH1ROzDl2QARoOCSf3419v-z1jpjhnuAlyC58V3wPCVbulJG2rNcY/s400/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;That&#39;s right....APRIL FOOL!!!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/2892280059338751432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/04/google-makes-april-fool_01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2892280059338751432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2892280059338751432'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/04/google-makes-april-fool_01.html' title='Google Makes April FOOL!!!'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_VhtEfs3h9H7qpUnIwMS5VS06s4CFCSkN9M_Tf5RH8Bej-9Q_oJqZrDHVle6AKbWSQb-sN0RSuXb9lNkQLywjqlnxxRdIC2PePhHagH3YLHm44cBHDgWii-VBGib8tUBPosyWBwwL_bV4/s72-c/3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-5322752720043594956</id><published>2011-03-31T03:23:00.001-07:00</published><updated>2011-11-05T12:11:32.631-07:00</updated><title type='text'>Reading Images Using C++</title><content type='html'>&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;This had been a long way to perform Image processing using C++. In C++, it is not possible to even read an image without some libraries. The  library for this is OpenCv.OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. In your C++ code , you need to include cv.h and highgui.h libraries. Here is the code for reading an image. Once reading is accomplished you can  modify the code to do other image manipulations to your image. This is just the basic code:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;cpp&quot;&gt;&lt;br /&gt;#include&amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;br /&gt;#include&amp;lt;cv.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include&amp;lt;highgui.h&amp;gt;&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;int main(int argc,char **argv)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IplImage *img = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char *data;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i,j,k;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; img=cvLoadImage(argv[1],-1);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!img)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;&amp;quot;Cannot Open File&amp;quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Extracting the data members */&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int height&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;height;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;width;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int channels&amp;nbsp; = img-&amp;gt;nChannels;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp; step&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;widthStep;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int depth&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;depth;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (unsigned char *)img-&amp;gt;imageData;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // creating the image pixels&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0;i&amp;lt;height;i++) for(j=0;j&amp;lt;width;j++) for(k=0;k&amp;lt;channels;k++)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[i*step+j*channels+k]=data[i*step+j*channels+k];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // defining the new image structure&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IplImage * new_img=cvCreateImage(cvSize(width,height),depth,channels);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_img-&amp;gt;imageData=(char*)data;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvNamedWindow(&amp;quot;Original Image&amp;quot;, CV_WINDOW_AUTOSIZE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvMoveWindow(&amp;quot;Original Image&amp;quot;, 100, 100);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvShowImage(&amp;quot;Original Image&amp;quot;, img);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvNamedWindow(&amp;quot;Image Read&amp;quot;, CV_WINDOW_AUTOSIZE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvMoveWindow(&amp;quot;Image Read&amp;quot;, 550, 100);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvShowImage(&amp;quot;Image Read&amp;quot;, new_img);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvWaitKey(0);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvDestroyWindow(&amp;quot;Image Read&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cvDestroyWindow(&amp;quot;Original Image&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;IplImage is a structure in OpenCv with the following data members :&lt;/span&gt;&lt;div  style=&quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;font-family:&amp;quot;;&quot;&gt;&lt;pre  style=&quot;Courier New&amp;quot;,Courier,monospace;font-family:&amp;quot;;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:small;&quot;&gt;|-- int  nChannels;     // Number of color channels (1,2,3,4)&lt;br /&gt;|-- int  depth;         // Pixel depth in bits:&lt;br /&gt;|                       //   IPL_DEPTH_8U, IPL_DEPTH_8S,&lt;br /&gt;|                       //   IPL_DEPTH_16U,IPL_DEPTH_16S,&lt;br /&gt;|                       //   IPL_DEPTH_32S,IPL_DEPTH_32F,&lt;br /&gt;|                       //   IPL_DEPTH_64F&lt;br /&gt;|-- int  width;         // image width in pixels&lt;br /&gt;|-- int  height;        // image height in pixels&lt;br /&gt;|-- char* imageData;    // pointer to aligned image data&lt;br /&gt;|                       // Note that color images are stored in BGR order&lt;br /&gt;|-- int  dataOrder;     // 0 - interleaved color channels,&lt;br /&gt;PL image:&lt;br /&gt;|                       // 1 - separate color channels&lt;br /&gt;|                       // cvCreateImage can only create interleaved images&lt;br /&gt;|-- int  origin;        // 0 - top-left origin,&lt;br /&gt;|                       // 1 - bottom-left origin (Windows bitmaps style)&lt;br /&gt;|-- int  widthStep;     // size of aligned image row in bytes&lt;br /&gt;|-- int  imageSize;     // image data size in bytes = height*widthStep&lt;br /&gt;|-- struct _IplROI *roi;// image ROI. when not NULL specifies image&lt;br /&gt;|                       // region  to be processed.&lt;br /&gt;|-- char *imageDataOrigin; // pointer to the unaligned origin of image data&lt;br /&gt;|                          // (needed for correct image deallocation)&lt;br /&gt;|&lt;br /&gt;|-- int  align;         // Alignment of image rows: 4 or 8 byte alignment&lt;br /&gt;|                       // OpenCV ignores this and uses widthStep instead&lt;br /&gt;|-- char colorModel[4]; // Color model - ignored by OpenCV &lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre  style=&quot;Courier New&amp;quot;,Courier,monospace;font-family:&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;cvCreateImage creates an image of width/height , using bit depth to represent the colour values, and with colour channels.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;The depth is represented as&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;IPL_DEPTH_&lt;/span&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;{U|S|F} where U, S and F stand for unsigned,signed and floating point. i.e.&lt;br /&gt;&lt;br /&gt;IPL_DEPTH_8U&lt;br /&gt;IPL_DEPTH_8S&lt;br /&gt;IPL_DEPTH_16U&lt;br /&gt;IPL_DEPTH_16S&lt;br /&gt;IPL_DEPTH_32S&lt;br /&gt;IPL_DEPTH_32F&lt;br /&gt;IPL_DEPTH_64F&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To compile this program ,you need to include some libraries as shown:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiLNLxQC0BAoafqItvaUb5oo8L0Hwc095UW5uu07I4Y0U5JCoEUN4UOJqb0N0s4liMIP2BG9O5RQrEkxxesqtzFDMZsn2zBn-EHQSyqYFRzyFbTUp7I_4TcoH9UJ9ZNKfLk_14yXf15w/s640/Screenshot-1.png&quot; border=&quot;0&quot; height=&quot;25&quot; width=&quot;640&quot; /&gt;&lt;br /&gt;&lt;/bits&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;Opencv flags&lt;/bits&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/bits&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;The output of the above program is here :&lt;br /&gt;&lt;br /&gt;&lt;/bits&gt;&lt;/span&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieEF2Wy9ES_XhxtWhxDtq9eg_I8UmaObhCEbDDES4HraPiTPMpRsyJf4V-s0ZmsNF2r0_YQ0hwpU03iNEULPMbc8a7VGjdyk0eL8EsHh0tBTBRdi6DVEYoB3oo_3PPIqC_BZ4WIqQiVXY/s400/Screenshot.png&quot; border=&quot;0&quot; height=&quot;250&quot; width=&quot;400&quot; /&gt;&lt;/bits&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;bits style=&quot;color: rgb(0, 0, 0);&quot;&gt;Reading image in C++&lt;/bits&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/5322752720043594956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/reading-images-using-c.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5322752720043594956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5322752720043594956'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/reading-images-using-c.html' title='Reading Images Using C++'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiLNLxQC0BAoafqItvaUb5oo8L0Hwc095UW5uu07I4Y0U5JCoEUN4UOJqb0N0s4liMIP2BG9O5RQrEkxxesqtzFDMZsn2zBn-EHQSyqYFRzyFbTUp7I_4TcoH9UJ9ZNKfLk_14yXf15w/s72-c/Screenshot-1.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-1609059083155769221</id><published>2011-03-31T02:15:00.000-07:00</published><updated>2011-03-31T02:19:53.816-07:00</updated><title type='text'>Add multiple logos in LaTex</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Now we can easily add multiple logos in any Tex file. The following code is to be included before your document block, if you want to include the logos throughout your document. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: #b4a7d6; font-family: Arial,Helvetica,sans-serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;\logo{\includegraphics[height=1cm]{i2.png} &lt;br /&gt;
&amp;nbsp; \hspace{4.2 in} &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; \includegraphics[height=1cm]{i3.png}}&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If not, then you can write this code with logos of your choice wherever you want to include them or from where you want the particular logos to be!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;For this you need to&amp;nbsp; add the&lt;span style=&quot;color: #b4a7d6;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;color: #b4a7d6;&quot;&gt;graphicx&lt;/b&gt; package by means of putting the command &lt;span style=&quot;color: #b4a7d6;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;color: #b4a7d6;&quot;&gt;\usepackage{graphicx}&lt;/b&gt;&amp;nbsp; near the top of the LaTeX file, just after the&lt;span style=&quot;color: #b4a7d6;&quot;&gt; &lt;/span&gt;&lt;b style=&quot;color: #b4a7d6;&quot;&gt;documentclass&lt;/b&gt; command.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The &lt;span style=&quot;color: #b4a7d6; font-size: large;&quot;&gt;&lt;code&gt;\hspace&lt;/code&gt;&lt;/span&gt; command adds horizontal space.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: #b4a7d6; font-family: Arial,Helvetica,sans-serif; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;code&gt;\hspace[*]{length}&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; The length of the space can be expressed in any terms that LaTeX understands, i.e., points, inches, etc.  You can add negative as well as positive space with an &lt;span style=&quot;font-size: large;&quot;&gt;&lt;code style=&quot;color: #b4a7d6;&quot;&gt;\hspace&lt;/code&gt;&lt;/span&gt; command.  Adding negative space is like backspacing.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; LaTeX removes horizontal space that comes at the end of a line.  If you don&#39;t want LaTeX to remove this space, include the optional &lt;code&gt;*&lt;/code&gt; argument.  Then the space is never removed.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The output pdf file looks like this :&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTRi2fZFHNcGH0EkGhP1ZXNp5Ll-3TMBVvRP9AuXfWgqTl0silQxksLo3iidDvcv7GbwQx5u0-hrvxUJWI7YIt-fy_nsLG5PpMrk0-2TDkjKvTBebnfmFCMxokZTGMOnb3Ms4nbMQAtYQ/s1600/ad.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTRi2fZFHNcGH0EkGhP1ZXNp5Ll-3TMBVvRP9AuXfWgqTl0silQxksLo3iidDvcv7GbwQx5u0-hrvxUJWI7YIt-fy_nsLG5PpMrk0-2TDkjKvTBebnfmFCMxokZTGMOnb3Ms4nbMQAtYQ/s400/ad.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Add Logos in Latex.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/1609059083155769221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/add-multiple-logos-in-latex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/1609059083155769221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/1609059083155769221'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/add-multiple-logos-in-latex.html' title='Add multiple logos in LaTex'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTRi2fZFHNcGH0EkGhP1ZXNp5Ll-3TMBVvRP9AuXfWgqTl0silQxksLo3iidDvcv7GbwQx5u0-hrvxUJWI7YIt-fy_nsLG5PpMrk0-2TDkjKvTBebnfmFCMxokZTGMOnb3Ms4nbMQAtYQ/s72-c/ad.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-907720928008340409</id><published>2011-03-29T08:59:00.002-07:00</published><updated>2011-11-02T22:18:49.122-07:00</updated><title type='text'>Get FREE Live Cricket Match Scores</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Get FREE!!! Live cricket match scores in mobile phone. &lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;No premium charges!   &lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;No dataplan!   &lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;No internet! &lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Just nominal rate for messages charged by your mobile service provider.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;u&gt;&lt;b&gt;How it works:&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;1. SMS: @cricbuzz to 92433-42000&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNgINf3WVOR2Vn4O4_79YGgmu8AlOjiEivgYP4rYnGl10rS1aB8EWtM6r9fpcoMRwaC6tCnoCO_Ea44GQN7euX6HrmFFqlf0tTYvDWgsabHUhz7QBfTyBzcuvpeAj7hvMF-h-ccHDO4j5H/s1600/1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;103&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNgINf3WVOR2Vn4O4_79YGgmu8AlOjiEivgYP4rYnGl10rS1aB8EWtM6r9fpcoMRwaC6tCnoCO_Ea44GQN7euX6HrmFFqlf0tTYvDWgsabHUhz7QBfTyBzcuvpeAj7hvMF-h-ccHDO4j5H/s320/1.PNG&quot; width=&quot;108&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;2. Receive live cricket scores&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdEny4k5hS2ZG5RHoagZf9lXJmKDRQmNfMZaqdQfcoy6UhEd7Gl0iepAiiL8ohw4CcHBeWjOitCgnyRD9gsZ-LKoNGDOSI3-EazVgt3RwUfTpkv7fbpCrNejWfbSIp28u3GdzH-lgQWlM/s1600/2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdEny4k5hS2ZG5RHoagZf9lXJmKDRQmNfMZaqdQfcoy6UhEd7Gl0iepAiiL8ohw4CcHBeWjOitCgnyRD9gsZ-LKoNGDOSI3-EazVgt3RwUfTpkv7fbpCrNejWfbSIp28u3GdzH-lgQWlM/s1600/2.PNG&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/907720928008340409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/get-free-live-cricket-match-scores_6811.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/907720928008340409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/907720928008340409'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/get-free-live-cricket-match-scores_6811.html' title='Get FREE Live Cricket Match Scores'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNgINf3WVOR2Vn4O4_79YGgmu8AlOjiEivgYP4rYnGl10rS1aB8EWtM6r9fpcoMRwaC6tCnoCO_Ea44GQN7euX6HrmFFqlf0tTYvDWgsabHUhz7QBfTyBzcuvpeAj7hvMF-h-ccHDO4j5H/s72-c/1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-8229360640439111843</id><published>2011-03-29T01:16:00.002-07:00</published><updated>2011-11-05T12:10:25.930-07:00</updated><title type='text'>Code in 26 Different Languages</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;h3 id=&quot;C&quot;&gt;Coding in 26 Different languages!!! &lt;/h3&gt;&lt;h3 id=&quot;C&quot;&gt;C++&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;char c, d=10;&lt;br /&gt;while(std::cin.get(c) &amp;amp;&amp;amp; (c!=&#39;2&#39; || d!=&#39;4&#39;) &amp;amp;&amp;amp; std::cout.put(d))&lt;br /&gt;d=c;&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3 id=&quot;C-1&quot;&gt;C&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;int x;&lt;br /&gt;for(; scanf(&quot;%d&quot;,&amp;amp;x) &amp;gt; 0 &amp;amp;&amp;amp; x != 42; printf(&quot;%d\n&quot;, x));&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Pascal&quot;&gt;Pascal&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;program test;&lt;br /&gt;var x: integer;&lt;br /&gt;begin&lt;br /&gt;repeat&lt;br /&gt;readln(x);&lt;br /&gt;if x&amp;lt;&amp;gt;42 then writeln(x);&lt;br /&gt;until x=42&lt;br /&gt;end.&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;more&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3 id=&quot;Java&quot;&gt;Java&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;public class Main&lt;br /&gt;{&lt;br /&gt;public static void main (String[] args) throws java.lang.Exception&lt;br /&gt;{&lt;br /&gt;java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));&lt;br /&gt;String s;&lt;br /&gt;while (!(s=r.readLine()).startsWith(&quot;42&quot;)) System.out.println(s);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Nice&quot;&gt;Nice&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;void main (String[] args)&lt;br /&gt;{&lt;br /&gt;java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));&lt;br /&gt;String s;&lt;br /&gt;while (!(s=notNull(r.readLine())).startsWith(&quot;42&quot;)) System.out.println(s);&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Python&quot;&gt;Python&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;k=raw_input()&lt;br /&gt;while int(k)!=42:&lt;br /&gt;print k&lt;br /&gt;k=raw_input()&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Lisp&quot;&gt;Lisp&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;(loop for l = (read-line)&lt;br /&gt;for n = (parse-integer l)&lt;br /&gt;until (= n 42) do (format t &quot;~D~%&quot; n))&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Scheme&quot;&gt;Scheme&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;(do ((i (read) (read)))&lt;br /&gt;((eq? i 42) &#39;())&lt;br /&gt;(begin&lt;br /&gt;(display i)&lt;br /&gt;(newline)))&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;OCaml&quot;&gt;OCaml&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;while true do&lt;br /&gt;let n = read_int () in&lt;br /&gt;if n=42 then exit 0 else print_int n; print_newline ()&lt;br /&gt;done&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Haskell&quot;&gt;Haskell&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;main = interact f&lt;br /&gt;where f = unlines . takeWhile (/=&quot;42&quot;) . words&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Clips&quot;&gt;Clips&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;(defrule readin&lt;br /&gt;?f&amp;lt;-(initial-fact)&lt;br /&gt;=&amp;gt;&lt;br /&gt;(retract ?f)&lt;br /&gt;(assert (number (read)))&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;(defrule writeout&lt;br /&gt;?f&amp;lt;-(number ?n)(test (&amp;lt;&amp;gt; ?n 42))&lt;br /&gt;=&amp;gt;&lt;br /&gt;(retract ?f)&lt;br /&gt;(printout t ?n crlf)&lt;br /&gt;(assert (initial-fact))&lt;br /&gt;)&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Prolog&quot;&gt;Prolog&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;program :- get_char(X),get_char(Y),check(X,Y).&lt;br /&gt;check(&#39;4&#39;,&#39;2&#39;):-!.&lt;br /&gt;check(X,Y):-write(X),get_char(Z),check(Y,Z).&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;C-2&quot;&gt;C#&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;public class Test&lt;br /&gt;{&lt;br /&gt;public static void Main()&lt;br /&gt;{&lt;br /&gt;int n;&lt;br /&gt;while ((n = int.Parse(Console.ReadLine()))!=42)&lt;br /&gt;Console.WriteLine(n);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Brainfck&quot;&gt;Brainf*ck&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;+[&amp;gt;&amp;gt;----------&lt;br /&gt;[++++++++++&amp;lt;,----------]&lt;br /&gt;&amp;gt;--------------------------------------------------&lt;br /&gt;&amp;gt;----------------------------------------------------&lt;br /&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;[&lt;br /&gt;&amp;lt;+++++++++++++++++++++++++++++++++++++++++++++++ ++ +++&lt;br /&gt;&amp;lt;+++++++++++++++++++++++++++++++++++++++++++++++ ++ +&lt;br /&gt;[&amp;gt;]&amp;lt;&lt;br /&gt;[.&amp;lt;]++++++++++.----------&amp;gt;&lt;br /&gt;[&amp;gt;]&amp;gt;&amp;gt;&lt;br /&gt;]&amp;lt;&lt;br /&gt;&lt;br /&gt;[++++++++++++++++++++++++++++++++++++++++++++++++++ ++&lt;br /&gt;&amp;lt;+++++++++++++++++++++++++++++++++++++++++++++++ ++ +&lt;br /&gt;[&amp;gt;]&amp;lt;&lt;br /&gt;[.&amp;lt;]++++++++++.----------&amp;gt;&lt;br /&gt;[&amp;gt;]&amp;gt;&lt;br /&gt;]&amp;lt;&lt;br /&gt;&lt;br /&gt;[&amp;gt;+++++++++++++++++++++++++++++++++++++++++++++++ ++ +++&lt;br /&gt;&amp;lt;+++++++++++++++++++++++++++++++++++++++++++++++ ++ +&lt;br /&gt;[&amp;gt;]&amp;lt;&lt;br /&gt;[.&amp;lt;]++++++++++.----------&amp;gt;&lt;br /&gt;[&amp;gt;]&lt;br /&gt;]&amp;lt;&lt;br /&gt;&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;Perl&quot;&gt;Perl&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;print while($_=&amp;lt;&amp;gt;)!=42&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Ruby&quot;&gt;Ruby&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;print while gets != &quot;42\n&quot;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Pike&quot;&gt;Pike&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;while (sscanf(Stdio.stdin-&amp;gt;gets(), &quot;%d&quot;, int n), n!=42 &amp;amp;&amp;amp; write(n+&quot;\n&quot;));&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;PHP&quot;&gt;PHP&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;while (true) {&lt;br /&gt;$input = fgets(STDIN, 3);&lt;br /&gt;if ($input == 42) {&lt;br /&gt;break;&lt;br /&gt;} else {&lt;br /&gt;echo $input;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Intercal&quot;&gt;Intercal&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;PLEASE DO ,1 &amp;lt;- #1&lt;br /&gt;PLEASE DO .4 &amp;lt;- #0&lt;br /&gt;PLEASE DO .5 &amp;lt;- #0&lt;br /&gt;PLEASE DO .99 &amp;lt;- #0&lt;br /&gt;DO COME FROM (30)&lt;br /&gt;DO COME FROM (31)&lt;br /&gt;DO WRITE IN ,1&lt;br /&gt;DO .1 &amp;lt;- ,1SUB#1&lt;br /&gt;DO .2 &amp;lt;- .4&lt;br /&gt;DO (1000) NEXT&lt;br /&gt;DO .4 &amp;lt;- .3~#255&lt;br /&gt;DO (10) NEXT&lt;br /&gt;(42) DO .1 &amp;lt;- .1&lt;br /&gt;(20) DO .42 &amp;lt;- &quot;&amp;amp;&#39;&amp;amp;.4~#26&#39;$#1&quot;&lt;br /&gt;PLEASE RESUME &quot;?.42$#1&quot;~#3&lt;br /&gt;(10) DO (20) NEXT&lt;br /&gt;DO FORGET #1&lt;br /&gt;PLEASE COME FROM (42)&lt;br /&gt;PLEASE STASH .1+.2+.3&lt;br /&gt;DO .1 &amp;lt;- .4&lt;br /&gt;DO .2 &amp;lt;- #50&lt;br /&gt;DO (1010) NEXT&lt;br /&gt;DO (100) NEXT&lt;br /&gt;PLEASE STASH .1+.2+.3&lt;br /&gt;DO .1 &amp;lt;- .99&lt;br /&gt;DO .2 &amp;lt;- #52&lt;br /&gt;DO (1010) NEXT&lt;br /&gt;DO (101) NEXT&lt;br /&gt;PLEASE GIVE UP&lt;br /&gt;(201) DO .3 &amp;lt;- &#39;.3~.3&#39;~#1&lt;br /&gt;PLEASE RESUME &quot;?.3$#2&quot;~#3&lt;br /&gt;(101) DO (201) NEXT&lt;br /&gt;DO FORGET #1&lt;br /&gt;(32) PLEASE RETRIEVE .1+.2+.3&lt;br /&gt;(200) DO .3 &amp;lt;- &#39;.3~.3&#39;~#1&lt;br /&gt;PLEASE RESUME &quot;?.3$#2&quot;~#3&lt;br /&gt;(100) DO (200) NEXT&lt;br /&gt;DO FORGET #1&lt;br /&gt;DO COME FROM (32)&lt;br /&gt;PLEASE RETRIEVE .1+.2+.3&lt;br /&gt;DO (102) NEXT&lt;br /&gt;(31) DO .99 &amp;lt;- .4&lt;br /&gt;(202) DO .98 &amp;lt;- &#39;.99~.99&#39;~#1&lt;br /&gt;PLEASE RESUME &quot;?.98$#2&quot;~#3&lt;br /&gt;(102) DO (202) NEXT&lt;br /&gt;DO FORGET #1&lt;br /&gt;DO .3 &amp;lt;- !99~#15&#39;$!99~#240&#39;&lt;br /&gt;DO .3 &amp;lt;- !3~#15&#39;$!3~#240&#39;&lt;br /&gt;DO .2 &amp;lt;- !3~#15&#39;$!3~#240&#39;&lt;br /&gt;DO .1 &amp;lt;- .5&lt;br /&gt;DO (1010) NEXT&lt;br /&gt;DO .5 &amp;lt;- .2&lt;br /&gt;DO ,1SUB#1 &amp;lt;- .3&lt;br /&gt;PLEASE READ OUT ,1&lt;br /&gt;(30) DO .99 &amp;lt;- .4&lt;br /&gt;[/code]&lt;br /&gt;&lt;h3 id=&quot;NASM&quot;&gt;NASM&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;global _start&lt;br /&gt;section .data&lt;br /&gt;buffer dw 0h&lt;br /&gt;section .text&lt;br /&gt;_start:&lt;br /&gt;mov ecx, buffer&lt;br /&gt;mov edx, 02h&lt;br /&gt;call read&lt;br /&gt;mov cx, word [buffer]&lt;br /&gt;cmp cx, 3234h&lt;br /&gt;je exit&lt;br /&gt;cmp ch, 0ah&lt;br /&gt;je one_dig&lt;br /&gt;jmp two_dig&lt;br /&gt;one_dig:&lt;br /&gt;mov ecx, buffer&lt;br /&gt;mov edx, 02h&lt;br /&gt;call write&lt;br /&gt;jmp _start&lt;br /&gt;two_dig:&lt;br /&gt;mov ecx, buffer&lt;br /&gt;mov edx, 02h&lt;br /&gt;call write&lt;br /&gt;mov edx, 01h&lt;br /&gt;mov ecx, buffer&lt;br /&gt;call read ; read the 0ah&lt;br /&gt;mov ecx, buffer&lt;br /&gt;call write ; write the 0ah&lt;br /&gt;jmp _start&lt;br /&gt;exit:&lt;br /&gt;mov eax, 01h ; exit()&lt;br /&gt;xor ebx, ebx ; errno&lt;br /&gt;int 80h&lt;br /&gt;read:&lt;br /&gt;mov eax, 03h ; read()&lt;br /&gt;mov ebx, 00h ; stdin&lt;br /&gt;int 80h&lt;br /&gt;ret&lt;br /&gt;write:&lt;br /&gt;mov eax, 04h ; write()&lt;br /&gt;mov ebx, 01h ; stdout&lt;br /&gt;int 80h&lt;br /&gt;ret&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Ada95&quot;&gt;Ada95&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;with Ada.Text_IO; use Ada.Text_IO;&lt;br /&gt;with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;&lt;br /&gt;&lt;br /&gt;procedure test is&lt;br /&gt;x : integer;&lt;br /&gt;begin&lt;br /&gt;loop&lt;br /&gt;get(x);&lt;br /&gt;if x/=42&lt;br /&gt;then&lt;br /&gt;put(x);&lt;br /&gt;new_line(1);&lt;br /&gt;else&lt;br /&gt;exit;&lt;br /&gt;end if;&lt;br /&gt;end loop;&lt;br /&gt;end test;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Bash&quot;&gt;Bash&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;while read a; do&lt;br /&gt;if [ $a -eq 42 ]; then&lt;br /&gt;exit&lt;br /&gt;else&lt;br /&gt;echo $a&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Smalltalk&quot;&gt;Smalltalk&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;|c number|&lt;br /&gt;[&lt;br /&gt;number:=0.&lt;br /&gt;[ (c := stdin next) asciiValue ~= 10 ]&lt;br /&gt;whileTrue:&lt;br /&gt;[number := (number * 10) + (c asciiValue) - 48.].&lt;br /&gt;number ~= 42&lt;br /&gt;]&lt;br /&gt;whileTrue:&lt;br /&gt;[Transcript show: number printString; cr.]&lt;br /&gt;!&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Fortran&quot;&gt;Fortran&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;program TEST&lt;br /&gt;integer ans&lt;br /&gt;do&lt;br /&gt;read (*,*) ans&lt;br /&gt;if (ans.eq.42) stop&lt;br /&gt;write (*,*) ans&lt;br /&gt;enddo&lt;br /&gt;stop&lt;br /&gt;end&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Icon&quot;&gt;Icon&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;&lt;br /&gt;procedure main ()&lt;br /&gt;while (l := read()) ~= 42 do&lt;br /&gt;write(l);&lt;br /&gt;end&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;h3 id=&quot;Erlang&quot;&gt;Erlang&lt;/h3&gt;&lt;hr /&gt;[code]&lt;br /&gt;-module(tested).&lt;br /&gt;-export([main/0]).&lt;br /&gt;&lt;br /&gt;main() -&amp;gt;&lt;br /&gt;loop().&lt;br /&gt;loop() -&amp;gt;&lt;br /&gt;case io:fread( &quot;&quot;,&quot;~d&quot; ) of&lt;br /&gt;eof -&amp;gt;&lt;br /&gt;true;&lt;br /&gt;{ok, X} -&amp;gt;&lt;br /&gt;[Y] = X,&lt;br /&gt;if&lt;br /&gt;Y == 42 -&amp;gt;&lt;br /&gt;true;&lt;br /&gt;true -&amp;gt;&lt;br /&gt;io:fwrite( &quot;~B\n&quot;,X ),&lt;br /&gt;loop()&lt;br /&gt;end&lt;br /&gt;end.&lt;br /&gt;[/code]&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/8229360640439111843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/code-in-26-different-languages_3696.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/8229360640439111843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/8229360640439111843'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/code-in-26-different-languages_3696.html' title='Code in 26 Different Languages'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-1673196572876322821</id><published>2011-03-28T23:20:00.000-07:00</published><updated>2011-03-28T23:54:41.130-07:00</updated><title type='text'>Image Processing using GNURadio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Image processing is any form of signal processing for which the input  is an image, such as a photograph; the output of image processing may  be either an image or, a set of characteristics or parameters related to  the image. Most image-processing techniques involve treating the image  as a two-dimensional signal and applying standard signal-processing  techniques to it. To equip GNURadio with Image Processing capability  OpenCV is used.   &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;OpenCV (Open Source Computer Vision Library) is a library of  programming functions mainly aimed at real time computer vision,  developed by Intel and now supported by Willow Garage. It is free for  use under the open source BSD license. OpenCV includes both its  traditional C interface as well as a new C++ interface which makes it  possible to integrate with GNURadio.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt;Introduction to OpenCV &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;OpenCV is an Open source computer vision library in C/C++ which is  optimised and intended for real-time applications and is  OS/hardware/window-manager independent.  It can perform generic  image/video loading, saving, and acquisition in both low and high level  API.  Supported image formats: BMP, DIB, JPEG, JPG, JPE, PNG, PBM, PGM,  PPM,SR, RAS, TIFF, TIF. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;OpenCV modules include:&lt;/i&gt;&lt;/span&gt; &lt;/div&gt;&lt;ul style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;cv - Main OpenCV functions. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;cvaux - Auxiliary (experimental) OpenCV functions. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;cxcore - Data structures and linear algebra support. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;highgui - GUI functions.  &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;OpenCV can be downloaded from &lt;a class=&quot;external text&quot; href=&quot;http://sourceforge.net/projects/opencvlibrary/&quot; rel=&quot;nofollow&quot; title=&quot;http://sourceforge.net/projects/opencvlibrary/&quot;&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For installation guide through the synaptic manager&amp;nbsp; &lt;a class=&quot;external text&quot; href=&quot;http://weissalissa.blogspot.com/2011/03/this-article-is-basically-for.html&quot; rel=&quot;nofollow&quot; title=&quot;http://weissalissa.blogspot.com/2011/03/this-article-is-basically-for.html&quot;&gt;click here.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;For installation guide through the terminal&amp;nbsp;&amp;nbsp; &lt;a class=&quot;external text&quot; href=&quot;http://weissalissa.blogspot.com/2011/03/installtion-guide-for-opencv-in-linux.html&quot; rel=&quot;nofollow&quot; title=&quot;http://weissalissa.blogspot.com/2011/03/installtion-guide-for-opencv-in-linux.html&quot;&gt;click here&lt;/a&gt;.   &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;Compilation instructions:&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt; &lt;/div&gt;&lt;pre style=&quot;background-color: #d5a6bd; color: #c27ba0; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ g++ -I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux -lml hello.cpp&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;color: #c27ba0; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;OpenCV requires the following library for compilation. &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=8996377137098508061&amp;amp;postID=1673196572876322821&quot; id=&quot;Integarting_OpenCV_with_GNURadio&quot; name=&quot;Integarting_OpenCV_with_GNURadio&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;mw-headline&quot;&gt; Integarting OpenCV with GNURadio &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;To integrate OpenCV with GNURadio include the OpenCV library&#39;s in the  top directory file, makefile.common specified by two flags AM_CXXFLAGS   and AM_CPPFLAGS as; &lt;/span&gt;&lt;/div&gt;&lt;pre style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;color: black; text-align: left;&quot;&gt;&lt;pre style=&quot;background-color: #d5a6bd; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;AM_CXXFLAGS = @autoconf_default_CXXFLAGS@ \&amp;nbsp;&amp;nbsp;&amp;nbsp; 
           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; -I/usr/include/opencv \ 
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -lcxcore -lcv -lhighgui -lcvaux -lml&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre style=&quot;background-color: #444444; color: black; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #d5a6bd; color: black; font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;AM_CPPFLAGS = -I/usr/include/opencv \ 
               $(STD_DEFINES_AND_INCLUDES) \ 
               $(PYTHON_CPPFLAGS) \ 
               $(CPPUNIT_INCLUDES) \ 
               $(GNURADIO_CORE_CPPFLAGS)
&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Once this is set OpenCV header files and functions can be used in GNURadio.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
2RHGDSDQ67N2&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/1673196572876322821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/image-processing-using-gnuradio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/1673196572876322821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/1673196572876322821'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/image-processing-using-gnuradio.html' title='Image Processing using GNURadio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-4136756320782406786</id><published>2011-03-24T11:35:00.002-07:00</published><updated>2011-11-02T22:18:49.149-07:00</updated><title type='text'>Download Source Code</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Download source codes and projects in different language                 which includes C, C++, Socket Programming in C Linux, PHP, Java, J2EE,                 ALP 8086, Programming                 Contest and many more.&lt;/span&gt;     &amp;nbsp;               &lt;br /&gt;&lt;table cellpadding=&quot;3&quot; cellspacing=&quot;3&quot;&gt;&lt;tbody&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_c.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;C&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;C programs written in TurboC and Linux. Includes programs from OS Scheduling and Compiler design&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_cpp.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;C++&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;C++ programs include Linklist, Operator overloading and templates&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_alp8086.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;ALP 8086&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;Assembly Language Program in 8086 covers basic directory/file operations and others&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_socket_prog.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;Socket Programming in Linux using C&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;Socket Programming includes program in the Server Client architecture using UDP and TCP connection&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_java.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;Java&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;Java programs include  basic exception handling concept, threads and JDBC&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_j2ee.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;J2EE&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;J2EE programs include MVC architecture, Ajax, Cookies, Hibernate, EJB, JavaBeans and Struts&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normal_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_php.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;PHP&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;PHP programs include basic web application using MySql database&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=&quot;#f2f2f2&quot; class=&quot;normalActive_sc&quot; style=&quot;cursor: pointer;&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://technocode.co.in/source_code_programming_contest.aspx&quot; style=&quot;color: #282828; text-decoration: none;&quot;&gt;&lt;b&gt;Programming Contest&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: grey;&quot;&gt;Programming Contest covers various programs along with question, which are part of some programming contest or the other&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/4136756320782406786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/download-source-code_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4136756320782406786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4136756320782406786'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/download-source-code_18.html' title='Download Source Code'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-737914067309189350</id><published>2011-03-22T04:32:00.000-07:00</published><updated>2011-03-25T00:21:16.580-07:00</updated><title type='text'>The Ahoms Of Assam</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjItnAK39io3Mv51x9CYuZejrYvhyphenhyphencaQsWvJ8ZuHDy_y-YBr6hE4Ron8ygkJeuOWU38OR_zFNowByVUCjVHQLdTUlrBrfYTpA88moViitGXRM8YZx6XDRQWlSI8xhB2-ZVFB9HGPnfD5E/s1600/chaolungsukapha.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjItnAK39io3Mv51x9CYuZejrYvhyphenhyphencaQsWvJ8ZuHDy_y-YBr6hE4Ron8ygkJeuOWU38OR_zFNowByVUCjVHQLdTUlrBrfYTpA88moViitGXRM8YZx6XDRQWlSI8xhB2-ZVFB9HGPnfD5E/s320/chaolungsukapha.jpg&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Ahom King - Chao Lung Siuka-pha&lt;br /&gt;
&lt;h1&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span class=&quot;profileName ginormousProfileName fwb&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Ahoms, the dominant Tai group of Assam belong to the great Tai ethnic and linguistic family of South-East Asia. The original homeland of the Ahoms was Yunum of Southern China . They came to Assam and established a tiny kingdom in 1228 A.D in the easternmost part of India with Charaideo as its capital in the district of Sivasagar under the leadership of Siuka-pha, a Tai prince from Southern China .&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Before the advent of the Ahoms, Assam was known variously as Pragjyotisha and Kamarupa in different period of time . In the epic period, the country was divided into Sonitpur, Kundil Rajya and Pragjyotisha . In addition there were the kingdoms of Hidimba, Davaka, Manipur and Tripura. Later the kingdom of Kamarupa arose in early Christian era, but this kingdom disappeared by the middle of the twelfth century A.D. Another kingdom known as Kamata also appeared in this region by this time . Taking advantage of this weakness of the Kamarupa , Kamata kingdom, the chiefs of the Koch and the Mech tribes organized several independent principalities on the western part of the kingdom of Kamarupa . Thus prior to the advent of the Ahoms, this land of the Brahmaputra was divided politically , socially and racially .&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNUjSrxg9t2iKYXi2JGKK6nehd6rvTBY_HpNgMo0FgtApupaygMwXs9UXRDPqPccODHwifUfhBmsWW2w8VgSQApB9K-7ABR8x3LYpX_frhMKgbSDuSNQZQZaZH_-eDNlk6MRVjhQ4dQes/s1600/ahom.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNUjSrxg9t2iKYXi2JGKK6nehd6rvTBY_HpNgMo0FgtApupaygMwXs9UXRDPqPccODHwifUfhBmsWW2w8VgSQApB9K-7ABR8x3LYpX_frhMKgbSDuSNQZQZaZH_-eDNlk6MRVjhQ4dQes/s320/ahom.bmp&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Ahom Monuments&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Ahoms under Siuka-pha came and founded the first Tai kingdom in 1228 A.D . The tiny kingdom thus formed , was gradually extended by them eastward and westward in stages and thus they became the undisputed lord of the entire Brahmaputra Valley from Sadiya on the east to the river Manaha on the west . The Ahoms created history by ruling gloriously this land for six hundred years .Thirty eight rulers belongs to Ahom royal dynasty ruled Assam from 1228 A.D to 1826 A.D . It was during their long protracted reign that the land and the people came to be&amp;nbsp; designated as “Assam” and “Assamese”&amp;nbsp; Still today they are known by such names . It may be considered as their the greatest contribution to the land of their adoption i.e, Assam .&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Original composition and written by : Dr. Khagen Chandra Phukan.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;My sincere thanks to him.&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/737914067309189350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/ahoms-of-assam.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/737914067309189350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/737914067309189350'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/ahoms-of-assam.html' title='The Ahoms Of Assam'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjItnAK39io3Mv51x9CYuZejrYvhyphenhyphencaQsWvJ8ZuHDy_y-YBr6hE4Ron8ygkJeuOWU38OR_zFNowByVUCjVHQLdTUlrBrfYTpA88moViitGXRM8YZx6XDRQWlSI8xhB2-ZVFB9HGPnfD5E/s72-c/chaolungsukapha.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-2408875214298616508</id><published>2011-03-22T02:44:00.000-07:00</published><updated>2011-11-05T12:16:00.241-07:00</updated><title type='text'>Writing  a Block in GNURadio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Verdana,sans-serif; text-align: left;&quot;&gt;&lt;/div&gt;&lt;dl  style=&quot; text-align: left;font-family:Verdana,sans-serif;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDaL406TwWLkCmEMzT017Kda_USDlyjqMaDzReGXppZJPd6jVYcyTSiH7AN43_ELx-yhsa-sUJHxEzPHnmAd0hcDzehyRWpm4UIpebA01KTCq3yylyV35Dni9M5oMKXKHZonKP1OX0FEU/s1600/Screenshot-10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt; &lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;GNU  Radio provides a data flow abstraction.This abstraction is  implemented by the Python gr.flow_graph class.Each block has a set  of input ports and output ports.When we write the block, we need to  construct them as shared libraries that may be dynamically loaded  into Python using the `import&#39; mechanism. &lt;b&gt;SWIG&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;,  the Simplified Wrapper and Interface Generator, is used to generate  the glue that allows our code to be used from Python. Writing a new  signal processing block involves creating 3 files: The .h and .cc  files that define the new block class and the .i file that tells  SWIG how to generate the glue that binds the class into Python. The  new class must derive from gr_block or one of it&#39;s subclasses. The  C++ class gr_block is the base of all signal processing blocks in  GNU Radio.&lt;/span&gt; &lt;/dd&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;br /&gt;&lt;/dd&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVWMmE0caIyqbN_jp2Mky34G_SIdbWdr4uj3clpnngVszIUmRlGrXA2KVW9QjGZX7Ez_AVEaNSkJgMYqtndS1j1QHwcvyu3wqRibQy4twkFVdyXlivt9A9soV8NmyKhOLIyC9PYojnoc/s1600/Screenshot-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVWMmE0caIyqbN_jp2Mky34G_SIdbWdr4uj3clpnngVszIUmRlGrXA2KVW9QjGZX7Ez_AVEaNSkJgMYqtndS1j1QHwcvyu3wqRibQy4twkFVdyXlivt9A9soV8NmyKhOLIyC9PYojnoc/s400/Screenshot-2.png&quot; border=&quot;0&quot; height=&quot;73&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:small;&quot;&gt;d_name  is a string saving the block&#39;s name. d_unique_id is a long integer,  defined as the `ID&#39; of the block. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;The class gr_io_signature is  defined in /src/lib/runtime/gr_io_signature.h.The definition of  gr_io_signature.h.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;dl&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;/dd&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi09nUCKHc5kogn5vA3VhmRE8NRPKDcP1OfVLLMrC4D76CWQQQxU-ifYRB6hGmHw4G24gOHYAyC_qa3aEAMi9MqPElkzmIPvCelBlrVh882cNfDNiymT9uv2HJO0KKLf_4_O7bel2_Ubqc/s1600/Screenshot-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi09nUCKHc5kogn5vA3VhmRE8NRPKDcP1OfVLLMrC4D76CWQQQxU-ifYRB6hGmHw4G24gOHYAyC_qa3aEAMi9MqPElkzmIPvCelBlrVh882cNfDNiymT9uv2HJO0KKLf_4_O7bel2_Ubqc/s400/Screenshot-3.png&quot; border=&quot;0&quot; height=&quot;150&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;/dd&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;!--more--&gt;&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;For  a block&#39;s input (output), the class gr_io_signature defines the  minimal (d_min_streams) and maximal (d_max_streams) number of  streams as the lower and upper bound. The `size&#39; (number of bytes  occupied) of an item in the stream is given by d_sizeof_stream_item,  a member variable with the type of size_t.&lt;/span&gt; &lt;div class=&quot;&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;gr_runtime.h is included in  gr_block.h. In gr_runtime.h, gr_io_signature_sptr is a type defined  as:&lt;/span&gt; &lt;/div&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2KWe34miEDd9g4RKZLu9AWeEzjdl_HfnYsWGGWmG1V1fMpUPHomkKPjmWgmRHnvJ-puEO3B30dmwcUIn4gvyYKWClRZO8RiGWt-AOXVCSI6BNkujgiAgTQgN9DV5uI8fPDiKgEXyjjSY/s1600/Screenshot-4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2KWe34miEDd9g4RKZLu9AWeEzjdl_HfnYsWGGWmG1V1fMpUPHomkKPjmWgmRHnvJ-puEO3B30dmwcUIn4gvyYKWClRZO8RiGWt-AOXVCSI6BNkujgiAgTQgN9DV5uI8fPDiKgEXyjjSY/s400/Screenshot-4.png&quot; border=&quot;0&quot; height=&quot;25&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;Further,  gr_runtime.h includes gr_type.h first. In gr_type.h, an interesting  header file is included.&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7BtXjGOscKNrHbJN98zYUSNNglhhFoYT8kaG2wbSXKalvufbxEF1IQTw3u65u9WQuKlrWjg5mH6Ve7FcHL_wl2b-xT6WGrc6PdIvnU_emn4z5Ip3jloHkGHaJj2SV7QEjyaccTUMrUg4/s1600/Screenshot-5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7BtXjGOscKNrHbJN98zYUSNNglhhFoYT8kaG2wbSXKalvufbxEF1IQTw3u65u9WQuKlrWjg5mH6Ve7FcHL_wl2b-xT6WGrc6PdIvnU_emn4z5Ip3jloHkGHaJj2SV7QEjyaccTUMrUg4/s400/Screenshot-5.png&quot; border=&quot;0&quot; height=&quot;42&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dd style=&quot;line-height: 150%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;GNU  Radio takes the advantage of Boost smart pointers. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;Boost is a collection of C++  libraries, a pre-required package for the installation of GNU Radio.  Boost provides powerful extensions to C++ from many aspects, such as  algorithm implementation, math/numerics, input/output, iterators,  etc. Interested programmers can refer to for more information. GNU  Radio borrows one cool feature from Boost: the smart_ptr library, so  called . Smart pointers are objects which store pointers to  dynamically allocated objects. They behave much like built-in C++  pointers except that they automatically delete the object pointed to  at the appropriate time. Smart pointers are particularly useful in  the face of exceptions as they ensure proper destruction of  dynamically allocated objects.the smart pointers are defined as  class templates. The library smart_ptr provides five smart pointer  class templates, but in GNU Radio, we only use one of them:  shared_ptr, defined in &amp;lt;boost/shared_ptr.hpp&amp;gt;. shared_ptr is  used for the case when the pointed object ownership is shared by  multiple pointers. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;Using Smart pointers in  GNURadio: &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;boost::shared_ptr&amp;lt;T&amp;gt;   pointer_name &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;These smart pointer class  templates have a template parameter, T, which specifies the type of  the object pointed to by the smart pointer. For example,  boost::shared_ptr&amp;lt;gr_io_signature&amp;gt; declares a smart pointer  pointing to an object with the class type of gr_io_signature. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIl7CINxYEFDH7n2uY4kw40ZcwaWwBiL7TTEkzZM4DH9FCDp1mj_PrrkG80KGLOUvz64OKDAbkj16kAwrPZ7FoLW1Cj55d4vIwVujbjduKTkIz27_DUJiJr9uWIvvB6s9KHxSuAxXqRNo/s1600/Screenshot-6.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIl7CINxYEFDH7n2uY4kw40ZcwaWwBiL7TTEkzZM4DH9FCDp1mj_PrrkG80KGLOUvz64OKDAbkj16kAwrPZ7FoLW1Cj55d4vIwVujbjduKTkIz27_DUJiJr9uWIvvB6s9KHxSuAxXqRNo/s400/Screenshot-6.png&quot; border=&quot;0&quot; height=&quot;110&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; Datatypes in GNURadio:  &lt;/b&gt;&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt;The core of a block: the method general_work() &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;The method general_work() is pure virtual, we definitely need to override that. general_work is the method that does the actual signal processing, which is the CPU of the block.&lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1pt04bbN4mNCO7wWGZVN578XmQd6X0oE7MQ2LjWz24Iqgmt7aODavdNOCQCOfbeTuYNwCiqsTBDjTIQx3nzKDb4s3Pp57SJTfWUwLj9JLTs_g7s4BbIrA0IcD5TDQ4KcaSnxaq8HxPV4/s1600/Screenshot-7.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1pt04bbN4mNCO7wWGZVN578XmQd6X0oE7MQ2LjWz24Iqgmt7aODavdNOCQCOfbeTuYNwCiqsTBDjTIQx3nzKDb4s3Pp57SJTfWUwLj9JLTs_g7s4BbIrA0IcD5TDQ4KcaSnxaq8HxPV4/s400/Screenshot-7.png&quot; border=&quot;0&quot; height=&quot;43&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;dl&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/dl&gt;&lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;&lt;br /&gt;&lt;dl&gt;&lt;dd style=&quot;margin-left: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;he  method general_work() compute the output streams from the input  streams&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;A  block may have x input streams and y output streams. ninput_items is  an integer `vector&#39; of length x, the i&lt;sup&gt;th&lt;/sup&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  element of which gives the number of available items on the i&lt;sup&gt;th&lt;/sup&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  input stream&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;However   noutput_items (output flow) is simply an integer and not a  vector.This is because GNU Radio of the current version only  supports a block having the same data rates for all output streams,  i.e. the number of output items to write on each output stream is  the same for all output streams. The data rates for input streams  could be different. . input_items is a vector of pointers to the  input items, one entry per input stream. output_items is a vector of  pointers to the output items, one entry per output stream. We  actually use these pointers to get the input data and write the  computed output data to appropriate streams. The returned value of  general_work() is the number of items actually written to each  output stream, or -1 on EOF. It is OK to return a value less than  noutput_items. Finally and significantly, when we override  general_work() for our own block, we &lt;/span&gt;&lt;b&gt;MUST&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;  call consume() or consume_each() methods to indicate how many items  have been consumed on each input stream. &lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt; &lt;/dd&gt;&lt;dd style=&quot;margin-left: 0cm;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBzYAyKpk5sWW5A2njoLAkz2BqwqIjv3hvtFxwqgmNPIbD9It2W4Had-V4xcgfwt6Vv0EDIEVzbh-hbonVZye1NRcvgJNozO_hRHQnVTL3axAepp9mIP3fqSJzf2zqNy-vlkLRtwymtk/s1600/Screenshot-8.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBzYAyKpk5sWW5A2njoLAkz2BqwqIjv3hvtFxwqgmNPIbD9It2W4Had-V4xcgfwt6Vv0EDIEVzbh-hbonVZye1NRcvgJNozO_hRHQnVTL3axAepp9mIP3fqSJzf2zqNy-vlkLRtwymtk/s400/Screenshot-8.png&quot; border=&quot;0&quot; height=&quot;22&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:small;&quot;&gt;The  method consume() tells the scheduler how many items (given by how_many_items&#39;) of the i&lt;sup&gt;th&lt;/sup&gt;  input stream (given by `which_input&#39;) have been consumed. If each  input stream has consumed the same number of items, we can use  consume_each() instead. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;      &lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYoL6nbDjrDGiGnkTGEv2LjPzwnIjRIFUg6Sve65vx54-8daavNPvb-Rn6SdVx_adC8P1CfkTKSTng07aIQj8nwrkUQEGfhdN_7C526EpzCRkFKXzPlpcTdCFEFtomCYwtewX4d24z1uY/s1600/Screenshot-9.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYoL6nbDjrDGiGnkTGEv2LjPzwnIjRIFUg6Sve65vx54-8daavNPvb-Rn6SdVx_adC8P1CfkTKSTng07aIQj8nwrkUQEGfhdN_7C526EpzCRkFKXzPlpcTdCFEFtomCYwtewX4d24z1uY/s400/Screenshot-9.png&quot; border=&quot;0&quot; height=&quot;26&quot; width=&quot;400&quot; /&gt;&lt;/a&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;It tells the scheduler each input stream has consumed `how_many_items&#39; items. &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;The reason why we have to call the consume() or consume_each() method is we have to tell the scheduler how many items of the input streams have been consumed, so that the scheduler can arrange the upstream buffer and associated pointers accordingly.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;       &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDaL406TwWLkCmEMzT017Kda_USDlyjqMaDzReGXppZJPd6jVYcyTSiH7AN43_ELx-yhsa-sUJHxEzPHnmAd0hcDzehyRWpm4UIpebA01KTCq3yylyV35Dni9M5oMKXKHZonKP1OX0FEU/s1600/Screenshot-10.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDaL406TwWLkCmEMzT017Kda_USDlyjqMaDzReGXppZJPd6jVYcyTSiH7AN43_ELx-yhsa-sUJHxEzPHnmAd0hcDzehyRWpm4UIpebA01KTCq3yylyV35Dni9M5oMKXKHZonKP1OX0FEU/s400/Screenshot-10.png&quot; border=&quot;0&quot; height=&quot;30&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;b&gt; &lt;/b&gt;  &lt;b&gt; &lt;/b&gt;  &lt;b&gt; &lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;The method forecast():     &lt;/b&gt;&lt;/span&gt;   &lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt;The method forecast() is used to estimate the input requirements given an output request.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;The first parameter noutput_items has been introduced in general_work(), which is the number of output items to produce for each output stream. The second parameter ninput_items_required is an integer vector, saving the number of input items required on each input stream.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;When we override the forecast() method, we need to estimate the number of data items required on each input stream, given the request to produce `noutput_items&#39; items for each output stream. The estimate doesn&#39;t have to be exact, but should be close. The argument ninput_items_required is passed by reference, so that the calculated estimates can be saved into it directly.  &lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;Naming Conventions:&lt;/b&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;In GNU Radio, with the exception of macros and other constant values, all identifiers shall be in lower case with `words_separated_like_this&#39;. Macros and constant values shall be in UPPER_CASE.&lt;b&gt; &lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;Package prefix:&lt;/b&gt;   &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt;All globally visible names (types, functions, variables, constants, etc.) shall begin with a                  package prefix&#39;, followed by an underscore. The bulk of the code in GNU Radio belongs to the `gr&#39; package, hence names look like gr_open_file (...).&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;      &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGwxnWu2daA6pZPizC36llNfi003JvtyyiUa69NHJxa5Vgo9IIhT0Xv4NiwNeB5BkyF4wHpeMANp0J32_QpNEYyCPcN34lSzbezeJKktWpQI76POKk91cyIX9V__OW71KrsGX_WLoghXE/s1600/Screenshot-11.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGwxnWu2daA6pZPizC36llNfi003JvtyyiUa69NHJxa5Vgo9IIhT0Xv4NiwNeB5BkyF4wHpeMANp0J32_QpNEYyCPcN34lSzbezeJKktWpQI76POKk91cyIX9V__OW71KrsGX_WLoghXE/s400/Screenshot-11.png&quot; border=&quot;0&quot; height=&quot;48&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;Class data members (instance variables):&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/b&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;All class data members shall begin with the prefix `d_&#39;.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;        &lt;div style=&quot;line-height: 150%;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;File names&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;Each significant class shall be contained in its own files. For example, the declaration of the class gr_foo shall be in gr_foo.h and the definition in gr_foo.cc.  &lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;Suffixes&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;By convention, we encode the input and output types of signal processing blocks in their name using suffixes. The suffix is typically one or two characters long. Sources and sinks have single character suffixes. Regular blocks that have both inputs and outputs have two character suffixes. The first character indicates the type of the input streams, while the second indicates the type of the output streams.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKaC_Fsa5lPav9N9Ydh3XZdEsTfHPWEPePcoq3EWGRCSDWFkhG_bG0WRqeWXUnvRRYIKU0TSIMLfTz59DzDIFYDma1YtOwOM1oI-ARLvcj33UpcxsFtNNLXvuNaXtpwrWo-OMeufPjb0w/s1600/Screenshot-13.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKaC_Fsa5lPav9N9Ydh3XZdEsTfHPWEPePcoq3EWGRCSDWFkhG_bG0WRqeWXUnvRRYIKU0TSIMLfTz59DzDIFYDma1YtOwOM1oI-ARLvcj33UpcxsFtNNLXvuNaXtpwrWo-OMeufPjb0w/s400/Screenshot-13.png&quot; border=&quot;0&quot; height=&quot;57&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;The SWIG file: how.i&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;SWIG&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt;, the Simplified Wrapper and Interface Generator, is used to generate the glue that allows our code to be used from Python.The SWIG .i file tells SWIG the gluing guidelines.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;A .i file can been treated as a pared-down version of the .h file, plus a bit of magic that has Python work with the boost::shared_ptr. To reduce the code bloat,declare methods that are required to  access from Python.&lt;/span&gt;&lt;span style=&quot;font-size:small;&quot;&gt; &lt;/span&gt; &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFzB7bwmJwqkyCd2mrTFaEoaif-zGjipiMtqlNQMbcvhTtXgqfK620i5P0CETlybLZGfALDkl45dr58Z0uaYP_CArk8iqJbWcCFCl9_xDRm30iJ_OGtw2_tCULL9XKpn_N0sPky_wtJiM/s1600/Screenshot-14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFzB7bwmJwqkyCd2mrTFaEoaif-zGjipiMtqlNQMbcvhTtXgqfK620i5P0CETlybLZGfALDkl45dr58Z0uaYP_CArk8iqJbWcCFCl9_xDRm30iJ_OGtw2_tCULL9XKpn_N0sPky_wtJiM/s320/Screenshot-14.png&quot; border=&quot;0&quot; height=&quot;81&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XzS8S9tXFgSgKwoL5LgauZx-HIOv2HH9NhXvuq7sUfkzahMd0AuCPGCjj4umPeIbOIf7B5qnGJojRPiwR7wcPVAWGGXIj3hYn4n6WKT6NqapPtlkwQLzLW9wZhy0nqE-cSgOgLCTxms/s1600/Screenshot-15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XzS8S9tXFgSgKwoL5LgauZx-HIOv2HH9NhXvuq7sUfkzahMd0AuCPGCjj4umPeIbOIf7B5qnGJojRPiwR7wcPVAWGGXIj3hYn4n6WKT6NqapPtlkwQLzLW9wZhy0nqE-cSgOgLCTxms/s320/Screenshot-15.png&quot; style=&quot;cursor: move;&quot; border=&quot;0&quot; height=&quot;207&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;style type=&quot;text/css&quot;&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;  &lt;/div&gt;&lt;div style=&quot;line-height: 150%; margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-size:small;&quot;&gt;GR_SWIG_BLOCK_MAGIC does some `magics&#39; so that we can access howto_square_ff from Python as howto.square_ff(). From Python&#39;s point of view, howto is a package, and square_ff() becomes a function defined in howto. Calling this function will return a smart pointer howto_square_ff_sptr pointing to a new instance of howto_square_ff.&lt;/span&gt;&lt;/div&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/2408875214298616508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/writing-block-in-gnuradio.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2408875214298616508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/2408875214298616508'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/writing-block-in-gnuradio.html' title='Writing  a Block in GNURadio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaVWMmE0caIyqbN_jp2Mky34G_SIdbWdr4uj3clpnngVszIUmRlGrXA2KVW9QjGZX7Ez_AVEaNSkJgMYqtndS1j1QHwcvyu3wqRibQy4twkFVdyXlivt9A9soV8NmyKhOLIyC9PYojnoc/s72-c/Screenshot-2.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-62927418085808704</id><published>2011-03-21T04:06:00.000-07:00</published><updated>2011-03-21T04:16:52.659-07:00</updated><title type='text'>Installtion guide for Opencv in Linux using the Synaptic Manager</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;This article is basically for installing Opencv 2.1 in Ubuntu 10.10. Opencv basically helps in image processing using c++ . For reading or writing images in c++ , we require Opencv. The steps below are the ways Opencv can be installed.&lt;br /&gt;
&lt;br /&gt;
1. Go to Synaptic Package Manager (System&amp;gt; Administration&amp;gt; Synaptic Package Manager).&lt;br /&gt;
&lt;br /&gt;
2. Search for “opencv” and install the main “opencv” package and the following lib files:&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libcv&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libcv-dev&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libcvaux&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libcvaux-dev&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libhighgui&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;libhighgui-dev&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;opencv-doc&lt;/div&gt;(‘python-opencv’ not required).&lt;br /&gt;
(you can also install opencv directly from the terminal by “sudo apt-get install” the above lib files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
3. After installing all the packages, type this code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;$ export LD_LIBRARY_PATH=/home/opencv/lib&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;$ export PKG_CONFIG_PATH=/home/opencv/lib/pkgconfig&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The above ones are default paths for the opencv libraries.&lt;br /&gt;
&lt;br /&gt;
4. To check the path where opencv &amp;amp; other lib files are stored, do:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ pkg-config --cflags opencv&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
This output shows the path of the header file as:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;-I/usr/include/opencv&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp; $ pkg-config --libs opencv&lt;/div&gt;&lt;br /&gt;
This output shows the libraries required to be included.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;-lcxcore -lcv -lhighgui -lcvaux -lml&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
An Example code:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This code reads an image an displays it.It is named as img.cc&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;#include &amp;lt;math.h&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;#include &amp;lt;/usr/include/opencv/cv.h&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;#include &amp;lt;/usr/include/opencv/highgui.h&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;using namespace std;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;int main(int argc, char *argv[])&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;{&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; IplImage* img = 0;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; IplImage* img1=cvCreateImage(cvSize(256,256),IPL_DEPTH_8U,1);&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; int height,width,step,channels;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; unsigned char *data;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; int i,j,k;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; if(argc&amp;lt;2){&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Usage: main &amp;lt;image-file-name&amp;gt;&quot;;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; }&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;// load an image &lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;img=cvLoadImage(argv[1],-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; //-1 is a flag (flag&amp;lt;0 the loaded image is loaded as is (with number of channels in the file)&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;if(!img){&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Could not load image file:&quot;&amp;lt;&amp;lt;argv[1]&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;}&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;// get the image data&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; height&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;height;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;width;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; step&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;widthStep;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; channels&amp;nbsp; = img-&amp;gt;nChannels;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (unsigned char *)img-&amp;gt;imageData;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Height - &quot;&amp;lt;&amp;lt;height&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Width - &quot;&amp;lt;&amp;lt;width&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;WidthStep - &quot;&amp;lt;&amp;lt;step&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Channels - &quot;&amp;lt;&amp;lt;channels&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;endl;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;cvNamedWindow(&quot;Read Image&quot;, CV_WINDOW_AUTOSIZE);&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; // creating the image&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; for(i=0;i&amp;lt;height;i++) for(j=0;j&amp;lt;width;j++) for(k=0;k&amp;lt;channels;k++)&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[i*step+j*channels+k]=data[i*step+j*channels+k];&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; img1-&amp;gt;imageData=(char*)data;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; // show the image&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cvShowImage(&quot;Read Image&quot;, img1 );&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; // wait for a key&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cvWaitKey(0);&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;// release the image&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; cvReleaseImage(&amp;amp;img );&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&amp;nbsp; return 0;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6fa8dc; color: purple; text-align: left;&quot;&gt;}&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
These paths are needed to compile your opencv programs as shown below:&lt;br /&gt;
&lt;br /&gt;
5. To compile &amp;amp; run:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ g++ -I/usr/include/opencv -lcxcore -lhighgui -lm img.cc&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; where img.cc is c++ code for reading an image and displaying it.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp; $ ./a.out lena.bmp&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
6. For simplyfying the above command create an alias of the command in the home directory as&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ alias ocv=&quot;g++ -I/usr/include/opencv -lcv -lcxcore -lcvaux -lhighgui -lm&quot; &lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ ocv img.cc&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$./a.out lena.bmp&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Following steps 5 and 6 we get the output as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s1600/Screenshot-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s320/Screenshot-3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Reading an image in C++ using Opencv&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/62927418085808704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/this-article-is-basically-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/62927418085808704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/62927418085808704'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/this-article-is-basically-for.html' title='Installtion guide for Opencv in Linux using the Synaptic Manager'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s72-c/Screenshot-3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-4255041591964517895</id><published>2011-03-21T03:42:00.000-07:00</published><updated>2011-11-05T12:18:33.402-07:00</updated><title type='text'>Installtion guide for Opencv in Linux using the Terminal</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd9Y9p4S6UfWwzebQUrnL77svquOQFI9FM5MDovtas8-oZoKmDHHKIBBYRsvoJdKr0QQ1i940jjQpSD0DWlVBR1vNThbqoajmchi1_ktD_NPTRpj49jkR1vkHRtW01A1Ozi6kLnSDnseU/s1600/Screenshot-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd9Y9p4S6UfWwzebQUrnL77svquOQFI9FM5MDovtas8-oZoKmDHHKIBBYRsvoJdKr0QQ1i940jjQpSD0DWlVBR1vNThbqoajmchi1_ktD_NPTRpj49jkR1vkHRtW01A1Ozi6kLnSDnseU/s1600/Screenshot-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;This article is basically for installing Opencv 2.1 in Ubuntu 10.10. Opencv basically helps in image processing using c++ . For reading or writing images in c++ , we require Opencv. The steps below are the commands to be given in the terminal. &lt;br /&gt;&lt;br /&gt;1.This installation needs a C++ compiler like “g++”. So install g++&amp;nbsp; by&amp;nbsp; typing the following command at the terminal–&lt;span style=&quot;background-color: #9fc5e8;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #9fc5e8;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;$ sudo apt-get install g++&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2. OpenCV requires GTK+ 2.0 or higher for displaying images. GTK is graphical user interface library. Type out the following code to know the version of GTK+ installed on ur pc.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ dpkg -l | grep libgtk&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;This command should give o/p something like this if its installed on your system:&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;ii&amp;nbsp; libgtk-vnc-1.0-0&amp;nbsp; 0.4.1-3ubuntu2&amp;nbsp; A VNC viewer widget for GTK+ (runtime libraries)&lt;br /&gt;ii&amp;nbsp; libgtk2-perl&amp;nbsp; 2:1.222-1&amp;nbsp; Perl interface to the 2.x series of the Gimp Toolkit library&lt;br /&gt;ii&amp;nbsp; libgtk2.0-0&amp;nbsp; 2.22.0-0ubuntu1&amp;nbsp; The GTK+ graphical user interface library&lt;br /&gt;ii&amp;nbsp; libgtk2.0-bin&amp;nbsp; 2.22.0-0ubuntu1&amp;nbsp; The programs for the GTK+ graphical user interface library&lt;br /&gt;ii&amp;nbsp; libgtk2.0-cil&amp;nbsp; 2.12.10-1&amp;nbsp; CLI binding for the GTK+ toolkit 2.12&lt;br /&gt;ii&amp;nbsp; libgtk2.0-common&amp;nbsp; 2.22.0-0ubuntu1 Common files for the GTK+ graphical user interface library&lt;br /&gt;ii&amp;nbsp; libgtk2.0-dev&amp;nbsp; 2.22.0-0ubuntu1&amp;nbsp; Development files for the GTK+ library&lt;br /&gt;ii&amp;nbsp; libgtkhtml-editor-common&amp;nbsp; 1:3.30.3-1ubuntu1&amp;nbsp; HTML rendering/editing library - editor widget data&lt;br /&gt;ii&amp;nbsp; libgtkhtml-editor0&amp;nbsp; 1:3.30.3-1ubuntu1&amp;nbsp; HTML rendering/editing library - editor widget&lt;br /&gt;ii&amp;nbsp; libgtkhtml3.14-19&amp;nbsp; 1:3.30.3-1ubuntu1&amp;nbsp; HTML rendering/editing library - runtime files&lt;br /&gt;ii&amp;nbsp; libgtkmm-2.4-1c2a&amp;nbsp; 1:2.20.3-1&amp;nbsp; C++ wrappers for GTK+ (shared libraries)&lt;br /&gt;ii&amp;nbsp; libgtksourceview2.0-0&amp;nbsp; 2.10.5-0ubuntu1&amp;nbsp; shared libraries for the GTK+ syntax highlighting widget&lt;br /&gt;ii&amp;nbsp; libgtksourceview2.0-common&amp;nbsp; 2.10.5-0ubuntu1&amp;nbsp; common files for the GTK+ syntax highlighting widget&lt;br /&gt;ii&amp;nbsp; libgtkspell0&amp;nbsp; 2.0.16-1&amp;nbsp; a spell-checking addon for GTK&#39;s TextView widget&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If not, then you need to install the libraries for GTK+ 2.0 first, then start with this opencv installation.&lt;br /&gt;To install GTK+ 2.0 libraries, type the following:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ sudo apt-get install libgtk2.0-dev&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. After installing all the packages, type this code:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd;&quot;&gt;$ export LD_LIBRARY_PATH=/home/opencv/lib&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black; text-align: center;&quot;&gt;$ export PKG_CONFIG_PATH=/home/opencv/lib/pkgconfig&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;The above ones are default paths for the opencv libraries.&lt;br /&gt;4. To check the path where opencv &amp;amp; other lib files are stored, do:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ pkg-config --cflags opencv&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;This output shows the path of the header file as:&lt;br /&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;-I/usr/include/opencv&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt; $ pkg-config --libs opencv&lt;/span&gt;&lt;/div&gt;This output shows the libraries required to be included.&lt;br /&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;-lcxcore -lcv -lhighgui -lcvaux -lml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An Example code:&lt;br /&gt;&lt;br /&gt;This code reads an image an displays it.It is named as img.cc&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;background-color: #9fc5e8; text-align: left;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;#include &amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;#include &amp;lt;/usr/include/opencv/cv.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;#include &amp;lt;/usr/include/opencv/highgui.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;using namespace std;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;int main(int argc, char *argv[])&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; IplImage* img = 0; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; IplImage* img1=cvCreateImage(cvSize(256,256),IPL_DEPTH_8U,1); &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; int height,width,step,channels;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; unsigned char *data;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; int i,j,k;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; if(argc&amp;lt;2){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Usage: main &amp;lt;image-file-name&amp;gt;&quot;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // load an image&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; img=cvLoadImage(argv[1],-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; //-1 is a flag (flag&amp;lt;0 the loaded image is loaded as is (with number of channels in the file)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; if(!img){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Could not load image file:&quot;&amp;lt;&amp;lt;argv[1]&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // get the image data&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; height&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;height;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; width&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;width;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; step&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = img-&amp;gt;widthStep;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; channels&amp;nbsp; = img-&amp;gt;nChannels;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (unsigned char *)img-&amp;gt;imageData;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Height - &quot;&amp;lt;&amp;lt;height&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Width - &quot;&amp;lt;&amp;lt;width&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;WidthStep - &quot;&amp;lt;&amp;lt;step&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;&quot;Channels - &quot;&amp;lt;&amp;lt;channels&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cout&amp;lt;&amp;lt;endl;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cvNamedWindow(&quot;Read Image&quot;, CV_WINDOW_AUTOSIZE); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // creating the image&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; for(i=0;i&amp;lt;height;i++) for(j=0;j&amp;lt;width;j++) for(k=0;k&amp;lt;channels;k++)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[i*step+j*channels+k]=data[i*step+j*channels+k];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; img1-&amp;gt;imageData=(char*)data;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // show the image&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cvShowImage(&quot;Read Image&quot;, img1 );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // wait for a key&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cvWaitKey(0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; // release the image&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; cvReleaseImage(&amp;amp;img );&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;&amp;nbsp; return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: purple;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;These paths are needed to compile your opencv programs as shown below:&lt;br /&gt;5. To compile &amp;amp; run:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ g++ -I/usr/include/opencv -lcxcore -lhighgui -lm img.cc&lt;/span&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where img.cc is c++ code for reading an image and displaying it.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #c27ba0; color: white;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;&amp;nbsp; $ ./a.out lena.bmp&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;6. For simplyfying the above command create an alias of the command in the home directory as&lt;br /&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ alias ocv=&quot;g++ -I/usr/include/opencv -lcv -lcxcore -lcvaux -lhighgui -lm&quot;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$ ocv img.cc&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #d5a6bd; color: black;&quot;&gt;$./a.out lena.bmp&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s1600/Screenshot-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;Following steps 5 and 6 we get the output as shown below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s1600/Screenshot-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s400/Screenshot-3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Reading an image in C++ using OpenCv&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/4255041591964517895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/installtion-guide-for-opencv-in-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4255041591964517895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4255041591964517895'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/installtion-guide-for-opencv-in-linux.html' title='Installtion guide for Opencv in Linux using the Terminal'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxKDwWTxWIqkz-AgpShzu5Ls0VuCdmOwUoPoSqh2Wt2jRM0DQYJnqDoZ09o6sMMI3I1UojZeoswzEX56ivFmfqd-wqetSjpQZc_JymUTFtamvRk1SnFI8uI09efp_XFOe6MtQR8n6m2M/s72-c/Screenshot-3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-3275123192028431948</id><published>2011-03-18T01:01:00.000-07:00</published><updated>2011-03-18T01:05:19.594-07:00</updated><title type='text'>CPU inside Keyboard</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmRjD3x4IFDdpnihBi4QKIJnYma0102sUkuysdUMV70Cok-7jVryDaRQTuvwuVfU4QZm_Ka_omvLJl0Hb_7PfDIIwCDQQovT_wWBniZyNB5es3XtcptSr8K89hWiFt3cCpmaj6aa4Fh0E/s1600/image001.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The ZPC-9000 is a complete PC with a Pentium 4 CPU, LAN, and other PC parts inside a normal-size keyboard. While some of the benefits of this layout are obvious, such as the saving of space, a cleaner desktop and a significantly reduced number of cables, there are some additional clever features which make additional sense of the design. The ZPC-9000 uses just 120 Watt power supply compared with the usual 250-300 Watt power supplies used with a traditional PC.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Features include the latest Intel Pentium 4 HT processors up to 3.2GHz, up to 2GB of DDR-400MHz Memory, 1GB Ethernet LAN, 7-in-1 Card Reader, 2-Button touchpad, CD-RW/DVD and Fourth Generation Intel Extreme graphics controller. The ZPC-9000 also has a removable hard drive option and locking mechanism.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3v10Pbqb3KFdalZbM7thsZ_69r5me81oROYTXW878LLTrbLhwDaIJGdckT-XhaCycUlakH4xRk4xurkPV0DBQ3TTbxgoW94wYayJZ8nU4l2ZygSzA6WABfvSAdwCndV_vvyZ-hRJf-o/s1600/image003.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3v10Pbqb3KFdalZbM7thsZ_69r5me81oROYTXW878LLTrbLhwDaIJGdckT-XhaCycUlakH4xRk4xurkPV0DBQ3TTbxgoW94wYayJZ8nU4l2ZygSzA6WABfvSAdwCndV_vvyZ-hRJf-o/s1600/image003.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmRjD3x4IFDdpnihBi4QKIJnYma0102sUkuysdUMV70Cok-7jVryDaRQTuvwuVfU4QZm_Ka_omvLJl0Hb_7PfDIIwCDQQovT_wWBniZyNB5es3XtcptSr8K89hWiFt3cCpmaj6aa4Fh0E/s400/image001.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A complete keyboard layout&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3v10Pbqb3KFdalZbM7thsZ_69r5me81oROYTXW878LLTrbLhwDaIJGdckT-XhaCycUlakH4xRk4xurkPV0DBQ3TTbxgoW94wYayJZ8nU4l2ZygSzA6WABfvSAdwCndV_vvyZ-hRJf-o/s1600/image003.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3v10Pbqb3KFdalZbM7thsZ_69r5me81oROYTXW878LLTrbLhwDaIJGdckT-XhaCycUlakH4xRk4xurkPV0DBQ3TTbxgoW94wYayJZ8nU4l2ZygSzA6WABfvSAdwCndV_vvyZ-hRJf-o/s400/image003.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;LEDs&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrZJwlGuWGYwt5FitdffHhyINomFx_x0FxjOwRT-jgx1LRGBTvJZCCU6pUUoLj93IRPHP5gtOdK3-DyCYQH8PtYoqEQa7Ot689x_aQGOK8YFB0mCEwc-zLHSTgLRtkEclok_LX686tRO4/s1600/image006.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrZJwlGuWGYwt5FitdffHhyINomFx_x0FxjOwRT-jgx1LRGBTvJZCCU6pUUoLj93IRPHP5gtOdK3-DyCYQH8PtYoqEQa7Ot689x_aQGOK8YFB0mCEwc-zLHSTgLRtkEclok_LX686tRO4/s400/image006.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;USB, LAN Port, Printer Port, Mouse Port&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcSaEIl0cv8n_KQOUfndOpUQbxxEwxlI0Qguffi6jL8tdz1m8JfLcCCQ7cZ__rBz0z74RLNhkiwh7q18nirvts3B1LVPpcKPVR2QxfBn1PaDE90iNWjwgB9dicgmNrZ-qJ1nyDoAD0Uzw/s1600/image007.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcSaEIl0cv8n_KQOUfndOpUQbxxEwxlI0Qguffi6jL8tdz1m8JfLcCCQ7cZ__rBz0z74RLNhkiwh7q18nirvts3B1LVPpcKPVR2QxfBn1PaDE90iNWjwgB9dicgmNrZ-qJ1nyDoAD0Uzw/s400/image007.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Removable Harddisk&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyIaDRD9MYTgs_GzWRkdOCMM7buZk7w9bSRDkxq68u85F37327X9wC73WwNj2Nrb1E_b36PHzgicb8Eu-4YYQrACaOBsSC6pFDxXS9FkU5nNXQ335-H2_CBFIeIQB_lJdvFFS4c2_Mc5M/s400/image008.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Tiny speakers&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&amp;nbsp; &lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhINJ84d-7PYqm4v9Q-IiNn_POpIRo5CCCQjPXWLTTPuASPa6h6YZckWgaybtoiZMycMlfi2mqT6Qi45UlRBW50gdLp5p5ULy6u-UfXmEbQkmDyzd6yUHtfh4T4maH7vFkYEyXThPamvBQ/s1600/image009.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhINJ84d-7PYqm4v9Q-IiNn_POpIRo5CCCQjPXWLTTPuASPa6h6YZckWgaybtoiZMycMlfi2mqT6Qi45UlRBW50gdLp5p5ULy6u-UfXmEbQkmDyzd6yUHtfh4T4maH7vFkYEyXThPamvBQ/s400/image009.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A complete CPU layout inside a keyboard&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/3275123192028431948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/cpu-inside-keyboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3275123192028431948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/3275123192028431948'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/cpu-inside-keyboard.html' title='CPU inside Keyboard'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmRjD3x4IFDdpnihBi4QKIJnYma0102sUkuysdUMV70Cok-7jVryDaRQTuvwuVfU4QZm_Ka_omvLJl0Hb_7PfDIIwCDQQovT_wWBniZyNB5es3XtcptSr8K89hWiFt3cCpmaj6aa4Fh0E/s72-c/image001.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-5780604835890773638</id><published>2011-03-17T01:08:00.000-07:00</published><updated>2011-03-22T02:08:17.039-07:00</updated><title type='text'>Working with GNURadio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;GNURadio is very easy to work with. It has blocks made for easy use. It consists of about 17 blocks which can be dragged and dropped for making a flowgraph. The flowgraph is the pictorial representation of the work that the user wants to do.&amp;nbsp; Blocks present in GNURadio are shown below in the figure.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeaXbh1NbxYjRXD1LOwfV0vcf6kiAoAuKc2CJMgMVRzaL3r8OUSndwoxdB92AtqnXuYaG8exU-bROGh8J_-d2clTOsNkUzeH_ZjsFUYUT7LkNckMjqgeB5GENSZn9VnLbIP6EqG8-BXE/s1600/gnu.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeaXbh1NbxYjRXD1LOwfV0vcf6kiAoAuKc2CJMgMVRzaL3r8OUSndwoxdB92AtqnXuYaG8exU-bROGh8J_-d2clTOsNkUzeH_ZjsFUYUT7LkNckMjqgeB5GENSZn9VnLbIP6EqG8-BXE/s400/gnu.bmp&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;GNURadio Environment and its blocks&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Now for more understanding of the GNURadio environment, a simple task of adding noise to a streaming signal is described below.This section illustrates the basic manipulations on streaming signals, in either discrete or continuous time, to perform useful operations on those signals in GNURadio.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Addition of noise:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
1. To start with open a new flow graph in GRC.&lt;br /&gt;
2. Now create a flow graph as shown below. For ease of use&amp;nbsp; the categories to which othe blocks used&amp;nbsp; in the flow graph belong are also specified.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEIzPqq9hH6hggy3JQFMfkSvXIuSC-KApfWPgYqr4qKGLpIGL9LhWAVfBvjqfpFYeBDbCEZkXDyeReSjld5oUXBajqjSkm1aGTZqY2HovTWQKE7FyDlgssPzxVYDxyV1hNvl-WOSwRtcU/s1600/adding_noise.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEIzPqq9hH6hggy3JQFMfkSvXIuSC-KApfWPgYqr4qKGLpIGL9LhWAVfBvjqfpFYeBDbCEZkXDyeReSjld5oUXBajqjSkm1aGTZqY2HovTWQKE7FyDlgssPzxVYDxyV1hNvl-WOSwRtcU/s400/adding_noise.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Flowgraph for Adding&amp;nbsp; Noise&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
3. The signal sources and the noise blocks are in the category Sources, Add is in the category Operator and the Scope sink is in the&amp;nbsp; category Graphical sinks .&lt;br /&gt;
4. The properties of the blocks can be changed&amp;nbsp; by double clicking on the blocks for modification as shown below. As is seen, here the output type of both the signals is complex and the waveform type for one signal is Square while&amp;nbsp; the other is a Sine waveform.The other properties like frequency and amplitude can also be changed as required. Similarly the noise type can also be changed from Gaussian to Uniform, Impulse or Laplacian.Here the noise type is Gaussian .&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivABUDoK-s_wOUkYzSwm7sun9y-YnXqT0yMQFIltwfjx3PNCPcbvV3c9aIabr3yDRjrVU1TxU3s2Obi0ZiOpOtXXBY7FeDacy_5HZ6-7bjwWQqKesRZucZhqg0jClv6TP6wlyHHXqv8Q4/s1600/prop_noise.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivABUDoK-s_wOUkYzSwm7sun9y-YnXqT0yMQFIltwfjx3PNCPcbvV3c9aIabr3yDRjrVU1TxU3s2Obi0ZiOpOtXXBY7FeDacy_5HZ6-7bjwWQqKesRZucZhqg0jClv6TP6wlyHHXqv8Q4/s400/prop_noise.png&quot; width=&quot;383&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Properties setting for addition of noise&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
5. Execute the flowgraph from the Build option or by pressing F6. The Scope sink should open. It&amp;nbsp; displays an output as&amp;nbsp; shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlh6hvSh3NFLDCGUrKKe23THdpLK7aclrNHN8JOxm_KfJ9CKH2cIjJMO1F2eoU8IMcLy-qhh2r7IG8FDexcyJ6hBsmVof8XcbYyYtEyzi-uz8USoqINqZQ1nZJ2JrzxnFEBQrlBAjdYk/s1600/output_add_noise.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlh6hvSh3NFLDCGUrKKe23THdpLK7aclrNHN8JOxm_KfJ9CKH2cIjJMO1F2eoU8IMcLy-qhh2r7IG8FDexcyJ6hBsmVof8XcbYyYtEyzi-uz8USoqINqZQ1nZJ2JrzxnFEBQrlBAjdYk/s400/output_add_noise.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Output when noise type is Gaussian.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
6. Modify the flow graph and change the properties of all the blocks to float and also at the same time change the waveform types of the signal sources and execute the flow graph again. For two Constant&amp;nbsp; waveform and for the noise type Uniform , the following output is produced (keeping all other properties the same).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuFrMGHIgOkODUi3mWJ3g8VJXBZDbj2rR9y-qFaA6EQOfFUHWFAZyMlf2tKYN8FKJPP3YgAU4KvhRhP7i5kJVH1_eAyGyoZdvfjlIhaBYR4ixQvtI06r5pDFMiO-W8nIXvGhbPbCJo5Ms/s1600/output_2_add_noise.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuFrMGHIgOkODUi3mWJ3g8VJXBZDbj2rR9y-qFaA6EQOfFUHWFAZyMlf2tKYN8FKJPP3YgAU4KvhRhP7i5kJVH1_eAyGyoZdvfjlIhaBYR4ixQvtI06r5pDFMiO-W8nIXvGhbPbCJo5Ms/s400/output_2_add_noise.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Output when noise type is Uniform.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Next is a flowgragh where correlation of streaming signals using multiplication is described.Correlation or disambiguation refers to any departure of two or more random variables from independence, but most commonly refers to a more specialized type of relationship between mean values.&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Correlation using multiplication:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
1. Open a new flow graph in GRC. &lt;br /&gt;
2. Now create a flow graph as shown below. For ease of use&amp;nbsp; the categories to which the blocks used in the flow graph belong are also specified.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkvRkLHmbKONQHrYkfqaAh31QvyqBrltIBplGzEjiyxtKsSO9CEVrZ-oyB_6yWH80tHlLzG1S4ojE45lfQKUMCGuCA7v00WFoxt-dijjlhFfrw8nA9pHq7VVmads9TVRp6XdVsLZysLQ/s1600/corr_new.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkvRkLHmbKONQHrYkfqaAh31QvyqBrltIBplGzEjiyxtKsSO9CEVrZ-oyB_6yWH80tHlLzG1S4ojE45lfQKUMCGuCA7v00WFoxt-dijjlhFfrw8nA9pHq7VVmads9TVRp6XdVsLZysLQ/s400/corr_new.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Flowgraph for correlation using multiplication.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
3.The signal sources&amp;nbsp; blocks are in the category Sources, Multiply is in the category Operator , the Scope sink and the Number Sink are&amp;nbsp; in the&amp;nbsp; category Graphical Sinks,Interpolating FIR filter is in the category Filters and Throttle is in the category Misc.&lt;br /&gt;
4.The properties of the blocks can be changed&amp;nbsp; by double clicking on the blocks for modification as shown below. As is seen, here the output type of both the signals is float and the waveform type for one signal is Cosine&amp;nbsp; while&amp;nbsp; the other is a Sine waveform.The other properties like frequency and amplitude can also be changed as required.Here the frequencies of the signals are 5 Hz and amplitude being 1. Throttle is basically used as a rate limiting block.The FIR filter is used to integrate the region of interest of the signal (basically a window of size&amp;nbsp; N filled with 1&#39;s as the tap of the FIR filter). &lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPjJFLqHWIbYLYGSUGtxtZ0e5fv1M3Wyl99IFWsp3_6hBUFW9-BdxyT6T8BvGO45zWPTzCEUJDIyLxVG4hxGgf6Bo_0ybmMSrp98VBQsb0LXuEEbnyb6FfEvAciXSR4uZpfhgZ_2wcJ54/s1600/corr_prop.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPjJFLqHWIbYLYGSUGtxtZ0e5fv1M3Wyl99IFWsp3_6hBUFW9-BdxyT6T8BvGO45zWPTzCEUJDIyLxVG4hxGgf6Bo_0ybmMSrp98VBQsb0LXuEEbnyb6FfEvAciXSR4uZpfhgZ_2wcJ54/s400/corr_prop.png&quot; width=&quot;376&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Properties setting for correlation using multiplication.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
5.Execute the flowgraph from the Build option or by pressing F6. The Scope sink should open. It&amp;nbsp; displays an output as&amp;nbsp; shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0RmOiR09OY6IFxTz0FXfghW0j1TtfOtZWSzpbvpO15p-82ZJ8jJNENlkoZcIV0LT6JrhzzsAtWItu0oofcY3iPjZ_ky6JURoDABfZ0h17mWjUcbfKw-KaNzHsbB_R4uj_MEttE9mcvJU/s1600/output_corr.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0RmOiR09OY6IFxTz0FXfghW0j1TtfOtZWSzpbvpO15p-82ZJ8jJNENlkoZcIV0LT6JrhzzsAtWItu0oofcY3iPjZ_ky6JURoDABfZ0h17mWjUcbfKw-KaNzHsbB_R4uj_MEttE9mcvJU/s400/output_corr.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Output when waveform types are Sine and Cosine.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
6.Modify the flow graph and change the properties of all the blocks to complex and also at the same time change the waveform types of the signal sources and execute the flow graph again. For a Triangular and a Square&amp;nbsp; waveform , the following output is produced (keeping all other properties the same). &lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsBuV6EBXBd_j-c2EZAWZIPsSnVMmUThah8EqwO-9Gm_jfkm8ydbXiQZPu1o-L861CRNPHnVbZyd3KrSLmQuSMGFg72Aj7mOSLZLGgOVlVv3hhiVmDWnExfRCX0AtqfL1DgR-36UfphgM/s1600/output_coor_2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsBuV6EBXBd_j-c2EZAWZIPsSnVMmUThah8EqwO-9Gm_jfkm8ydbXiQZPu1o-L861CRNPHnVbZyd3KrSLmQuSMGFg72Aj7mOSLZLGgOVlVv3hhiVmDWnExfRCX0AtqfL1DgR-36UfphgM/s400/output_coor_2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Output when waveform types are Triangular and Sqaure.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/5780604835890773638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/working-with-gnuradio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5780604835890773638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5780604835890773638'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/working-with-gnuradio.html' title='Working with GNURadio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeaXbh1NbxYjRXD1LOwfV0vcf6kiAoAuKc2CJMgMVRzaL3r8OUSndwoxdB92AtqnXuYaG8exU-bROGh8J_-d2clTOsNkUzeH_ZjsFUYUT7LkNckMjqgeB5GENSZn9VnLbIP6EqG8-BXE/s72-c/gnu.bmp" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-5030155527379894062</id><published>2011-03-16T23:17:00.000-07:00</published><updated>2011-03-16T23:21:20.339-07:00</updated><title type='text'>An Introduction to GNURadio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;GNURadio is a Software Defined&amp;nbsp; Radio project that was designed to convert all hardware problems into software problems.GNURadio package is provided with a complete HDTV transmitter and receiver, a spectrum analyzer, an oscilloscope, a multichannel receiver and a wide collection of modulators and demodulators.Its applications are primarily written using the Python programming language, while the supplied, performance-criticGNURadio is a Software Defined&amp;nbsp; Radio project that was designed to convert all hardware problems into software problems.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
GNURadio package is provided with a complete HDTV transmitter and receiver, a spectrum analyzer, an oscilloscope, a multichannel receiver and a wide collection of modulators and demodulators.Its applications are primarily written using the Python programming language, while the supplied, performance-critical signal processing path is implemented in C++ using processor floating point extensions where available. The GNU Radio project created the Universal Software Radio Peripheral (USRP) which is a digital acquisition (DAQ) system. It’s a general purpose motherboard which can host a wide selection of daughter boards, each of which implements a signal processing block found in the GNURadio software package. &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;GNU Radio is licensed under the GNU General Public License (GPL) version  3. All of the code is copyright of the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
Strengths of GNURadio:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol&gt;&lt;li&gt;It can be reconfigured easily.&lt;/li&gt;
&lt;li&gt;It can be easily and rapidly upgraded with newer versions.&lt;/li&gt;
&lt;li&gt;It’s possible to talk and listen to multiple channels at the same time.&lt;/li&gt;
&lt;li&gt;GNURadio package is provided with a complete HDTV transmitter and&amp;nbsp;&amp;nbsp; receiver, a spectrum analyzer, an oscilloscope, a multichannel receiver and a wide collection of modulators and demodulators.&lt;/li&gt;
&lt;/ol&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Weakness of GNURadio:&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&amp;nbsp;GNURadio emphasizes only on the use of USRP hardware.&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;In order to interface a new hardware, we need to create hardware&amp;nbsp; dependent GNURadio specific blocks.&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/5030155527379894062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/introduction-to-gnuradio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5030155527379894062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/5030155527379894062'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/introduction-to-gnuradio.html' title='An Introduction to GNURadio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-6802499974195886612</id><published>2011-03-16T13:13:00.002-07:00</published><updated>2011-11-05T12:19:48.841-07:00</updated><title type='text'>Brainfuck Programming language.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;The brainfuck programming language is an esoteric programming language noted for its extreme minimalism. It is a Turing tarpit, designed to challenge and amuse programmers, and is not suitable for practical use. Its name has been variously bowdlerized, sometimes appearing as brainf***, brainf*ck, brainfsck, b****fuck or BF. The name of the language is generally not capitalized except at the start of a sentence, although it is a proper noun.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj9cs7WGzTl5x6hZHbjG2iwEomgJBqCnSBT9BySS2gv6tdOdRu_1udf_8qiz8UESNlPJvlaS2rDVL7QxSTTI0ygeBUDj-Ssg6LInqXFPYT8lm3pJHX8dTXko50UBQPOLCjOXk0ywzpS7gB/s1600/brainf1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj9cs7WGzTl5x6hZHbjG2iwEomgJBqCnSBT9BySS2gv6tdOdRu_1udf_8qiz8UESNlPJvlaS2rDVL7QxSTTI0ygeBUDj-Ssg6LInqXFPYT8lm3pJHX8dTXko50UBQPOLCjOXk0ywzpS7gB/s1600/brainf1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Brainfuck is created by Urban Muller, whose goal was apparently to create a Turing-complete language for which he could write the smallest compiler ever, for the Amiga OS 2.0. His compiler was 240 bytes in size.&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;A Brainfuck program has an implicit byte pointer, called &quot;the pointer&quot;, which is free to move around within an array of 30000 bytes, initially all set to zero. The pointer itself is initialized to point to the beginning of this array. The Brainfuck programming language consists of eight commands, each of which is represented as a single character.&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;nbsp;&amp;nbsp; Increment the pointer.&lt;br /&gt;&amp;lt;&amp;nbsp;&amp;nbsp; Decrement the pointer.&lt;br /&gt;+&amp;nbsp;&amp;nbsp; Increment the byte at the pointer.&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; Decrement the byte at the pointer.&lt;br /&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; Output the byte at the pointer.&lt;br /&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp; Input a byte and store it in the byte at the pointer.&lt;br /&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp; Jump forward past the matching ] if the byte at the pointer is zero.&lt;br /&gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; Jump backward to the matching [ unless the byte at the pointer is zero.&lt;br /&gt;&lt;br /&gt;The semantics of the Brainfuck commands can also be succinctly expressed in terms of C, as follows (assuming that p has been previously defined as a char*):&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;nbsp;&amp;nbsp; becomes ++p;&lt;br /&gt;&amp;lt;&amp;nbsp;&amp;nbsp; becomes --p;&lt;br /&gt;+&amp;nbsp;&amp;nbsp; becomes ++*p;&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes --*p;&lt;br /&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes putchar(*p);&lt;br /&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes *p = getchar();&lt;br /&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes while (*p) {&lt;br /&gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes }&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The following program prints &quot;Hello World!&quot; and a newline to the screen:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;+++++ +++++&amp;nbsp; initialize counter (cell #0) to 10&lt;br /&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use loop to set the next four cells to 70/100/30/10&lt;br /&gt;&amp;gt; +++++ ++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add 7 to cell #1&lt;br /&gt;&amp;gt; +++++ +++++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add 10 to cell #2&lt;br /&gt;&amp;gt; +++&amp;nbsp;&amp;nbsp; add 3 to cell #3&lt;br /&gt;&amp;gt; +&amp;nbsp;&amp;nbsp; add 1 to cell #4&lt;br /&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; -&amp;nbsp;&amp;nbsp; decrement counter (cell #0)&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;&amp;gt; ++ . print &#39;H&#39;&lt;br /&gt;&amp;gt; + . print &#39;e&#39;&lt;br /&gt;+++++ ++ . print &#39;l&#39;&lt;br /&gt;. print &#39;l&#39;&lt;br /&gt;+++ . print &#39;o&#39;&lt;br /&gt;&amp;gt; ++ . print &#39; &#39;&lt;br /&gt;&amp;lt;&amp;lt; +++++ +++++ +++++ . print &#39;W&#39;&lt;br /&gt;&amp;gt; . print &#39;o&#39;&lt;br /&gt;+++ . print &#39;r&#39;&lt;br /&gt;----- - . print &#39;l&#39;&lt;br /&gt;----- --- . print &#39;d&#39;&lt;br /&gt;&amp;gt; + . print &#39;!&#39;&lt;br /&gt;&amp;gt; . print &#39;\n&#39;&lt;br /&gt;&lt;br /&gt;For readability, this code has been spread across many lines and blanks and comments have been added. Brainfuck ignores all characters except the eight commands +-&amp;lt;&amp;gt;[],. so no special syntax for comments is needed (as long as the comments don&#39;t contain the command characters).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The code could just as well have been written as:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;++++++++++[&amp;gt;+++++++&amp;gt;++++++++++&amp;gt;+++&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;++.&amp;gt;+.+++++++..+++.&amp;gt;++.&amp;lt;&amp;lt;+++++++++++++++.&amp;gt;.+++.------.--------.&amp;gt;+.&amp;gt;.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/6802499974195886612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/brainfuck-programming-language_9332.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/6802499974195886612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/6802499974195886612'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/brainfuck-programming-language_9332.html' title='Brainfuck Programming language.'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj9cs7WGzTl5x6hZHbjG2iwEomgJBqCnSBT9BySS2gv6tdOdRu_1udf_8qiz8UESNlPJvlaS2rDVL7QxSTTI0ygeBUDj-Ssg6LInqXFPYT8lm3pJHX8dTXko50UBQPOLCjOXk0ywzpS7gB/s72-c/brainf1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-6984355139551763588</id><published>2011-03-16T13:06:00.002-07:00</published><updated>2011-11-05T12:20:57.642-07:00</updated><title type='text'>Extend your laptop display to a monitor.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;If you use your laptop as your main computer and if you have a spare  monitor, then you can put your monitor to good use by making it your  Laptop’s secondary monitor. It doesn’t really matter if the second  monitor is a CRT&amp;nbsp; or TFT, both work fine. First, let’s see why you would  want to add a secondary monitor to your laptop.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMUqO9SSTaAhoUWMX-ylqr1V1Pto7cFUS0gvKyxbjVovpqUhJQhX7oBa5g1uSsMkk9dEm7iI880y5lvFQ_tKPvmNSw1n0tpHqZq7LtE5XhhYBuVgbQjpzYnEiXSWDIBCm0jFNT8z76AtCa/s1600/extend1.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMUqO9SSTaAhoUWMX-ylqr1V1Pto7cFUS0gvKyxbjVovpqUhJQhX7oBa5g1uSsMkk9dEm7iI880y5lvFQ_tKPvmNSw1n0tpHqZq7LtE5XhhYBuVgbQjpzYnEiXSWDIBCm0jFNT8z76AtCa/s1600/extend1.jpg&quot; /&gt;&lt;/a&gt; &lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Now lets see how to set up the secondary monitor. Make sure that both yourLaptop and the monitor are switched off. Connect the monitor to your Laptop by connecting it to the VGA or DVI connector, typically found on the rear of your laptop computer. Now switch on your laptop and the monitor. You will notice that initially, only one of the two monitors is activated. You can usually switch between the monitors by pressing the hotkeys in yourlaptop. Normally, it is a combination of the Fn key with another key with an image of a monitor on it (normally found on one of the function keys).&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;To bring on the display on both the monitors you’ll need to adjust your display settings by following these steps:&lt;br /&gt;&lt;br /&gt;1. Right-Click on an empty area on your desktop. On the context menu that pops-up click on Properties and on the resulting ‘Display Properties‘ window, go to the Settings tab.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2hgydD0STofb9KhI5LdLuE4AmXPbCq-2KVmCWu33IrVg0NJ_GcgBeKilYKVE50561_ZjpIaKUdrykkZ9h_RScgHIgX9jzGNPUGUOrLaw9tR3NTkvd9Ot_kM29NFAuj2vytGQdiV6Jit3Z/s1600/extend3.gif&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2hgydD0STofb9KhI5LdLuE4AmXPbCq-2KVmCWu33IrVg0NJ_GcgBeKilYKVE50561_ZjpIaKUdrykkZ9h_RScgHIgX9jzGNPUGUOrLaw9tR3NTkvd9Ot_kM29NFAuj2vytGQdiV6Jit3Z/s1600/extend3.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;2. Click the monitor icon labeled 2, and then select the Extend my Windows desktop onto this monitor checkbox.&lt;br /&gt;3. If necessary, drag the monitor icons so that they are arranged in the same way as the monitors on your desk. Clicking on the Identify button will help you know which monitor is 1 and which monitor is 2.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFYOX8d-m8noaXLYTOdssFEKn2UgM9zBAQseVUCo5_Hb8ihjNyMSwqv8KzXPAy5r32sd83jZIIPMKE5nMbqGrCEVF0NOva_mB04CAAdoV27KT8Oq9qEH2Hx1h4FXlLbyF68-ikeDiIp3u/s1600/extend2.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFYOX8d-m8noaXLYTOdssFEKn2UgM9zBAQseVUCo5_Hb8ihjNyMSwqv8KzXPAy5r32sd83jZIIPMKE5nMbqGrCEVF0NOva_mB04CAAdoV27KT8Oq9qEH2Hx1h4FXlLbyF68-ikeDiIp3u/s1600/extend2.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;4. If need be, change the resolution of your secondary monitor to the most appropriate settings. You can change the resolution of the monitors independently.&lt;br /&gt;5. Click Apply. Windows XP will activate your new monitor.&lt;br /&gt;6. Finaly, click OK.&lt;br /&gt;&lt;br /&gt;Once your monitor is set up, you can use your mouse to grab the title bar of a window and drag it to your new display. Make sure that the window you are trying to drag is not maximised, in which case you will not be able to drag it. To be able to drag it, first double-click on the title bar and then drag it. It may take you a while to get used to working on dual monitors, but once you do, it will forever change the way you work with your computer. Be creative and experiment with the sizing of application windows and what information you can keep in constant view while doing multiple tasks.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/6984355139551763588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/extend-your-laptop-display-to-monitor_5751.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/6984355139551763588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/6984355139551763588'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/extend-your-laptop-display-to-monitor_5751.html' title='Extend your laptop display to a monitor.'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMUqO9SSTaAhoUWMX-ylqr1V1Pto7cFUS0gvKyxbjVovpqUhJQhX7oBa5g1uSsMkk9dEm7iI880y5lvFQ_tKPvmNSw1n0tpHqZq7LtE5XhhYBuVgbQjpzYnEiXSWDIBCm0jFNT8z76AtCa/s72-c/extend1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-4626483963082078825</id><published>2011-03-16T12:58:00.002-07:00</published><updated>2011-11-05T12:22:06.708-07:00</updated><title type='text'>Protect your files</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Do you keep secrets?? Well, most of us do and for that they require a software that would protect the files, folders and drives. Most software’s encrypt the file for protecting it which creates problem as it requires a lot of time to encryption and decryption.&lt;br /&gt;My search was still on when I came across FOLDER LOCK XP, which has the following features:&lt;br /&gt;&lt;br /&gt;• Ability to hide files, folders, or drives from all other users (including the administrator).&lt;br /&gt;• Password protection for files, folders, and drives.&lt;br /&gt;• Unlimited number of objects to protect.&lt;br /&gt;• Access restrictions on your data against local network users as well as Internet users.&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;• Ability to lock your Windows desktop so that users cannot delete, add, or modify the shortcuts and icons on your desktop.&lt;br /&gt;• Password-protected start of Lock Folder XP.&lt;br /&gt;• Ability to managing program from tray.&lt;br /&gt;• Windows Explorer commands for instant folder hiding.&lt;br /&gt;• Automatic protection activation after a set idle time.&lt;br /&gt;• High-level protection.&lt;br /&gt;• High performance rates.&lt;br /&gt;• Multilingual interface.&lt;br /&gt;• Support of FAT, FAT32, and NTFS systems.&lt;br /&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Lock Folder XP does not change the file structure of the data, does not move the protected data, and does not change Windows system files. You cannot lose your files.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn7DvBO17izcGIUQ2oVk17Ljk9tBGcLJOM_gjPv8K8fLtKVI-zGW0bq67xkNaI_3ewP19qAPwdcTAkgoY9zoqE46I_Oo4lcqjj4vA5tz-JMr2zFydOXWhVXqpHVem9BtNsAanZWGOXmgYf/s1600/protect2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn7DvBO17izcGIUQ2oVk17Ljk9tBGcLJOM_gjPv8K8fLtKVI-zGW0bq67xkNaI_3ewP19qAPwdcTAkgoY9zoqE46I_Oo4lcqjj4vA5tz-JMr2zFydOXWhVXqpHVem9BtNsAanZWGOXmgYf/s1600/protect2.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYbNBxdmWEqJ0g45QxNOlnyy39DyoEgBTVi0KAED1jCPILjnL_zcHJRerDECPXrAHzKlk2JW-STBPWh3DRAe1Cs0Ll8vihnBIv8oZcW4Hko0ONTFh8wfTJUatki79yq_E3m5fH6DKtrZ8/s1600/protect1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUYbNBxdmWEqJ0g45QxNOlnyy39DyoEgBTVi0KAED1jCPILjnL_zcHJRerDECPXrAHzKlk2JW-STBPWh3DRAe1Cs0Ll8vihnBIv8oZcW4Hko0ONTFh8wfTJUatki79yq_E3m5fH6DKtrZ8/s1600/protect1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=&quot;http://technocode.co.in/download.aspx&quot;&gt;Download Folder Lock from the download section, search Folder Lock &lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/4626483963082078825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/protect-your-files_7198.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4626483963082078825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/4626483963082078825'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/protect-your-files_7198.html' title='Protect your files'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn7DvBO17izcGIUQ2oVk17Ljk9tBGcLJOM_gjPv8K8fLtKVI-zGW0bq67xkNaI_3ewP19qAPwdcTAkgoY9zoqE46I_Oo4lcqjj4vA5tz-JMr2zFydOXWhVXqpHVem9BtNsAanZWGOXmgYf/s72-c/protect2.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8996377137098508061.post-7006406506941470634</id><published>2011-03-16T12:52:00.002-07:00</published><updated>2011-11-05T12:23:30.348-07:00</updated><title type='text'>Quine: Program that prints itself.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A quine is a program which prints its own code. This means that when the program is run, it must print out precisely those instructions which the programmer wrote as part of the program.&lt;br /&gt;&lt;br /&gt;The idea behind the code is simple, taking language C, we will initialize a char array with the code itself as per the code format. This array will be the format for the printf statement, as we know its syntax is; &lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int printf (const char *format [, argument, ...]);&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&amp;nbsp;The printf statement prints until it encounters a control string which is replaced by the value specified in the argument. printf(quine,10,10,34,quine,34,10,10,10,10,9,10,9,10);&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;Here the format is the array quine, 10,10,34,quine,34,10,10,10,10,9,10,9,10 are all arguments which are suitably replaced with new line(ASCII 10),double quotes (ASCII 34), the array quine itself and tab (ASCII 9).&lt;br /&gt;&lt;br /&gt;Quine can be implemented in any language, the basic technique remains the same. Some may find this easier to do with a file but as far as Quine is considered, no file operations are used.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Sample Code in C:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;char*quine=&quot;#include%c%cchar*quine=%c%s%c;%c%cint&lt;br /&gt;main()%c{%c%cprintf(quine,10,10,34,quine,34,10,10,10,10,9,10,9,10);%c%creturn 0;%c}&quot;;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;printf(quine,10,10,34,quine,34,10,10,10,10,9,10,9,10);&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Output:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVnWpF5DraVHXzckL5J7qMC8RwS030vDyjNCzBZVdvOYTWDI1-bSS9yamksGz7eyJhMBoPvnEVw-SvitkdrkHTCv-l1JwTMNbzgtn2cKWL4cxUL7xVqZJidw3Psgkav_oroKV1m3-qUOi-/s1600/quine_img.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVnWpF5DraVHXzckL5J7qMC8RwS030vDyjNCzBZVdvOYTWDI1-bSS9yamksGz7eyJhMBoPvnEVw-SvitkdrkHTCv-l1JwTMNbzgtn2cKWL4cxUL7xVqZJidw3Psgkav_oroKV1m3-qUOi-/s1600/quine_img.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://weissalissa.blogspot.com/feeds/7006406506941470634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://weissalissa.blogspot.com/2011/03/quine-program-that-prints-itself_9902.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/7006406506941470634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8996377137098508061/posts/default/7006406506941470634'/><link rel='alternate' type='text/html' href='http://weissalissa.blogspot.com/2011/03/quine-program-that-prints-itself_9902.html' title='Quine: Program that prints itself.'/><author><name>Wadix Group</name><uri>http://www.blogger.com/profile/07640049103928220247</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVnWpF5DraVHXzckL5J7qMC8RwS030vDyjNCzBZVdvOYTWDI1-bSS9yamksGz7eyJhMBoPvnEVw-SvitkdrkHTCv-l1JwTMNbzgtn2cKWL4cxUL7xVqZJidw3Psgkav_oroKV1m3-qUOi-/s72-c/quine_img.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>