Difference between revisions of "How to install & execute"

From AMTech WikiDocs
Jump to: navigation, search
(Remote debugging =)
(Remote debugging =)
Line 67: Line 67:
 
**Configure launch.json https://code.visualstudio.com/Docs/editor/debugging
 
**Configure launch.json https://code.visualstudio.com/Docs/editor/debugging
 
*** set "address": "raspberry-pi ip address" and "remoteRoot": "shared-directory name"
 
*** set "address": "raspberry-pi ip address" and "remoteRoot": "shared-directory name"
 
 
<code>{
 
<code>{
 
     "version": "0.2.0",
 
     "version": "0.2.0",

Revision as of 23:10, 18 May 2016

Os and core components

Manual installation of initial components and prerequesites

  • Installs Ubuntu OS on a Raspberry PI
https://ubuntu-mate.org/raspberry-pi/
  • Boot PI and update packages:
sudo apt-get update
sudo apt-get dist-upgrade
  • Install java 7 (if LLRPReader is needed)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
and then:
sudo apt-get install -y nodejs
  • Installs and configures Bluetooth core libraries
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
  • Allow nodejs program to bind to ports under 1024 (required by snmp related plugin):
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/nodejs
  • Allow nodejs to read from bluetooth devices (require by bluetooth related plugins):
sudo setcap 'cap_net_raw+eip' /usr/bin/nodejs
  • Allow non-privileged users (belonging to gpio group) to run GPIO commands:
git clone git://github.com/quick2wire/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin
make
sudo make install

M2MBridge installation

  • Install git:
sudo apt-get install git
git clone https://github.com/AMTechMX/M2MBridge.git
  • Delete unneeded plugins from /.../M2MBridge/plugins/xxx (optional)
  • Install packages for m2mBridge core and plug-ins (https://docs.npmjs.com/cli/install:)
  • Execute npm install --save at:
    • M2MBridge directory
    • Each plugin directory
    LLRPReader plugin depends on java module and you should use the following options in the the npm install call:
    GYP_DEFINES="armv7l=0 javalibdir=/usr/lib/jvm/java-7-oracle/jre/lib/arm/server/" CCFLAGS='-march=armv7' CXXFLAGS='-march=armv7' npm install
  • If you get this error; var cwd = process.cwd(); Error: No such file or directory #200
https://github.com/foreverjs/forever/issues/200

M2MBridge execution

  • Customize the bridge configuration bridgeConfig,json, defining the templateId with the bridge instance from DAP to clone Cloud Configuration
  • Execute node m2mbridge.js (located in the M2MBridge directory)

Tools for configuration

  • If you want to connect a device (like the LLRP Reader) to your PI by sharing you network you may want to run:
nm-connection-editor
Find there the connection that represents your ethernet card and configure in IPv4 Settings the method Shared to other computers
  • If you want to guess the IP that is assigned through DHCP to a device connected by using the previously mentioned option, you can inspect the syslog with:
grep DHCPREQUEST /var/log/syslog

The ansible way

Remote debugging =

{

   "version": "0.2.0",
   "configurations": [
       {
           "name": "Launch",
           "type": "node",
           "request": "launch",
           "program": "${workspaceRoot}/M2MBridge.js",
           "stopOnEntry": false,
           "args": [],
           "cwd": "${workspaceRoot}",
           "preLaunchTask": null,
           "runtimeExecutable": null,
           "runtimeArgs": [
               "--nolazy"
           ],
           "env": {
               "NODE_ENV": "development"
           },
           "externalConsole": false,
           "sourceMaps": false,
           "outDir": null
       },
       {
           "name": "Attach",
           "type": "node",
           "request": "attach",
           "port": 5858,
           "address": "192.168.1.156",
           "restart": false,
           "sourceMaps": false,
           "outDir": null,
           "localRoot": "${workspaceRoot}",
           "remoteRoot": "/home/carlos/M2MBridge"
       }
   ]

}