¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io
Date

Re: Parsing a string

 

Mike

I like the method Dave used in his DLI Relay Flow. ?The response is an eight-digit number, with 0 or 1 in each digit, depending on the relay status. ? Dave has a function to do a "logical and" for each digit to determine and outputs a true or false. ?Would this work for you? ? For example, if the second digit is 1, then the function "1 & 2" is true, because the binary of the second digit is 2**1 = 2 and 2 logical 2 is true. ?Likewise, for the third digit, 2**2 is 4 so the logical comparator is 4.

Alan. WA9WUD



And here is the function. ?Of course,var onmsg = { payload: msg.payload,topic:msg.topic };
var offmsg = { payload: msg.payload,topic:msg.topic };

=========================
?
var msg1 = { payload: msg.payload,topic:msg.topic };
var msg2 = { payload: msg.payload,topic:msg.topic };
var msg3 = { payload: msg.payload,topic:msg.topic };
var msg4 = { payload: msg.payload,topic:msg.topic };
var msg5 = { payload: msg.payload,topic:msg.topic };
var msg6 = { payload: msg.payload,topic:msg.topic };
var msg7 = { payload: msg.payload,topic:msg.topic };
var msg8 = { payload: msg.payload,topic:msg.topic };
?
?
//msg.payload=true;
onmsg.payload=true;
offmsg.payload=false;
?
if (msg.payload & ? 1) msg1.payload=true; else msg1.payload=false;
if (msg.payload & ? 2) msg2.payload=true; else msg2.payload=false;
if (msg.payload & ? 4) msg3.payload=true; else msg3.payload=false;
if (msg.payload & ? 8) msg4.payload=true; else msg4.payload=false;
if (msg.payload & ?16) msg5.payload=true; else msg5.payload=false;
if (msg.payload & ?32) msg6.payload=true; else msg6.payload=false;
if (msg.payload & ?64) msg7.payload=true; else msg7.payload=false;
if (msg.payload & 128) msg8.payload=true; else msg8.payload=false;
?
?
?
return [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8];?you can download everything form the files section.



Re: Parsing a string

 
Edited

Here you go...I cleaned it up...? edit...apparently not enough....try this...I used an inject of 10101010

var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[7]);
?
?
if (msg.out0 === 1){
msg1 = {topic: 'relay1',payload:'true'};
} else?
msg1 = {topic: 'relay1',payload:'false'};
?
if (msg.out1 === 1){
msg2 = {topic: 'relay2',payload:'true'};
} else
msg2 = {topic: 'relay2',payload:'false'};
?
if (msg.out2 === 1) {
msg3 = {topic: 'relay3',payload:'true'};
} else
msg3 = {topic: 'relay3',payload:'false'};
?
if (msg.out3 === 1) {
msg4 = {topic: 'relay4',payload:'true'};
} else
msg4 = {topic: 'relay4',payload:'false'};
?
if (msg.out4 === 1) {
msg5 = {topic: 'relay5',payload:'true'};? ??
} else
msg5 = {topic: 'relay5',payload:'false'};
?
if (msg.out5 === 1) {
msg6 = {topic: 'relay6',payload:'true'};
} else
msg6 = {topic: 'relay6',payload:'false'};
?
if (msg.out6 === 1) {
msg7 = {topic: 'relay7',payload:'true'};? ??
} else
msg7 = {topic: 'relay7',payload:'true'};
?
if (msg.out7 === 1) {
msg8 = {topic: 'relay8',payload:'true'};
} else
msg8 = {topic: 'relay8',payload:'false'};
?
node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
?
return;
?
?




Re: Parsing a string

 

¿ªÔÆÌåÓý

BTW, this can all be done in one function node using Mick¡¯s example then looking for each msg.out to either be 0 or 1 and setting msg.out to false or true. (if/else)

?

More than one way to get to the desired output.

?

Dave wo2x

?

From: [email protected] <[email protected]> On Behalf Of Mick - W8BE
Sent: Friday, January 29, 2021 3:01 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Here is a function to split the input and output a msg for each bit.? ?I used a string of 10000000 as the inject

