Flic Home

    Community

    • Login
    • Search
    • Popular
    • Users

    Syntax error: Unterminated statement error after running a loop for a long time

    Developers
    1
    1
    664
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • cs.durak
      cs.durak last edited by

      I have set up 10 Flic Hubs to run a code that sends a ping to my API. The code runs in an infinite loop with 1 hour sleep so I've had a ping every hour from every device.

      All seemed perfect until all of the devices stopped working around the same time.

      I've got below error on the SDK:

      SyntaxError: unterminated statement (line 2)
          at [anon] (root/heartbeat/main.js:2) internal
          at [anon] (duktape.c:71822) internal
          at loadAndCompileUserModule () native strict preventsyield
          at require (init.js:122)
          at [anon] (init.js:139) preventsyield
          at runInit () native strict preventsyield
          at handlePacket (pipe_communication.js:48)
          at readCallback (pipe_communication.js:93) preventsyield
      

      Line to corresponds to either of below lines:

      var buttonManager = require("buttons");
      var buttons = buttonManager.getButtons();
      

      Here is how my code looks like:

      // Heartbeat.js
      var buttonManager = require("buttons");
      var buttons = buttonManager.getButtons();
      var http = require("http");
      
      var url = "my_api_url";
      var DEVICE_ID = 'hub_id'
      
      function myLoop() {
          setTimeout(function() {
              for (var i = 0; i < buttons.length; i++) {
                  var button = buttons[i];
                  http.makeRequest({
                      url: url,
                      method: "POST",
                      headers: {
                          "Content-Type": "application/json"
                      },
                      content: JSON.stringify({
                          'pressedAt': Date.now(),
                          'batteryStatus': button.batteryStatus,
                          'button_sn': button.serialNumber,
                          'activeDisconnect': button.activeDisconnect,
                          'connected': button.connected,
                          'batteryStatus': button.batteryStatus,
                          'uuid': button.uuid,
                          'flicVersion': button.flicVersion,
                          'firmwareVersion': button.firmwareVersion,
                          'key': button.key,
                          'passiveMode': button.passiveMode,
                          'device_sn': DEVICE_ID,
                          'dataType': 'heartbeat'
                      }),
                  }, function(err, res) {
                      console.log("request status: " + JSON.stringify(res));
                  });
              }
      
              myLoop();
          }, 1000 * 60 * 60)
      }
      
      myLoop();
      console.log("Started");
      

      Anyone have any ideas?
      Thanks.

      1 Reply Last reply Reply Quote 0
      • First post
        Last post