No Description

ublox6.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*jslint node:true, vars:true, bitwise:true, unparam:true */
  2. /*jshint unused:true */
  3. /*global */
  4. /*
  5. * Author: Zion Orent <zorent@ics.com>
  6. * Copyright (c) 2014 Intel Corporation.
  7. *
  8. * Permission is hereby granted, free of charge, to any person obtaining
  9. * a copy of this software and associated documentation files (the
  10. * "Software"), to deal in the Software without restriction, including
  11. * without limitation the rights to use, copy, modify, merge, publish,
  12. * distribute, sublicense, and/or sell copies of the Software, and to
  13. * permit persons to whom the Software is furnished to do so, subject to
  14. * the following conditions:
  15. *
  16. * The above copyright notice and this permission notice shall be
  17. * included in all copies or substantial portions of the Software.
  18. *
  19. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  20. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  21. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  22. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  23. * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  24. * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  25. * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  26. */
  27. var GPSSensor = require('jsupm_ublox6');
  28. // Instantiate a Ublox6 GPS device on uart 0.
  29. var myGPSSensor = new GPSSensor.Ublox6(0);
  30. if (!myGPSSensor.setupTty(GPSSensor.int_B9600))
  31. {
  32. console.log("Failed to setup tty port parameters");
  33. process.exit(0);
  34. }
  35. // Collect and output NMEA data.
  36. // This device also supports numerous configuration options, which
  37. // you can set with writeData(). Please refer to the Ublox-6 data
  38. // sheet for further information on the formats of the data sent and
  39. // received, and the various operating modes available.
  40. var bufferLength = 256;
  41. var nmeaBuffer = new GPSSensor.charArray(bufferLength);
  42. function getGPSInfo()
  43. {
  44. // we don't want the read to block in this example, so always
  45. // check to see if data is available first.
  46. if (myGPSSensor.dataAvailable())
  47. {
  48. var rv = myGPSSensor.readData(nmeaBuffer, bufferLength);
  49. var GPSData, dataCharCode, isNewLine, lastNewLine;
  50. var numlines= 0;
  51. if (rv > 0)
  52. {
  53. GPSData = "";
  54. // read only the number of characters
  55. // specified by myGPSSensor.readData
  56. for (var x = 0; x < rv; x++)
  57. GPSData += nmeaBuffer.getitem(x);
  58. process.stdout.write(GPSData)
  59. }
  60. if (rv < 0) // some sort of read error occured
  61. {
  62. console.log("Port read error.");
  63. process.exit(0);
  64. }
  65. }
  66. }
  67. setInterval(getGPSInfo, 100);
  68. // Print message when exiting
  69. process.on('SIGINT', function()
  70. {
  71. console.log("Exiting...");
  72. process.exit(0);
  73. });