?

?

The output gives you the msg.payload and msg.topic

?

Here is the function.

?

var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[6]);
msg.out8 = parseInt(output[7]);
msg.out9 = parseInt(output[8]);
msg1 = {topic: 'Bit 1',payload:msg.out0};
msg2 = {topic: 'Bit 2',payload:msg.out1};
msg3 = {topic: 'Bit 3',payload:msg.out2};
msg4 = {topic: 'Bit 4',payload:msg.out3};
msg5 = {topic: 'Bit 5',payload:msg.out4};
msg6 = {topic: 'Bit 6',payload:msg.out5};
msg7 = {topic: 'Bit 7',payload:msg.out6};
msg8 = {topci: 'Bit 8',payload:msg.out7};
msg9 = {topic: 'Bit 9',payload:msg.out8};

node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
node.send(msg9);

return;

You could then run this into a switch node for further?processing or just modify it by creating a var instead of msg and then process it in the function.?

?

On Fri, Jan 29, 2021 at 1:53 PM David De Coons wo2x <RocketNJ@...> wrote:

Neal beat me to it.

?

Split/Switch is the way to go. Easy.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of Neal Pollack
Sent: Friday, January 29, 2021 1:38 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Another way to split the outputs;

?

?

On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:

I have a workable solution

?

(Dave, no driving and texting)? :)

?

Take the string and convert it to csv.? I can manage the rest.??

?

But, I will like to see your idea.

?

73

?

?

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:

I¡¯ve got a solution. I should be home in 1/2 hr.

?

Dave wo2x

?

?

Sent from my waxed string and tin cans.?

?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?

Hi Neal

?

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

?

Mike?

?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:

Mike:

?

I don't have the actual answer, but I *think* I understand how to describe what you want:

?

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

?

Neal

?

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:

Hi All

?

I have a string I need to parse of 8 binary values being returned from a relay board

?

10000000

?

What is the best way to parse out the status of each of these relays???

?

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

?

thoughts?

?

Mike va3mw

?


Re: Parsing a string

 

¿ªÔÆÌåÓý

Mick has an extra msg.out. Only need 0 ¨C 7.

?

Here¡¯s a flow using split/switch/function to give false (0) or true (1) for each bit. First bit is top function node and last bit is bottom. Then feed into GPIO node.

?

Dave wo2x

?

