'the LED blinks continiously - I tried it with arguments but it does not work'
Missing logic for LED control and the 'tried it' code block
Hi @psc1988 in post #1 code snippet L2, L4, L15, L22, it appears there are mismatched closing curly braces, along with no LED control logic, making comprehension difficult, so I created one possible stand alone code block.
const BLINK_TIMES = 3;
const PIN_LED = B4; // Device dependant - external LED
var doOnce = 1;
// sec
var durationTest = 12;
var durationWait = 2;
// msec
var delay = 600; // Arbitrary screen update interval
var timeout = 3500;
var durationBlink = 40;
var timeStart = 0;
var timeStop = 0;
var timeCurr = 0;
var timeElapsed = 0;
// http://www.espruino.com/Reference#l__global_getTime
// Return current system time in Seconds (as a floating point number)
//>getTime()
//=946685458.84333419799
// Interval timer
var intervalID = {};
var timeoutID = {};
var blinkID = {};
function ci() { clearInterval( intervalID ); }
function cb() { clearInterval( blinkID ); }
function startTest() {
var toggle = false;
var nCount = BLINK_TIMES;
timeStart = getTime();
timeStop = timeStart + durationTest;
intervalID = setInterval(function () {
timeCurr = getTime();
// When duration of test is over stop the timer
if ( timeCurr >= timeStop ) { ci(); intervalID = null; }
// Send our write command to our external device
if( ( timeCurr >= (timeStart + durationWait) ) && ( doOnce ) ) {
doOnce--;
// Send a command instruction to external device
Serial1.write([0xB5,0x62]); // arbitrary - modify as required
console.log( "L60 Sending write command to device" );
timeoutID = setTimeout(function () {
// After a specific time, attempt to read that device response
Serial1.write([0x85]); // arbitrary - modify both as required
var dataRecd = getData();
console.log( "L67 Sending read command to device" );
blinkID = setInterval(function () {
if ( nCount < 0 ) { cb(); blinkID = null; }
// ternary operator
toggle = toggle ? false : true;
//DEBUG: console.log( "L77 toggle: " + toggle );
console.log( "L78 State LED: " + ( toggle ? "on" : "off" ) );
//DEBUG: console.log( "L79 count: " + nCount + " toggle: " + toggle );
// Set state of LED - watch pin mode - If LED anode tied hi
digitalWrite( PIN_LED, toggle ); // a lo will turn on
nCount--;
}, durationBlink);
console.log( "L87 TERMINATING Test" );
}, timeout)
// if
}
console.log( "L93 time: " + getTime() );
}, delay);
// function
}
startTest();
// Simple watchdog in case our test loop above runs amuck
setTimeout(function () {
console.log( "L106 WatchDog TERMINATING should never get here though" );
ci();
cb();
}, ( (durationTest*1000) + 2000 ) );
____ _
| __|___ ___ ___ _ _|_|___ ___
| __|_ -| . | _| | | | | . |
|____|___| _|_| |___|_|_|_|___|
|_| espruino.com
2v04 (c) 2019 G.Williams
>
L93 time: 946685464.98464584350
L93 time: 946685465.58461284637
L93 time: 946685466.18463134765
L60 Sending WRITE command to device
L93 time: 946685466.78632259368
L93 time: 946685467.38473415374
L93 time: 946685467.98462772369
L93 time: 946685468.58465099334
L93 time: 946685469.18467044830
L93 time: 946685469.78472423553
L67 Sending READ command to device
L78 State LED: on
L78 State LED: off
L78 State LED: on
L78 State LED: off
L78 State LED: on
L78 State LED: off
L93 time: 946685470.98464107513
L93 time: 946685471.58464050292
L93 time: 946685472.18469142913
L93 time: 946685472.78465366363
L93 time: 946685473.38461399078
L93 time: 946685473.98462963104
L93 time: 946685474.58469295501
L87 TERMINATING Test
>
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Sat 2021.04.03
Yes
Unsure of intention here ref 'all 10'
Missing logic for LED control and the 'tried it' code block
Hi @psc1988 in post #1 code snippet L2, L4, L15, L22, it appears there are mismatched closing curly braces, along with no LED control logic, making comprehension difficult, so I created one possible stand alone code block.
More Info: