var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
var sp = new SerialPort("/dev/ttyUSB0", {
  baudrate: 115200,
  parser: serialport.parsers.readline("\n")
}, false);


module.exports = {

  init: function (callback) {
    sp.open(function (err) {
      if (err) {
        callback(err, false);
      } else {

        sp.on('open', function (data) {
          sails.log.verbose(data);
        });

        sp.on('data', function (data) {
          sails.log.verbose(data);
        });

        sp.on('close', function (data) {
          sails.log.verbose(data);
        });

        sp.on('error', function (err) {
          sails.log.error(err);
        });

        callback(false, true);
      }
    });
  },

  sendSMS: function (recipient, message, callback) {
    if (sp.isOpen()) {

      // Demande d'envoi d'un SMS
      sp.write("s\n", function (err, results) {
        if (err) {
          callback({errorInfos: err, errorDetails: "Impossible d'envoyer la commande d'envoi du SMS."}, false);
        } else {

          sp.drain(function () {
            // Renseignement du numéro de téléphone
            sp.write(recipient + "\n", function (err, results) {
              if (err) {
                callback({errorInfos: err, errorDetails: "Impossible d'envoyer la commande d'envoi du SMS."}, false);
              } else {

                sp.drain(function () {
                  // Envoi du message
                  sp.write(message + "\n", function (err, results) {
                    if (err) {
                      callback({
                        errorInfos: err,
                        errorDetails: "Impossible d'envoyer la commande d'envoi du SMS."
                      }, false);
                    } else {
                      sp.drain(function () {
                        callback(false, {result: "Message en cours d'envoi, se reporter aux logs pour plus d'informations."});
                      });
                    }
                  });
                });

              }
            });
          });

        }
      });

    } else {
      callback({errorInfos: "", errorDetails: "La connexion n'est pas établie, merci d'initialiser le port."}, false)
    }
  },

  reloadConnection: function (callback) {
    var that = this;
    if (sp.isOpen()) {
      sp.close(function (err) {
        if (err) {
          callback(err, false);
        } else {
          that.init(function (err, isOpen) {
            callback(err, isOpen);
          });
        }
      });
    } else {
      that.init(function (err, isOpen) {
        callback(err, isOpen);
      });
    }
  }

};

@@ -195,36 +195,21 @@
 );%0A%0A
-%0Amodule.exports = %7B%0A%0A  init:
+sp.on('open',
  fun
@@ -219,131 +219,59 @@
 on (
-callback
+data
 ) %7B%0A
-  
   s
-p.open(function (err) %7B%0A      if (err) %7B%0A        callback(err, false);%0A      %7D else %7B%0A%0A        
+ails.log.verbose(data);%0A%7D);%0A%0A
 sp.on('
-open
+data
 ', f
@@ -283,32 +283,24 @@
 on (data) %7B%0A
-        
   sails.log.
@@ -318,40 +318,25 @@
 a);%0A
-        %7D);%0A%0A        
+%7D);%0A%0A
 sp.on('
-data
+close
 ', f
@@ -348,32 +348,24 @@
 on (data) %7B%0A
-        
   sails.log.
@@ -383,41 +383,25 @@
 a);%0A
-        %7D);%0A%0A        
+%7D);%0A%0A
 sp.on('
-close
+error
 ', f
@@ -413,24 +413,15 @@
 on (
-data
+err
 ) %7B%0A
-        
   sa
@@ -432,59 +432,88 @@
 log.
-v
 er
-bose(data);%0A        %7D);%0A%0A     
+ror(err);%0A%7D);%0A%0A%0Amodule.exports = %7B%0A%0A  init: function (callback) %7B%0A
    
+ 
 sp.o
+pe
 n(
-'error', 
 func
@@ -535,31 +535,46 @@
     
-    sails.log.error(err
+if (err) %7B%0A        callback(err, false
 );%0A 
@@ -574,30 +574,32 @@
 lse);%0A      
-  %7D);%0A
+%7D else %7B
 %0A        cal

Fix log multiple