[

??? {

??????? "id": "4e7a77e9.defc48",

??????? "type": "tab",

??????? "label": "Flow 2",

??????? "disabled": false,

??????? "info": ""

??? },

??? {

??????? "id": "cd5a6a57.fb77d8",

??????? "type": "inject",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "props": [

??????????? {

??????????????? "p": "payload"

??????????? }

??????? ],

??????? "repeat": "",

??????? "crontab": "",

??????? "once": false,

??????? "onceDelay": 0.1,

??????? "topic": "",

??????? "payload": "01010101",

??????? "payloadType": "str",

??????? "x": 300,

??????? "y": 220,

??????? "wires": [

??????????? [

??????????????? "fe4dc4d6.037c98"

??????????? ]

??????? ]

??? },

??? {

??????? "id": "dd5611e4.15976",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 160,

??????? "wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "3ed35afa.0a1936",

??????? "type": "switch",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "property": "parts.index",

??????? "propertyType": "msg",

??????? "rules": [

??????????? {

??????????????? "t": "eq",

??????????????? "v": "0",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "1",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "2",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

???????? ???????"v": "3",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "4",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "5",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "6",

??????????????? "vt": "num"

??????????? },

??????????? {

??????????????? "t": "eq",

??????????????? "v": "7",

??????????????? "vt": "num"

??????????? }

??????? ],

??????? "checkall": "true",

??????? "repair": false,

??????? "outputs": 8,

??????? "x": 600,

??????? "y": 280,

??????? "wires": [

??????????? [

??????????????? "dd5611e4.15976"

??????????? ],

?????????? ?[

??????????????? "b656e3bc.3661f"

??????????? ],

??????????? [

??????????????? "b3ccafd3.6efc2"

??????????? ],

??????????? [

??????????????? "65512697.166d98"

??????????? ],

??????????? [

??????????????? "e6171e3d.e5f4d"

??????????? ],

??????????? [

??????????????? "96d14c2b.9798e"

??????????? ],

??????????? [

??????????????? "ccbba3c4.d57db"

??????????? ],

??????????? [

??????????????? "4916a72a.09bbc8"

??????????? ]

??????? ]

??? },

??? {

??????? "id": "fe4dc4d6.037c98",

??????? "type": "split",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "splt": "1",

??????? "spltType": "len",

??????? "arraySplt": 1,

??????? "arraySpltType": "len",

??????? "stream": false,

??????? "addname": "",

??????? "x": 450,

??????? "y": 220,

???? ???"wires": [

??????????? [

??????????????? "3ed35afa.0a1936"

??????????? ]

??????? ]

??? },

??? {

??????? "id": "b656e3bc.3661f",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 200,

??? ????"wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "b3ccafd3.6efc2",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 240,

??????? "wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "65512697.166d98",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 280,

??????? "wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "e6171e3d.e5f4d",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 320,

??????? "wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "96d14c2b.9798e",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 360,

??????? "wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "ccbba3c4.d57db",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 400,

??? ????"wires": [

??????????? []

??????? ]

??? },

??? {

??????? "id": "4916a72a.09bbc8",

??????? "type": "function",

??????? "z": "4e7a77e9.defc48",

??????? "name": "",

??????? "func": "if (msg.payload == \"1\") {\n??? msg.payload = \"true\";\n} else msg.payload = \"false\";\n\nreturn msg;",

??????? "outputs": 1,

??????? "noerr": 0,

??????? "initialize": "",

??????? "finalize": "",

??????? "x": 760,

??????? "y": 440,

??????? "wires": [

??????????? []

??????? ]

??? }

]

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

From: [email protected] <[email protected]> On Behalf Of Mick - W8BE
Sent: Friday, January 29, 2021 3:01 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Here is a function to split the input and output a msg for each bit.? ?I used a string of 10000000 as the inject

?

?

The output gives you the msg.payload and msg.topic

?

Here is the function.

?

var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[6]);
msg.out8 = parseInt(output[7]);
msg.out9 = parseInt(output[8]);
msg1 = {topic: 'Bit 1',payload:msg.out0};
msg2 = {topic: 'Bit 2',payload:msg.out1};
msg3 = {topic: 'Bit 3',payload:msg.out2};
msg4 = {topic: 'Bit 4',payload:msg.out3};
msg5 = {topic: 'Bit 5',payload:msg.out4};
msg6 = {topic: 'Bit 6',payload:msg.out5};
msg7 = {topic: 'Bit 7',payload:msg.out6};
msg8 = {topci: 'Bit 8',payload:msg.out7};
msg9 = {topic: 'Bit 9',payload:msg.out8};

node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
node.send(msg9);

return;

You could then run this into a switch node for further?processing or just modify it by creating a var instead of msg and then process it in the function.?

?

On Fri, Jan 29, 2021 at 1:53 PM David De Coons wo2x <RocketNJ@...> wrote:

Neal beat me to it.

?

Split/Switch is the way to go. Easy.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of Neal Pollack
Sent: Friday, January 29, 2021 1:38 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Another way to split the outputs;

?

?

On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:

I have a workable solution

?

(Dave, no driving and texting)? :)

?

Take the string and convert it to csv.? I can manage the rest.??

?

But, I will like to see your idea.

?

73

?

?

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:

I¡¯ve got a solution. I should be home in 1/2 hr.

?

Dave wo2x

?

?

Sent from my waxed string and tin cans.?

?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?

Hi Neal

?

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

?

Mike?

?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:

Mike:

?

I don't have the actual answer, but I *think* I understand how to describe what you want:

?

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

?

Neal

?

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:

