Files
DataLogger-Generic/README.md
Patrick McDonagh 934c4c8171 Updated README to reflect recent configuration changes.
Added preliminary API documentation as well
2016-02-22 18:38:06 -06:00

101 lines
3.9 KiB
Markdown

# POCloud Tag Server
Written by Patrick McDonagh, Henry Pump
## Prerequisites
- NodeJS
- Pyton 2.7
- npm
- Either SQLite or MySQL (not completely developed)
- Bower
```
npm install -g bower
```
- forever (if intending to run continuously)
```
npm install -g forever
```
## Installation
1. Clone this repository using either HTTPS:
```
git clone https://patrickjmcd@bitbucket.org/patrickjmcd/tagserver.git
```
or SSH:
```
git clone git@bitbucket.org:patrickjmcd/tagserver.git
```
2. Create the necessary database file:
```
for MySQL run
mysql -u root -p < www/dbcreate_MySQL.sql
```
or
```
for SQLite run
sqlite3 /mnt/usb/data.db < www/dbcreate_SQLite.sql
```
3. Install necessary npm packages
```
npm install
```
4. Install necessary bower packages
```
bower install
```
5. Create init.d scripts
```
INFO HERE COMING SOON
```
6. Test Web Server functionality
```
node www/app.js
```
Proceed to http://<IP OF POConsole>:3000 to test the web server and set up tags.
7. Enter tag information in web server.
8. Set IP of PLC in web server. Without configuration, the program will default to looking for the PLC at 192.168.1.10.
9. Test the Python datalogger functiality.
```
python python/tagserver_<dbtype>.py
```
The program should return messages saying it has stored values. If errors occur, check the PLC ip address. If errors persist, contact Henry Pump.
10. Start the init.d scripts so the programs run in the background.
```
/etc/int.d/tagserver start
```
and
```
/etc/init.d/website start
OR
forever www/app.js
```
## API Documentation
```
app.post('/json/tag/add', fns.createTag); // Adds a tag to the scan list
app.post('/json/tag/update/', fns.updateTag); // Updates tag data
app.get('/json/tag/delete/:tag', fns.deleteTag); // Removes a tag from the scan list
app.get('/json/tag/:id', fns.getTag); // Gets a specific tag in the scan list
app.get('/json/tag', fns.getAllTags); // Lists all tags in the scan list
app.get('/json/val/:tag', fns.latestValueSingleTag); // Gets the latest value of a single tag
app.get('/json/series/:tag/:hours', fns.seriesTagValues); // Gets all the values of a tag for the last X hours
app.get('/json/valBetween/:tag/:startDatetime/:endDatetime', fns.seriesTagValuesBetween); // Gets the values of a tag between the start time and end time
app.get('/json/CSV/all', fns.allDataCSV); // Gets a CSV of all values stored
app.get('/json/CSV/:tag/:startDatetime/:endDatetime', fns.seriesCSVBetween); // Gets a CSV of the values of a tag between the start time and end time
app.get('/json/CSV/:tag/:hours', fns.seriesCSV); // Gets a CSV of the values of a tag for the last x hours
app.get('/json/all', fns.latestValueAllTags); // Gets the latest values of all tags in the scan list
app.get('/json/config', fns.getSetup); // Gets the contents of the config table
app.post('/json/config', fns.updateSetup); // Adds a new parameter to the config table
app.get('/json/logger/status', fns.checkLoggerStatus); // Gets the status of the data logger
app.get('/json/logger/restart', fns.restartLogger); // Restarts the data logger
```