Giter Site home page Giter Site logo

simcom's Introduction

simcom

Talk to GSM modem from SIMCOM via serial port using Node

This module was written with Raspberry Pi aspect in mind, but it basically should work on all linux distros, it might work on Windows as well (not tested yet), you just need a serial port filesystem (/dev/ttyAMA0 for RPi).

It has been tested on SIM800L module.

Installation

npm install simcom

Example

Openning the port

var modem = require('simcom').modem('/dev/ttyAMA0');

modem.on('open', function() {
  // do something with the modem
});

modem.error('error', function() {

});

modem.open(); // open the port

The modem function is a factory function, it creates an instance of Modem class for a device if neccessary.

Sending raw data

Talk directly to the modem using Modem.write() method.

modem.write('ATI\r');

Executing a command

Modem.execute() returns a promise which you can easily setup callbacks to process the response or error.

modem.execute('ATI').then(function(lines) {
  console.log('ATI Response', lines);
}, function(error) {
  console.error('ATI Command Error', error);
});

simcom's People

Contributors

sadika9 avatar vittee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

simcom's Issues

Is this dead repo? Cant run test script.

/home/hostmit/orange-security/nodejs/test.js:7
modem.error('error', function() {
^

TypeError: modem.error is not a function
at Object. (/home/hostmit/orange-security/nodejs/test.js:7:7)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)

Well, when I comment out .error, getting

/home/hostmit/orange-security/nodejs/node_modules/simcom/lib/modem.js:42
this.port = new serialport.SerialPort(this.device, {
^

TypeError: serialport.SerialPort is not a constructor
at Modem.open (/home/hostmit/orange-security/nodejs/node_modules/simcom/lib/modem.js:42:19)
at Object. (/home/hostmit/orange-security/nodejs/test.js:11:7)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)

Cannot read property 'shift' of null

Using Raspberry with sim900

sudo node node_modules/simcom/example/read_sms
/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:155
                throw e;
                      ^
TypeError: Cannot read property 'shift' of null
    at SimCom.<anonymous> (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:227:25)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:194:29
    at _fulfilled (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:796:13)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:604:44
    at runSingle (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:137:13)
    at flush (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:125:13)
    at process._tickCallback (node.js:355:11)

same type of errors occur with few other examples like all_sms.js & send_sms.js, while sim800.js & open.js works fine.

sudo node all_sms
/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:155
                throw e;
                      ^
TypeError: Cannot read property 'map' of null
    at SimCom.<anonymous> (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:214:15)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:194:29
    at _fulfilled (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:796:13)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:604:44
    at runSingle (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:137:13)
    at flush (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:125:13)
    at process._tickCallback (node.js:355:11)
 sudo node send_sms "+123456789" "yo"
ERR [TypeError: Cannot read property 'shift' of null]
/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:155
                throw e;
                      ^
TypeError: Cannot read property 'shift' of null
    at SimCom.<anonymous> (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:240:16)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/lib/simcom.js:194:29
    at _fulfilled (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:796:13)
    at /home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:604:44
    at runSingle (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:137:13)
    at flush (/home/pi/node_lab/gsm_sandbox/gsm2_simcom/node_modules/simcom/node_modules/q/q.js:125:13)
    at process._tickCallback (node.js:355:11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.