Hi All

?

I have a string I need to parse of 8 binary values being returned from a relay board

?

10000000

?

What is the best way to parse out the status of each of these relays???

?

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

?

thoughts?

?

Mike va3mw

?


Re: Parsing a string

 

Here is a function to split the input and output a msg for each bit.? ?I used a string of 10000000 as the inject

image.png

The output gives you the msg.payload and msg.topic
image.png

Here is the function.

var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[6]);
msg.out8 = parseInt(output[7]);
msg.out9 = parseInt(output[8]);
msg1 = {topic: 'Bit 1',payload:msg.out0};
msg2 = {topic: 'Bit 2',payload:msg.out1};
msg3 = {topic: 'Bit 3',payload:msg.out2};
msg4 = {topic: 'Bit 4',payload:msg.out3};
msg5 = {topic: 'Bit 5',payload:msg.out4};
msg6 = {topic: 'Bit 6',payload:msg.out5};
msg7 = {topic: 'Bit 7',payload:msg.out6};
msg8 = {topci: 'Bit 8',payload:msg.out7};
msg9 = {topic: 'Bit 9',payload:msg.out8};

node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
node.send(msg9);

return;

You could then run this into a switch node for further?processing or just modify it by creating a var instead of msg and then process it in the function.?

On Fri, Jan 29, 2021 at 1:53 PM David De Coons wo2x <RocketNJ@...> wrote:

Neal beat me to it.

?

Split/Switch is the way to go. Easy.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of Neal Pollack
Sent: Friday, January 29, 2021 1:38 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Another way to split the outputs;

?

?

On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:

I have a workable solution

?

(Dave, no driving and texting)? :)

?

Take the string and convert it to csv.? I can manage the rest.??

?

But, I will like to see your idea.

?

73

?

?

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:

I¡¯ve got a solution. I should be home in 1/2 hr.

?

Dave wo2x

?

?

Sent from my waxed string and tin cans.?



On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?

Hi Neal

?

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

?

Mike?

?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:

Mike:

?

I don't have the actual answer, but I *think* I understand how to describe what you want:

?

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

?

Neal

?

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:

Hi All

?

I have a string I need to parse of 8 binary values being returned from a relay board

?

10000000

?

What is the best way to parse out the status of each of these relays???

?

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

?

thoughts?

?

Mike va3mw

?


Re: Parsing a string

 

Dave, Neal

I'm close, but if I follow web instructions, I am having an issue turning that into a true or false.? ??

I'm getting 'undefined' on the exit of the switch node.

Mike?

image.png


On Fri, Jan 29, 2021 at 1:53 PM David De Coons wo2x <RocketNJ@...> wrote:

Neal beat me to it.

?

Split/Switch is the way to go. Easy.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of Neal Pollack
Sent: Friday, January 29, 2021 1:38 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Another way to split the outputs;

?

?

On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:

I have a workable solution

?

(Dave, no driving and texting)? :)

?

Take the string and convert it to csv.? I can manage the rest.??

?

But, I will like to see your idea.

?

73

?

?

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:

I¡¯ve got a solution. I should be home in 1/2 hr.

?

Dave wo2x

?

?

Sent from my waxed string and tin cans.?



On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?

Hi Neal

?

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

?

Mike?

?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:

Mike:

?

I don't have the actual answer, but I *think* I understand how to describe what you want:

?

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

?

Neal

?

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:

Hi All

?

I have a string I need to parse of 8 binary values being returned from a relay board

?

10000000

?

What is the best way to parse out the status of each of these relays???

?

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

?

thoughts?

?

Mike va3mw

?


Re: Parsing a string

 

¿ªÔÆÌåÓý

Neal beat me to it.

?

Split/Switch is the way to go. Easy.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of Neal Pollack
Sent: Friday, January 29, 2021 1:38 PM
To: [email protected]
Subject: Re: [nodered-hamradio] Parsing a string

?

Another way to split the outputs;

?

?

On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:

I have a workable solution

?

(Dave, no driving and texting)? :)

