Version 1v62

Posted on
  • Now out! A bunch of new features and fixes:

        1v62 : Added ArrayBufferView functions as per ES6 spec (fix #310)
                Added Graphics.setRotation (fix #321)
                Added Graphics.drawImage (fix #198)
                Added E.toArrayBuffer for fast string->array conversion
                Accessing an undefined array/object element now doesn't create it (fix #63)
                Fix fs.unlink returns true if the file does not exist (fix #331)
                Try and improve timer overlays by reordering the alternate function list
                Ensure that PWM output doesn't enable negated/non-negated outputs when it doesn't have to
                Improve console performance when sending long strings
                Initialise Graphics flags Graphics.createCallback - could have caused all kinds of issues
                Now make setInterval > 5s less accurate when setDeepSleep is on (saves ~0.5 sec of non-sleep time)
                Fixed problem when accessing an array with a string in a variable
                Fix issues with `"0" in {0:1}` (and hasOwnProperty)
                Improved interpolate function, and moved it out of ArrayBufferView into E
                Fix Problem with Object.keys on a string (fix #347)
                Fix assert fail when deleting a property that doesn't exist (fix #344)
                Ensure that dump remembers function names if they were in the root scope (fix #338)
                Fix memory leak in fs.readdir
                Ensure that abbreviations in console's '=...' output appear on newline if needed
                Add String.replace (fix #334)
                Make Graphics.drawImage draw bottom line of pixels (fix #329)
                Add Array.shift/unshift (fix #342)
                Fix Defining function after return causes error (fix #326)
                Fix deleting the last element in array (fix #346)
                More helpful I2C error messages (fix #10)
                Fix overriding built-in functions (fix #202)
                Add ES6 Array.prototype.fill (fix #317)
                Modified jsiQueueObjectCallbacks (and Object.emit) to support >2 args
                Added support for SPI LSB-first
                WIZnet improvements (specifically on HTTP server)
                Added WLAN.setIP for CC3000
                Fix String.split issue with last element (fix #352)
                Remove order warning for SPI if no order given (fix #353)
                process.env will now contain the git commit
                Move setInterval/Timeout implementations into jswrap_interactive (makes more sense)
                Add setWatch warning if it's not possible (fix #337)
    

    Also updated the website with a bunch of contributions I've had over the last week, including @mgg1010's Date/Clock module, a MPL115A2 module, a Midi module, and a Sharp Memory LCD module.

  • Many thanks Gordon.

  • Did anyone else have troubles with updating to 1v62? It failed quite badly in my case http://forum.espruino.com/conversations/1250/#comment19230

  • Worked as expected with WebIDE

    Sacha

  • @Sacha thanks...

  • @Gordon

    I've installed 1v63 from latest commit. Wiznet now works better, although I still got the following once:

    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI RX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI RX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI RX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI RX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI TX
    INTERNAL ERROR: Timeout on SPI RX
    at line 29 col 13
    req.end(body);
                 ^
    in function "sendGrove" called from line 1 col 11
    =undefined
    =undefined
    ERROR: Socket error -7 while sending
    Callback
    ->{"message":"exception.LabradorException: Feed PUT call limit has been exceeded for address 77.100.6.154. One cal
    ->l every 10 seconds is allowed. ","errCode":"RATE_LIMIT_EXCEEDED","success":false}
    

    I'm pleased to say that even after this, further GETs worked.

    I can't quite give it a complete 100% bill of health, but it feels a lot better

    Martin

  • Update - it's better, but still a bit patchy. I'm still getting the socket -7 error. I also still get "no free sockets" but I was doing HTTP requests more quickly than every minute. The Internal SPI error I still see, but generally only get when sending a new program to the device after a socket error - in this case, it just loops showing this error

  • You can find tow different Sharp Memory LCD breakout boards on tindie.

  • @mgg1010 the timeout errors occur because the Web IDE is trying to get in contact with the board. If it can't get a response within a short time period, it sends Ctrl + C which breaks out of whatever Espruino was doing - in this case sending SPI data to the WIZnet chip - and hence the errors.

    It shouldn't cause a problem - but the Web IDE should probably be a bit more patient before it sends the Ctrl-C :)

  • Perhaps we could have a parameter in Web IDE configuration to turn this off or change the delay?

    (See my separate post on similar error messages in I2C)

  • Well, I just made an issue for it: https://github.com/espruino/EspruinoWebIDE/issues/89

    It should wait longer - thinking about it, it may just send Ctrl-C regardless which would obviously be a mistake.

  • Thanks.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Version 1v62

Posted by Avatar for Gordon @Gordon

Actions