<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Basic password checker with uart</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/105809/basic-password-checker-with-uart</link><description>Hello, im trying to figure out how to implement basic password checking with uart(using zephyrrtos, but i think thats not important) so the problem is probably with data frames. 
 It usually works, here are my terminal logs: &amp;gt; admin Received password</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 27 Nov 2023 14:24:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/105809/basic-password-checker-with-uart" /><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/457595?ContentTypeID=1</link><pubDate>Mon, 27 Nov 2023 14:24:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e42c6c3-4401-49fc-bc80-5f167a7fd9ef</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>[quote user="Dzolo2k1"]with all the respects I dont know a bit of whats goin on in this +1k lines of code.[/quote]
&lt;p&gt;Yea, it is unfortunate that samples go like this. Alas, with Bluetooth we need a lot of lines to show off the things.&lt;/p&gt;
[quote user="Dzolo2k1"] guess its time to move on and leave this exercise. There are too many connections with lines of code i dont get. [/quote]
&lt;p&gt;Fair enough. For a last tip, in case you return to&amp;nbsp; this, I can point you to the lines I refer to:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/8f28ba57da4c922ca36af81d0c2b27e18264d2ee/samples/bluetooth/peripheral_uart/src/main.c#L129-L187"&gt;https://github.com/nrfconnect/sdk-nrf/blob/8f28ba57da4c922ca36af81d0c2b27e18264d2ee/samples/bluetooth/peripheral_uart/src/main.c#L129-L187&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/457432?ContentTypeID=1</link><pubDate>Sun, 26 Nov 2023 18:40:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:04211cb7-c36c-47ec-8f02-df8a052c4f63</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;with all the respects I dont know a bit of whats goin on in this +1k lines of code. I guess its time to move on and leave this exercise. There are too many connections with lines of code i dont get. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/457394?ContentTypeID=1</link><pubDate>Fri, 24 Nov 2023 21:24:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:558d7702-0684-4972-bd38-272b68d7d916</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;Oh cuz u have to use other terminal i use the one from nrf toolchain&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/457349?ContentTypeID=1</link><pubDate>Fri, 24 Nov 2023 14:02:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2328c36b-8438-4ed7-8209-1d61f08e563a</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;I see that the &lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/15399652272915515c7c6f08354875733214add8/samples/bluetooth/peripheral_uart/src/main.c#L118C14-L118C14"&gt;BLE peripheral uart sample&lt;/a&gt; uses a fifo buffer to contain the data between the callbacks. Have a look at its receiving function in general, does it look similar to yours?&lt;/p&gt;
[quote user="Dzolo2k1"]&lt;a href="https://github.com/Dzolowski/ZephyrNRFBasics/tree/main/SecondEx"&gt;https://github.com/Dzolowski/ZephyrNRFBasics/tree/main/SecondEx&lt;/a&gt;&amp;nbsp;[/quote]
&lt;p&gt;Is this up to date? When I try it, it will detect every single keypress I do, which seems odd.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456951?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2023 14:05:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af3f948d-92dc-44a7-bbab-52370624a469</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;So i know about DevAcademy, and this code was based on this sample, I just wanted to expand this exercise to my own idea- changing blinking diodes based on offset to password checking. I know that the problem might be my skill issue with C - im self taught, and i might not have knowledge about buffers in advanced/semi-advanced using them. So in this moment I just want to know why it doesnt work for future projects.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Because lets look at this step by step:&lt;br /&gt;-allocating memory so it is on heap not in the array on stack(that was my previous code and it wasnt working too)&lt;br /&gt;-checking if there is \n \r anywhere in my buffer if there is do not procced it into received_password.&lt;br /&gt;- null termination&amp;nbsp;&lt;br /&gt;- clearing memory and index.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I have no clue why it doesnt work and why there is still overflow if the buff size is dunno 100 and my allocated memory is len+1&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Everytime i debug it some letters just stay in the register and I can clearly see this in my terminal answers like dmin etc.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Fun fact nr2- my string even when im doing free(allocatedmemory) is still untouched according to what i see in debugger variables.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456891?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2023 11:39:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17211290-800f-4b1b-a471-97039b568c9b</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;We have a good exercise on UART over at DevAcademy. I suggest that you check that out:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-4-serial-communication-uart/"&gt;https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-4-serial-communication-uart/&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;After going through that, let me know if you still have the same questions, and I will have a look to see if I can figure out how to do it.&lt;/p&gt;
&lt;p&gt;By the way, we have several samples for UART. One of the ones which may be relevant for you, even though it may not seem so, is the &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/peripheral_uart/README.html"&gt;Bluetooth: Peripheral UART &lt;/a&gt;sample. This one sends strings on enter I believe, so you can have a look at how it does stuff.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456795?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2023 23:15:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1da2541-48ca-4c92-addf-53403c0f638d</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;+ funfact, when im trying to type password too fast in terminal program stops working&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456790?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2023 22:52:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd0f8fc9-4d65-48d7-9daa-9d67b124cf3e</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;It still does the same whenever i click enter i get double answer, and still my function shows overflow. God damn it :( Im starting to think that the code is not the problem but UART API is just not for strings. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456756?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2023 16:28:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f39485e4-4fad-4c7a-a9ab-b6b4f0ee404f</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;So a classic problem of not completing the buffer by checking for a delimiter before processing. Typical fix would be to simply wait for the last expected character, cr or lf probably, before processing the response buffer.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// Indication that end-of-packet delimiter has been found
static bool mResponsePacketReadyToProcess = false;

    // Copy data into a separate buffer, excluding newline characters
    for (int i = 0; i &amp;lt; evt-&amp;gt;data.rx.len; ++i)
    {
        if (evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset + i] != &amp;#39;\r&amp;#39; &amp;amp;&amp;amp; evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset + i] != &amp;#39;\n&amp;#39;)
        {
            received_line[line_index++] = evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset + i];
        }
        // Check end-of-packet delimiter, assume lf ==&amp;#39;/n&amp;#39; for now
        if (evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset + i] == &amp;#39;\n&amp;#39;)
        {
            mResponsePacketReadyToProcess = true;
        }
    }

 // Only process the buffer when the entire string has been received
 if (mResponsePacketReadyToProcess)
 {
    mResponsePacketReadyToProcess = false;
    // Null-terminate the string
    received_line[line_index] = &amp;#39;\0&amp;#39;;
    printk(&amp;quot;Received line: %s\n&amp;quot;, received_line);
    // Process the received line as needed&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456645?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2023 11:26:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:23ba5e4b-2569-4e19-af36-98f82cd65750</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;&lt;a id="" href="https://github.com/Dzolowski/ZephyrNRFBasics/tree/main/SecondEx"&gt;https://github.com/Dzolowski/ZephyrNRFBasics/tree/main/SecondEx&lt;/a&gt;&amp;nbsp;thats the whole code,&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456644?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2023 11:25:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41a16e48-2d92-4e3d-8fdc-d0fc6d344981</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;Oh its uart api, im still a newbie so i dont get all the questions :D And im using terminal from nrf toolchain cuz vsc sends only 1 char without pressing enter, if thats the case&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456548?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 20:27:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c304a4bb-f2d5-4bd8-9c34-3effed44f4fb</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Ah, no I mean where does the data originate? Is that an incoming BLE packet or is the buffer populated by (say) a serial uart? Both can have issues, depending on the originator particularly if that is a person. X-25 protocol, for example, can send bytes as they are typed over BLE (unlikely use case though)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456547?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 19:59:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82240c0b-e7f3-44cc-a13d-7a74a673acbd</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;I guess its just&lt;span style="color:#000000;"&gt; evt-&amp;gt;data.rx.buf[evt-&amp;gt;data.rx.offset + i] its from data.rx.buf&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456541?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 19:09:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ac7d9b4-5b63-4627-b35d-654e14d18479</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Maybe a distraction, but where does the query come from? I ask since the nRF52 is effectively expecting a packet of characters, not single periodic characters. Termite on a PC will send &amp;quot;packets&amp;quot; typically when the Enter key is hit, but similar programs on a MAC (for example) will transit each key as it is hit so the stream is &amp;#39;a&amp;#39; gap &amp;#39;d&amp;#39; gap instead of &amp;quot;admin&amp;quot; gap.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456539?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 19:05:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:227f6aa9-2e7f-4eab-91ed-ffe9e8381cf9</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:&amp;#39;Droid Sans Mono&amp;#39;, &amp;#39;monospace&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;// There is rest of code i didnt send in previous answer&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;printk&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;Received line: &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;%s&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\n&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;, &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#6a9955;"&gt;// Process the received line as needed&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#6a9955;"&gt;// (e.g., check if it equals &amp;quot;admin&amp;quot; and toggle LEDs)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;if&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; (&lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;strcmp&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;, &lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;admin&amp;quot;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;) &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;==&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#b5cea8;"&gt;0&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;gpio_pin_toggle_dt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;led0&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;gpio_pin_toggle_dt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;led1&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;gpio_pin_toggle_dt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;led2&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;k_msleep&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;SLEEP_TIME_MS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;else&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;printk&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;Wrong input&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\n&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;line_index&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#b5cea8;"&gt;0&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;free&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456537?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 19:04:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:05a12614-30fe-4d31-ae6a-19b83cdf56ef</guid><dc:creator>Dzolo2k1</dc:creator><description>&lt;p&gt;I&amp;#39;ve changed my code a bit so it searches for /n /r in for but it still does the same. Len is 7/8 or 3/2 bytes depends :)&lt;/p&gt;
&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:&amp;#39;Droid Sans Mono&amp;#39;, &amp;#39;monospace&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;char&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;*&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;malloc&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;len&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;+&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#b5cea8;"&gt;1&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;span style="color:#6a9955;"&gt; // +1 na znak null-termination&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;printk&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;Received &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;%d&lt;/span&gt;&lt;span style="color:#ce9178;"&gt; bytes&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\n&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;, &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;len&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;// Kopiowanie danych do received_line&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;// Po przetworzeniu danych&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#569cd6;"&gt;int&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;line_index&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#b5cea8;"&gt;0&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#6a9955;"&gt;// Copy data into a separate buffer, excluding newline characters&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;for&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; (&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;int&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#b5cea8;"&gt;0&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;len&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;++&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#c586c0;"&gt;if&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; (&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;buf&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;[&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;offset&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;+&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;] &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;!=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\r&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;buf&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;[&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;offset&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;+&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;] &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;!=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\n&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;[&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;line_index&lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;++&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;] &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;buf&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;[&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;evt&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;data&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;rx&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;.&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;offset&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;+&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;i&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#6a9955;"&gt;// Null-terminate the string&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;[&lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;line_index&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;] &lt;/span&gt;&lt;span style="color:#d4d4d4;"&gt;=&lt;/span&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\0&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#cccccc;"&gt; &lt;/span&gt;&lt;span style="color:#dcdcaa;"&gt;printk&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;(&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;Received line: &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;%s&lt;/span&gt;&lt;span style="color:#d7ba7d;"&gt;\n&lt;/span&gt;&lt;span style="color:#ce9178;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;, &lt;/span&gt;&lt;span style="color:#9cdcfe;"&gt;received_line&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Basic password checker with uart</title><link>https://devzone.nordicsemi.com/thread/456396?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2023 12:38:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:977658e3-132a-4e53-9103-4a76072df23c</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Can you print &amp;quot;&lt;span style="color:rgba(156, 220, 254, 1);"&gt;evt&lt;/span&gt;&lt;span style="color:rgba(204, 204, 204, 1);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgba(156, 220, 254, 1);"&gt;data&lt;/span&gt;&lt;span style="color:rgba(204, 204, 204, 1);"&gt;.&lt;/span&gt;&lt;span style="color:rgba(156, 220, 254, 1);"&gt;rx&lt;/span&gt;&lt;span style="color:rgba(204, 204, 204, 1);"&gt;.&lt;/span&gt;&lt;span style="color:rgba(156, 220, 254, 1);"&gt;len&lt;/span&gt;&amp;quot;?&lt;/p&gt;
&lt;p&gt;Where do your UART code come from? Do you base it on a sample?&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>