?

Take the string and convert it to csv.? I can manage the rest.??

?

But, I will like to see your idea.

?

73

?

?

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:

I¡¯ve got a solution. I should be home in 1/2 hr.

?

Dave wo2x

?

?

Sent from my waxed string and tin cans.?



On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?

Hi Neal

?

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

?

Mike?

?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:

Mike:

?

I don't have the actual answer, but I *think* I understand how to describe what you want:

?

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

?

Neal

?

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:

Hi All

?

I have a string I need to parse of 8 binary values being returned from a relay board

?

10000000

?

What is the best way to parse out the status of each of these relays???

?

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

?

thoughts?

?

Mike va3mw

?


Re: Parsing a string

 

Perfect!??

You should see the mess I just glued together! :)

On Fri, Jan 29, 2021 at 1:38 PM Neal Pollack <nealix@...> wrote:
Another way to split the outputs;



On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:
I have a workable solution

(Dave, no driving and texting)? :)

Take the string and convert it to csv.? I can manage the rest.??

But, I will like to see your idea.

73

image.png

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:
I¡¯ve got a solution. I should be home in 1/2 hr.

Dave wo2x


Sent from my waxed string and tin cans.?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?
Hi Neal

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

Mike?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

Another way to split the outputs;



On Fri, Jan 29, 2021 at 10:24 AM Michael Walker <va3mw@...> wrote:
I have a workable solution

(Dave, no driving and texting)? :)

Take the string and convert it to csv.? I can manage the rest.??

But, I will like to see your idea.

73

image.png

On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:
I¡¯ve got a solution. I should be home in 1/2 hr.

Dave wo2x


Sent from my waxed string and tin cans.?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?
Hi Neal

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

Mike?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

Hi Mike

I am using that, but I am not able to figure out the actual verb to use to break it out.

Mike va3mw


On Fri, Jan 29, 2021 at 1:36 PM Mike Morneau <ve3mic@...> wrote:
Hi Mike.
Haven't? used it myself, but have you considered node-red-contrib-string ?
?


Re: Parsing a string

Mike Morneau
 

Hi Mike.
Haven't? used it myself, but have you considered node-red-contrib-string ?
?


Re: Parsing a string

 

I have a workable solution

(Dave, no driving and texting)? :)

Take the string and convert it to csv.? I can manage the rest.??

But, I will like to see your idea.

73

image.png


On Fri, Jan 29, 2021 at 1:17 PM David De Coons wo2x <RocketNJ@...> wrote:
I¡¯ve got a solution. I should be home in 1/2 hr.

Dave wo2x


Sent from my waxed string and tin cans.?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?
Hi Neal

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

Mike?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

Mike:

Have you taken a look at the bit unloader node?? Would this do what you wish?


Neal


On Fri, Jan 29, 2021 at 10:09 AM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

¿ªÔÆÌåÓý

I¡¯ve got a solution. I should be home in 1/2 hr.

Dave wo2x


Sent from my waxed string and tin cans.?

On Jan 29, 2021, at 1:11 PM, Michael Walker <va3mw@...> wrote:

?
Hi Neal

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

Mike?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

Hi Neal

Yes, that is the status of 8 relays that I need to break out so I can build an LED panel (so to speak)

Mike?

On Fri, Jan 29, 2021 at 1:09 PM Neal Pollack <nealix@...> wrote:
Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: Parsing a string

 

Mike:

I don't have the actual answer, but I *think* I understand how to describe what you want:

Given a binary string of 1's and 0's such as, for example, 10010110 , parse out each digit position, and assign?each digit to
a separate boolean variable name set to 1 or 0.? ? Is that what?you're looking for?

Neal

On Fri, Jan 29, 2021 at 9:52 AM Michael Walker <va3mw@...> wrote:
Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Parsing a string

 

Hi All

I have a string I need to parse of 8 binary values being returned from a relay board

10000000

What is the best way to parse out the status of each of these relays???

I looked at 'string' but I can't see a method that allows me to pull the boolean out 1 at a time.

