Scheduling mqtt post - node.js

I will have a file (text, excel... doesen't matter).
On each line of this file there is date, time, and the code for a function.
What i need is to execute the function written in my file at the specified time and date in node.js on a server.
Since the function is actually a post on a mqtt broker, I'm actualy looking for any method that could do.
Could anyone point me to the right direction?
Thank you

You could use setTimeout to do that.
See the example in this question: Call a javascript function at a specific time of day

Related

How to print function call timeline?

I would like to print location and function name of each function during a run.
It would help during debug to identify which function is called when multiple functions have the same name in different places.
It is possible but time costly to add by hand message such as:
println!("(function_name) file = {}, line = {}",file!(),line!());
Do you know such a solution? Have you suggestions to identify easily which function is called and who calls it?
The easiest option would probably be to use something like dtrace or ebpf: hook onto the "function entry" probe (not sure what it's called in linux / ebpf land but I'd think it exists) and just print the relevant information. You may want to add stack-based indentation though, and of course because of compiler optimisations you might have functions going missing. And you might get the mangled names which is not great, but de-mangling is a thing.
You might be able to do something similar by running your program in gdb and creating some sort of programmatic breakpoints which print and immediately continue?
Alternatively, a module-level attribute procedural macro could work: if you get a token stream for the entire module, it might be possible to automatically inject logging data into every function header.

How to detect oncomplete function when using readline module in node.js?

I am trying to read files 1 line at a time using this doc
https://nodejs.org/api/readline.html
from the answer here
Read a file one line at a time in node.js?
proposed by Dan.
The problem is, it doesn't specify how to call a function when the file is fully read from.
Does anyone know?
Thanks
In the comments of Dan's answer, someone gives the answer to your question:
lineReader.on('close', callback);

Auto-correlation callback function issue - loadrunner

I'm working in new application written in Siebel 8.1, issue appears when I'm trying to replay script and I can't handle that.
Replay Output:
Error -27086: Auto-correlation callback function
"flCorrelationCallbackParseWebPage" failed (rc=1) for parameter
"Siebel_Parse_Web_Page40"
web_reg_save_param("Siebel_Parse_Web_Page40",
"LB/IC=",
"RB/IC=",
"Ord=1",
"Search=Body",
"RelFrameId=1",
"AutoCorrelationFunction=flCorrelationCallbackParseWebPage",
"AutoCorrelationDll=LrwiSiebelCorrelationWrapper",
LAST);
I have done all steps for prepare record options from: http://software-qe.blogspot.se/2008/01/siebel-7x-record-and-replay-for.html
I'm using Loadrunner 11.52 (Siebel Web protocol), IE8.
We've been using the autocorrelation library for quite a few years on my team and we see this a lot. Unfortunately, it's not an easy problem to diagnose.
First I would check your test results and your VUser log to see if something happened before the autocorrelation failed. (Make sure your logging is set to parameter substitution in runtime settings).
Check your parameter files for extra spaces, commas, etc. Sometimes I've seen that error right after it rejects something about your parameter file.
Worst case scenario, your script is corrupted and you'll have to start over. We've gotten in the habit of making frequent backups of our scripts just because of this issue. Usually, we'll be able to start from our backup and continue or create a new script and paste the old code in. Autocorrelation error "magically" goes away with the same code in a new script.
If auto(magical)correlation does not work then use manual correlation.
Record twice with same data: Compare. You will find session, state and time data.
Change the credentials: Re-record. Compare. You will find credential related correlation
Change the business record but keep the same business process. Re-Record. You will find the business related correlation.
Do not expect autocorrelation to provide a magical working script. You have about a 0.0001% chance of that happening without LoadRunner script development intervenetion.

Matlab GUIDE GUI Handles change in values after using Load() function?

Inside a GUI that I have made using GUIDE in Matlab. I run into a problem where upon using the Load() function to load a .MAT file all my handles change values. This means that if I had a button that I wanted to use on my GUI. My program will believe its handle is for example
handles.button1 =190.082
when in reality the only way I can access that button any more is through a different handle that is unknown. So if its unknown lets see what its new handle must be.
findobj('Tag','button1') = 227.0093
As you can see these numbers are completely different. Why the handles values get changed is beyond me. Since the handles change I can no longer use the set() function as I have written in previous sections of code. For example I have to change
set(handles.button1, 'Enable', 'off');
to
set(findobj('Tag','button1'),'Enable','off');
Does anyone have an explanation as to why this problem occurs when using Load()?
Is there a feasible solution instead of having to find the handle for an object every time you want to use it?
The .MAT file conveniently also had a handles variable in it which overwrote my current handles.

How to call telephone number through asterisk trunk from external application talking through prophecy?

Wow, that title was a mouthful...
I'm sure that sounds very confusing at first glance. This is the basis of what I've got going on:
I have:
-a server set up with Asterisk and Voxeo Prophecy running on it.
-Prophecy set up as extension for Asterisk.
-another server running an external application.
The external application generates some two XMLs: one ccxml and one vxml file, for Voxeo to read and execute, which then initiates a call to (up until today) an asterisk extension.
The project is moving along, though, and yesterday I got a SIP Trunk and a DID number in hopes to turn this application into something that can call real people.
The trunk is working on Asterisk, and I've been able to initiate calls through a softphone (X-lite) to my cell phone number. That works just fine.
However, when I try to initiate calls from the external application, it does not go through. I've tried numerous things to try to fix it but it's just not working.
Prior to the trunk/DID business, the working code to call an asterisk extension was as follows:
<createcall>dest="'sip:*Extension here*#*IP Address here*'"
connectionid="myOutBoundConnectionID" timeout="'45s'" callerid="'*Extension here*
#*IP Address here*'"</createcall>
My first thought was that I might need to have a trunk specified for Prophecy as well as for Asterisk, but I'm probably way off base.
The reformatted code that I thought would work was as follows:
<createcall>dest="'tel:*Phone Number here*'" connectionid=
"myOutBoundConnectionID" timeout="'45s'" callerid="'*Phone Number here*
'"</createcall>
...but this does not work at all.
The log files say things like this when I call from my softphone:
-- Executing [*My phone number*#from-internal:1] Macro("SIP/1001-0000007d", "user-
callerid,LIMIT,") in new stack
but when I call from the external application, things are a little different:
-- Executing [*My phone number*#from-sip-external:1] NoOp("SIP/*IP Address:5080-0000007c",
"Received incoming SIP connection from unknown peer to *phone number*") in new stack
Can anyone shed some light on what is happening here? Thanks in advance!
You should make your reformatted create call look something like this:
<createcall>dest="'tel:*Phone Number here*#*IP Address of Asterisk*'" connectionid= "myOutBoundConnectionID" timeout="'45s'" callerid= "'*Prophecy's Asterisk Extension'"</createcall>
Make sure your Asterisk server has an outbound rule to hit 10-digit phone number via your SIP trunk (I assume it does if your softphone calls work.
Depending on your SIP provider, this may result in your outbound calls appearing to come from the Extension number, not whatever external number you want to present. If you wish to present another number, you probably need to get prophecy to register the SIP station it uses, if you haven't already (in Prophecy's config.xml), in fact you may need/have to do this anyway before this will work.

Resources