thoughts?

Mike va3mw


Re: INA-219 Node Fixed/Updated, no longer requires downgrade to Node.js v10

 

¿ªÔÆÌåÓý

Thanks Neal. I am going to spend some time updating the Groups.io site tomorrow including fixing the order of FRStack install in the WiKi.?

There are other node updates I have noticed also.?

73
Dave wo2x

Sent from my waxed string and tin cans.?

On Jan 28, 2021, at 10:48 PM, Neal Pollack <nealix@...> wrote:

?

Dave:

We can update the note in the Forum Wiki, if you had one there.? ?My bug report last month prompted the maintainer of the INA-219 node to fix the bug.? So now, you can do a fresh install of the current Raspberry Pi OS and Node Red, and the INA-219 node should agree to install, for those who use it.? You can see the details at the link below.

REF:??

Cheers,

Neal
N6YFM


INA-219 Node Fixed/Updated, no longer requires downgrade to Node.js v10

 
Edited

Dave:

We can update the note in the Forum Wiki, if you had one there.? ?My bug report last month prompted the maintainer of the INA-219 node to fix the bug.? So now, you can do a fresh install of the current Raspberry Pi OS and Node Red, and the INA-219 node should agree to install, for those who use it.? You can see the details at the link below.

REF:??
Summary:??This node WILL NOT install if your system is using Node.js v12.x or higher.
So if you did a fresh install of a raspberry pi OS in 2020 or later, you will need to roll back
the Node.js portion to 10.x? [NOW FIXED according to the maintainer.]


Cheers,

Neal
N6YFM


Re: Getting started with Node Red

 

¿ªÔÆÌåÓý

Thanks for the feedback Fred.

?

I have to admit, I do not know JS. Everything I have done in Node Red I have been able to figure out or learn from Google searches and loading example flows from different sites I found using Google.

?

It is really a 3 step process in creating a flow:

  • Getting the data into Node Red
  • Manipulating the data into format for viewing
  • Laying out the dashboard to display data

?

There are tutorials on using the Raspberry OS via telnet (terminal) and/or VNC or local desktop to Pi (monitor keyboard and mouse connected to Pi). I¡¯ll try to ferret out a good video and provide a link.

?

I think the next Zoom session we could work on building a couple of flows. One for getting and sending info to a device and another for controlling simple relays. I actually saw a video online the other day where the author used 3 relays to create a traffic light system. It was very good in explaining how to wire things up.

?

73

Dave wo2x

?

?

From: [email protected] <[email protected]> On Behalf Of wa9mvz via groups.io
Sent: Thursday, January 28, 2021 8:51 AM
To: [email protected]
Subject: Re: [nodered-hamradio] Getting started with Node Red

?

Alan, Dave ... thanks for the Zoom meeting last night. I appreciate your taking the time to host that.?
I have a very extensive? multi-state remote radio system in place and have been remoting since the 1990's. As automated as I am, I often have to bring up multiple systems. There is an appealing elegance to the Node Red dashboards I'd seen.? I was attracted to Node-Red for the control simplicity it offered.

I had a steep learning curve over the past few days to get where I am on Node-Red. I have done a lot of work with Arduino and C++, but I've never played with an OS, the RPi or JavaScript. In future lessons, you might help others along by realizing that there are really 4 steps to mastering this for someone like me (an RF engineer):

1. Learn how to run the Rasberry Pi itself. How to interface to a terminal, etc.?
2. How to load and run the OS.?
3. Learn how to load simple flows in Node-Red using GPIO interfaces.?
4. Learn programming in JavaScript and building the dashboard.

Most Node-Red "beginner" tutorials assume you already know steps 1,2, and 4. That was not the case for me. I felt there was a lack of mid-level tutorials out there. For example, I could find little about how to build and arrange a dashboard. Your meeting last night filled that gap and got me heading in the right direction.?

That said, sometimes the only way to drink from a fire hose is to start drinking.

Thanks for making yourselves available to true beginners and for your patience.?

Fred
K9SO