HAHA! commit
Initial commit
This commit is contained in:
commit
2e9b87dab6
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.DS_Store
|
||||||
130
of/waspmote_spacebrew_bridge/.gitignore
vendored
Normal file
130
of/waspmote_spacebrew_bridge/.gitignore
vendored
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
#########################
|
||||||
|
# .gitignore file for Xcode4 / OS X Source projects
|
||||||
|
#
|
||||||
|
# Version 2.0
|
||||||
|
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
|
||||||
|
#
|
||||||
|
# 2013 updates:
|
||||||
|
# - fixed the broken "save personal Schemes"
|
||||||
|
#
|
||||||
|
# NB: if you are storing "built" products, this WILL NOT WORK,
|
||||||
|
# and you should use a different .gitignore (or none at all)
|
||||||
|
# This file is for SOURCE projects, where there are many extra
|
||||||
|
# files that we want to exclude
|
||||||
|
#
|
||||||
|
#########################
|
||||||
|
|
||||||
|
#####
|
||||||
|
# OS X temporary files that should never be committed
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
||||||
|
*.lock
|
||||||
|
profile
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
# Xcode temporary files that should never be committed
|
||||||
|
#
|
||||||
|
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
|
||||||
|
|
||||||
|
*~.nib
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
# Xcode build files -
|
||||||
|
#
|
||||||
|
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
|
||||||
|
|
||||||
|
DerivedData/
|
||||||
|
|
||||||
|
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
|
||||||
|
|
||||||
|
build/
|
||||||
|
|
||||||
|
bin/
|
||||||
|
|
||||||
|
#####
|
||||||
|
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
|
||||||
|
#
|
||||||
|
# This is complicated:
|
||||||
|
#
|
||||||
|
# SOMETIMES you need to put this file in version control.
|
||||||
|
# Apple designed it poorly - if you use "custom executables", they are
|
||||||
|
# saved in this file.
|
||||||
|
# 99% of projects do NOT use those, so they do NOT want to version control this file.
|
||||||
|
# ..but if you're in the 1%, comment out the line "*.pbxuser"
|
||||||
|
|
||||||
|
*.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
# NB: also, whitelist the default ones, some projects need to use these
|
||||||
|
!default.pbxuser
|
||||||
|
!default.mode1v3
|
||||||
|
!default.mode2v3
|
||||||
|
!default.perspectivev3
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
# Xcode 4 - semi-personal settings
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# OPTION 1: ---------------------------------
|
||||||
|
# throw away ALL personal settings (including custom schemes!
|
||||||
|
# - unless they are "shared")
|
||||||
|
#
|
||||||
|
# NB: this is exclusive with OPTION 2 below
|
||||||
|
xcuserdata
|
||||||
|
|
||||||
|
# OPTION 2: ---------------------------------
|
||||||
|
# get rid of ALL personal settings, but KEEP SOME OF THEM
|
||||||
|
# - NB: you must manually uncomment the bits you want to keep
|
||||||
|
#
|
||||||
|
# NB: this is exclusive with OPTION 1 above
|
||||||
|
#
|
||||||
|
#xcuserdata/**/*
|
||||||
|
|
||||||
|
# (requires option 2 above): Personal Schemes
|
||||||
|
#
|
||||||
|
#!xcuserdata/**/xcschemes/*
|
||||||
|
|
||||||
|
####
|
||||||
|
# XCode 4 workspaces - more detailed
|
||||||
|
#
|
||||||
|
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
|
||||||
|
#
|
||||||
|
# Workspace layout is quite spammy. For reference:
|
||||||
|
#
|
||||||
|
# /(root)/
|
||||||
|
# /(project-name).xcodeproj/
|
||||||
|
# project.pbxproj
|
||||||
|
# /project.xcworkspace/
|
||||||
|
# contents.xcworkspacedata
|
||||||
|
# /xcuserdata/
|
||||||
|
# /(your name)/xcuserdatad/
|
||||||
|
# UserInterfaceState.xcuserstate
|
||||||
|
# /xcsshareddata/
|
||||||
|
# /xcschemes/
|
||||||
|
# (shared scheme name).xcscheme
|
||||||
|
# /xcuserdata/
|
||||||
|
# /(your name)/xcuserdatad/
|
||||||
|
# (private scheme).xcscheme
|
||||||
|
# xcschememanagement.plist
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
####
|
||||||
|
# Xcode 4 - Deprecated classes
|
||||||
|
#
|
||||||
|
# Allegedly, if you manually "deprecate" your classes, they get moved here.
|
||||||
|
#
|
||||||
|
# We're using source-control, so this is a "feature" that we do not want!
|
||||||
|
|
||||||
|
*.moved-aside
|
||||||
|
|
||||||
|
|
||||||
|
####
|
||||||
|
# UNKNOWN: recommended by others, but I can't discover what these files are
|
||||||
|
#
|
||||||
|
# ...none. Everything is now explained.
|
||||||
13
of/waspmote_spacebrew_bridge/Makefile
Normal file
13
of/waspmote_spacebrew_bridge/Makefile
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Attempt to load a config.make file.
|
||||||
|
# If none is found, project defaults in config.project.make will be used.
|
||||||
|
ifneq ($(wildcard config.make),)
|
||||||
|
include config.make
|
||||||
|
endif
|
||||||
|
|
||||||
|
# make sure the the OF_ROOT location is defined
|
||||||
|
ifndef OF_ROOT
|
||||||
|
OF_ROOT=../../..
|
||||||
|
endif
|
||||||
|
|
||||||
|
# call the project makefile!
|
||||||
|
include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
|
||||||
17
of/waspmote_spacebrew_bridge/Project.xcconfig
Normal file
17
of/waspmote_spacebrew_bridge/Project.xcconfig
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
|
||||||
|
//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
|
||||||
|
OF_PATH = ../../../of_v0.8.0_osx_release
|
||||||
|
|
||||||
|
//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
|
||||||
|
#include "../../../of_v0.8.0_osx_release/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
|
||||||
|
|
||||||
|
//ICONS - NEW IN 0072
|
||||||
|
ICON_NAME_DEBUG = icon-debug.icns
|
||||||
|
ICON_NAME_RELEASE = icon.icns
|
||||||
|
ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
|
||||||
|
|
||||||
|
//IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
|
||||||
|
//ICON_FILE_PATH = bin/data/
|
||||||
|
|
||||||
|
OTHER_LDFLAGS = $(OF_CORE_LIBS)
|
||||||
|
HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
|
||||||
2
of/waspmote_spacebrew_bridge/addons.make
Normal file
2
of/waspmote_spacebrew_bridge/addons.make
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ofxLibwebsockets
|
||||||
|
ofxSpacebrew
|
||||||
142
of/waspmote_spacebrew_bridge/config.make
Normal file
142
of/waspmote_spacebrew_bridge/config.make
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
################################################################################
|
||||||
|
# CONFIGURE PROJECT MAKEFILE (optional)
|
||||||
|
# This file is where we make project specific configurations.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# OF ROOT
|
||||||
|
# The location of your root openFrameworks installation
|
||||||
|
# (default) OF_ROOT = ../../..
|
||||||
|
################################################################################
|
||||||
|
# OF_ROOT = ../../..
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT ROOT
|
||||||
|
# The location of the project - a starting place for searching for files
|
||||||
|
# (default) PROJECT_ROOT = . (this directory)
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_ROOT = .
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT SPECIFIC CHECKS
|
||||||
|
# This is a project defined section to create internal makefile flags to
|
||||||
|
# conditionally enable or disable the addition of various features within
|
||||||
|
# this makefile. For instance, if you want to make changes based on whether
|
||||||
|
# GTK is installed, one might test that here and create a variable to check.
|
||||||
|
################################################################################
|
||||||
|
# None
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT EXTERNAL SOURCE PATHS
|
||||||
|
# These are fully qualified paths that are not within the PROJECT_ROOT folder.
|
||||||
|
# Like source folders in the PROJECT_ROOT, these paths are subject to
|
||||||
|
# exlclusion via the PROJECT_EXLCUSIONS list.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_EXTERNAL_SOURCE_PATHS =
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT EXCLUSIONS
|
||||||
|
# These makefiles assume that all folders in your current project directory
|
||||||
|
# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
|
||||||
|
# to look for source code. The any folders or files that match any of the
|
||||||
|
# items in the PROJECT_EXCLUSIONS list below will be ignored.
|
||||||
|
#
|
||||||
|
# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
|
||||||
|
# string unless teh user adds a wildcard (%) operator to match subdirectories.
|
||||||
|
# GNU make only allows one wildcard for matching. The second wildcard (%) is
|
||||||
|
# treated literally.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_EXCLUSIONS = (blank)
|
||||||
|
#
|
||||||
|
# Will automatically exclude the following:
|
||||||
|
#
|
||||||
|
# $(PROJECT_ROOT)/bin%
|
||||||
|
# $(PROJECT_ROOT)/obj%
|
||||||
|
# $(PROJECT_ROOT)/%.xcodeproj
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_EXCLUSIONS =
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT LINKER FLAGS
|
||||||
|
# These flags will be sent to the linker when compiling the executable.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Currently, shared libraries that are needed are copied to the
|
||||||
|
# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
|
||||||
|
# add a runtime path to search for those shared libraries, since they aren't
|
||||||
|
# incorporated directly into the final executable application binary.
|
||||||
|
# TODO: should this be a default setting?
|
||||||
|
# PROJECT_LDFLAGS=-Wl,-rpath=./libs
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT DEFINES
|
||||||
|
# Create a space-delimited list of DEFINES. The list will be converted into
|
||||||
|
# CFLAGS with the "-D" flag later in the makefile.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_DEFINES = (blank)
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_DEFINES =
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT CFLAGS
|
||||||
|
# This is a list of fully qualified CFLAGS required when compiling for this
|
||||||
|
# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
|
||||||
|
# defined in your platform specific core configuration files. These flags are
|
||||||
|
# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_CFLAGS = (blank)
|
||||||
|
#
|
||||||
|
# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
|
||||||
|
# your platform specific configuration file will be applied by default and
|
||||||
|
# further flags here may not be needed.
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_CFLAGS =
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT OPTIMIZATION CFLAGS
|
||||||
|
# These are lists of CFLAGS that are target-specific. While any flags could
|
||||||
|
# be conditionally added, they are usually limited to optimization flags.
|
||||||
|
# These flags are added BEFORE the PROJECT_CFLAGS.
|
||||||
|
#
|
||||||
|
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
|
||||||
|
#
|
||||||
|
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
|
||||||
|
#
|
||||||
|
# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
|
||||||
|
#
|
||||||
|
# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
|
||||||
|
# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
|
||||||
|
# file will be applied by default and further optimization flags here may not
|
||||||
|
# be needed.
|
||||||
|
#
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
|
||||||
|
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# PROJECT COMPILERS
|
||||||
|
# Custom compilers can be set for CC and CXX
|
||||||
|
# (default) PROJECT_CXX = (blank)
|
||||||
|
# (default) PROJECT_CC = (blank)
|
||||||
|
# Note: Leave a leading space when adding list items with the += operator
|
||||||
|
################################################################################
|
||||||
|
# PROJECT_CXX =
|
||||||
|
# PROJECT_CC =
|
||||||
22
of/waspmote_spacebrew_bridge/openFrameworks-Info.plist
Normal file
22
of/waspmote_spacebrew_bridge/openFrameworks-Info.plist
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.yourcompany.openFrameworks</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>${ICON}</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
114
of/waspmote_spacebrew_bridge/src/WaspFrameParser.cpp
Normal file
114
of/waspmote_spacebrew_bridge/src/WaspFrameParser.cpp
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
//
|
||||||
|
// WaspFrameParser.cpp
|
||||||
|
// waspmote_gateway_parser
|
||||||
|
//
|
||||||
|
// Created by dviid on 11/23/13.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "WaspFrameParser.h"
|
||||||
|
|
||||||
|
#define FRAME_DELIM "<=>"
|
||||||
|
#define FRAME_SEP '#'
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
ostream& operator<<(ostream& out, const WaspFrame& wf)
|
||||||
|
{
|
||||||
|
out << "--- WaspFrame ---" << endl;
|
||||||
|
out << "Serial Id: " << wf.serial_id << endl;
|
||||||
|
out << "Mote Id: " << wf.mote_id << endl;
|
||||||
|
out << "Frame Seq.: " << wf.frame_seq << endl;
|
||||||
|
out << "MAC: " << wf.mac << endl;
|
||||||
|
out << "ADC: " << wf.adc_data << endl;
|
||||||
|
out << "BATT: " << wf.battery_level << endl;
|
||||||
|
out << "-----------------" << endl;
|
||||||
|
|
||||||
|
return out;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WaspFrameParser::ASCII_split_frame(string &input, vector<string> &output)
|
||||||
|
{
|
||||||
|
//cout << "PARSE: " << input << endl;
|
||||||
|
|
||||||
|
string d = FRAME_DELIM;
|
||||||
|
string token;
|
||||||
|
size_t i, j = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// CASE A
|
||||||
|
if((i = input.find(d)) == std::string::npos) {
|
||||||
|
input.erase(0, input.length());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
while((j = input.find(d)) != std::string::npos) {
|
||||||
|
token = input.substr(0, j);
|
||||||
|
|
||||||
|
//cout << "TOKEN: " << token << endl;
|
||||||
|
|
||||||
|
output.push_back(string(token));
|
||||||
|
|
||||||
|
input.erase(0, j + d.length());
|
||||||
|
|
||||||
|
//cout << "NEXT: " << input << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WaspFrameParser::ASCII_token_frame(string &input, vector<string> &output)
|
||||||
|
{
|
||||||
|
//cout << endl << "frame -- " << input << endl;
|
||||||
|
|
||||||
|
stringstream ss(input);
|
||||||
|
string tok;
|
||||||
|
while(getline(ss, tok, FRAME_SEP))
|
||||||
|
{
|
||||||
|
output.push_back(tok);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void WaspFrameParser::ASCII_process(string &input, vector<WaspFrame> &output)
|
||||||
|
{
|
||||||
|
vector<string> r;
|
||||||
|
WaspFrameParser::ASCII_split_frame(input, r);
|
||||||
|
|
||||||
|
for(int i = 0; i < r.size(); i++) {
|
||||||
|
|
||||||
|
vector<string> t;
|
||||||
|
WaspFrameParser::ASCII_token_frame(r[i], t);
|
||||||
|
|
||||||
|
//cout << "SIZE:::" << t.size() << endl;
|
||||||
|
|
||||||
|
if(t.size() < MIN_FRAME_ENTRIES) continue; // not valid frame
|
||||||
|
|
||||||
|
WaspFrame* wp = new WaspFrame();
|
||||||
|
|
||||||
|
wp->serial_id = t[1];
|
||||||
|
wp->mote_id = t[2];
|
||||||
|
wp->frame_seq = atoi(t[3].c_str());
|
||||||
|
wp->mac = t[4];
|
||||||
|
wp->adc_data = atoi(WaspFrameParser::ASCII_parse("CI0:", t[5]).c_str());
|
||||||
|
wp->battery_level = atoi(WaspFrameParser::ASCII_parse("BAT:", t[6]).c_str());
|
||||||
|
|
||||||
|
//cout << (*wp) << endl;
|
||||||
|
|
||||||
|
output.push_back(*wp);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string WaspFrameParser::ASCII_parse(string id, string input)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
if((i = input.find(id)) != std::string::npos) {
|
||||||
|
return input.substr(i + id.length(), input.length());
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
50
of/waspmote_spacebrew_bridge/src/WaspFrameParser.h
Normal file
50
of/waspmote_spacebrew_bridge/src/WaspFrameParser.h
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
//
|
||||||
|
// WaspFrameParser.h
|
||||||
|
// waspmote_gateway_parser
|
||||||
|
//
|
||||||
|
// Created by dviid on 11/23/13.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef __waspmote_gateway_parser__WaspFrameParser__
|
||||||
|
#define __waspmote_gateway_parser__WaspFrameParser__
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#define MIN_FRAME_ENTRIES 7
|
||||||
|
|
||||||
|
class WaspFrame {
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
WaspFrame(){;}
|
||||||
|
|
||||||
|
string serial_id;
|
||||||
|
string mote_id;
|
||||||
|
int frame_seq;
|
||||||
|
string mac;
|
||||||
|
int adc_data;
|
||||||
|
int battery_level;
|
||||||
|
|
||||||
|
friend ostream& operator<<(ostream& os, const WaspFrame& wf);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class WaspFrameParser {
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
static void ASCII_split_frame(string &input, vector<string> &output);
|
||||||
|
static void ASCII_token_frame(string &input, vector<string> &output);
|
||||||
|
|
||||||
|
static void ASCII_process(string &input, vector<WaspFrame> &output);
|
||||||
|
|
||||||
|
static string ASCII_parse(string id, string input);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* defined(__waspmote_gateway_parser__WaspFrameParser__) */
|
||||||
13
of/waspmote_spacebrew_bridge/src/main.cpp
Normal file
13
of/waspmote_spacebrew_bridge/src/main.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include "ofMain.h"
|
||||||
|
#include "testApp.h"
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
int main( ){
|
||||||
|
ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context
|
||||||
|
|
||||||
|
// this kicks off the running of my app
|
||||||
|
// can be OF_WINDOW or OF_FULLSCREEN
|
||||||
|
// pass in width and height too:
|
||||||
|
ofRunApp(new testApp());
|
||||||
|
|
||||||
|
}
|
||||||
105
of/waspmote_spacebrew_bridge/src/testApp.cpp
Normal file
105
of/waspmote_spacebrew_bridge/src/testApp.cpp
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
#include "testApp.h"
|
||||||
|
|
||||||
|
#include "WaspFrameParser.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#define wasp_signature "usbserial"
|
||||||
|
#define wasp_baud 115200
|
||||||
|
|
||||||
|
|
||||||
|
bool testApp::setup_serial() {
|
||||||
|
|
||||||
|
//_serial.enumerateDevices();
|
||||||
|
|
||||||
|
vector <ofSerialDeviceInfo> list = _serial.getDeviceList();
|
||||||
|
|
||||||
|
for(int i = 0; i < list.size(); i++) {
|
||||||
|
if (list[i].getDeviceName().find(wasp_signature) != std::string::npos) {
|
||||||
|
_serial.setup(list[i].getDevicePath(), wasp_baud);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string wp_ascii_split(string input)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::setup(){
|
||||||
|
|
||||||
|
_serial_set = setup_serial();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::update(){
|
||||||
|
|
||||||
|
static vector<WaspFrame> r;
|
||||||
|
r.clear();
|
||||||
|
|
||||||
|
if(_serial.available() >= BUFFER_LEN) {
|
||||||
|
_serial.readBytes(_buffer, BUFFER_LEN);
|
||||||
|
_payload += string(_buffer, _buffer + BUFFER_LEN);
|
||||||
|
|
||||||
|
WaspFrameParser::ASCII_process(_payload, r);
|
||||||
|
for(int i = 0; i < r.size(); i++) {
|
||||||
|
ofLog() << r[i] << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::draw(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::keyPressed(int key){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::keyReleased(int key){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::mouseMoved(int x, int y ){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::mouseDragged(int x, int y, int button){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::mousePressed(int x, int y, int button){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::mouseReleased(int x, int y, int button){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::windowResized(int w, int h){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::gotMessage(ofMessage msg){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
void testApp::dragEvent(ofDragInfo dragInfo){
|
||||||
|
|
||||||
|
}
|
||||||
38
of/waspmote_spacebrew_bridge/src/testApp.h
Normal file
38
of/waspmote_spacebrew_bridge/src/testApp.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "ofMain.h"
|
||||||
|
#include "OfSerial.h"
|
||||||
|
|
||||||
|
#define BUFFER_LEN 136
|
||||||
|
|
||||||
|
class testApp : public ofBaseApp{
|
||||||
|
|
||||||
|
public:
|
||||||
|
void setup();
|
||||||
|
void update();
|
||||||
|
void draw();
|
||||||
|
|
||||||
|
void keyPressed(int key);
|
||||||
|
void keyReleased(int key);
|
||||||
|
void mouseMoved(int x, int y );
|
||||||
|
void mouseDragged(int x, int y, int button);
|
||||||
|
void mousePressed(int x, int y, int button);
|
||||||
|
void mouseReleased(int x, int y, int button);
|
||||||
|
void windowResized(int w, int h);
|
||||||
|
void dragEvent(ofDragInfo dragInfo);
|
||||||
|
void gotMessage(ofMessage msg);
|
||||||
|
|
||||||
|
bool setup_serial();
|
||||||
|
|
||||||
|
string wp_ascii_split(string input);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
ofSerial _serial;
|
||||||
|
bool _serial_set;
|
||||||
|
|
||||||
|
unsigned char _buffer[BUFFER_LEN];
|
||||||
|
string _payload;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
@ -0,0 +1,696 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
38AD44EF5A53275A6BCEB17D /* Client.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C49850835B8C1A87752B848B /* Client.cpp */; };
|
||||||
|
4E0BC6F68981D5538037B4A1 /* Protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0C3D119DB77E08C463602F6B /* Protocol.cpp */; };
|
||||||
|
5AF10231860099AC511B768B /* Events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 20F3AB7BE263F7B762023258 /* Events.cpp */; };
|
||||||
|
738C7523616DFE0113B46841 /* Connection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0C64F99C0758EC4AA46186D8 /* Connection.cpp */; };
|
||||||
|
76661BF99CD97417EE5B675D /* ofxSpacebrew.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2DC940594BBC41CB933B8E6 /* ofxSpacebrew.cpp */; };
|
||||||
|
B44A2ABF3E925768864FD80A /* Reactor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6520A5947E5A4C4ED7A91553 /* Reactor.cpp */; };
|
||||||
|
B5F6FF34184A6F0E0063881D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F6FF2F184A6F0E0063881D /* main.cpp */; };
|
||||||
|
B5F6FF35184A6F0E0063881D /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F6FF30184A6F0E0063881D /* testApp.cpp */; };
|
||||||
|
B5F6FF36184A6F0E0063881D /* WaspFrameParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F6FF32184A6F0E0063881D /* WaspFrameParser.cpp */; };
|
||||||
|
BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
|
||||||
|
C5688FC85C0AE0B5E4E5F9CE /* Server.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C53FF33B244987E09C8CC63F /* Server.cpp */; };
|
||||||
|
C6E1C4962CC70798B430DCBC /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9413D837F3E273803A5F776E /* jsoncpp.cpp */; };
|
||||||
|
E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
|
||||||
|
E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
|
||||||
|
E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; };
|
||||||
|
E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; };
|
||||||
|
E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; };
|
||||||
|
E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; };
|
||||||
|
E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; };
|
||||||
|
E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; };
|
||||||
|
E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; };
|
||||||
|
E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; };
|
||||||
|
E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; };
|
||||||
|
E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; };
|
||||||
|
E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; };
|
||||||
|
E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
|
||||||
|
E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; };
|
||||||
|
E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; };
|
||||||
|
E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = E4B27C1510CBEB8E00536013;
|
||||||
|
remoteInfo = openFrameworks;
|
||||||
|
};
|
||||||
|
E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = E4B27C1410CBEB8E00536013;
|
||||||
|
remoteInfo = openFrameworks;
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = "";
|
||||||
|
dstSubfolderSpec = 10;
|
||||||
|
files = (
|
||||||
|
BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
0C3D119DB77E08C463602F6B /* Protocol.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Protocol.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Protocol.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
0C64F99C0758EC4AA46186D8 /* Connection.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Connection.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Connection.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
1027C25C1BA06D686A1D8762 /* ofxSpacebrew.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSpacebrew.h; path = ../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/src/ofxSpacebrew.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
20F3AB7BE263F7B762023258 /* Events.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Events.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Events.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
6520A5947E5A4C4ED7A91553 /* Reactor.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Reactor.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Reactor.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
9413D837F3E273803A5F776E /* jsoncpp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = jsoncpp.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/jsoncpp/jsoncpp.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
A2DC940594BBC41CB933B8E6 /* ofxSpacebrew.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSpacebrew.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/src/ofxSpacebrew.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
B5F6FF2F184A6F0E0063881D /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
|
||||||
|
B5F6FF30184A6F0E0063881D /* testApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testApp.cpp; sourceTree = "<group>"; };
|
||||||
|
B5F6FF31184A6F0E0063881D /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = testApp.h; sourceTree = "<group>"; };
|
||||||
|
B5F6FF32184A6F0E0063881D /* WaspFrameParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WaspFrameParser.cpp; sourceTree = "<group>"; };
|
||||||
|
B5F6FF33184A6F0E0063881D /* WaspFrameParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaspFrameParser.h; sourceTree = "<group>"; };
|
||||||
|
BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../of_v0.8.0_osx_release/libs/glut/lib/osx/GLUT.framework; sourceTree = "<group>"; };
|
||||||
|
C49850835B8C1A87752B848B /* Client.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Client.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Client.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
C53FF33B244987E09C8CC63F /* Server.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = Server.cpp; path = ../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src/Server.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../of_v0.8.0_osx_release/libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||||
|
E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
|
||||||
|
E4B69B5B0A3A1756003C02F2 /* waspmote_spacebrew_bridgeDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = waspmote_spacebrew_bridgeDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; };
|
||||||
|
E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../of_v0.8.0_osx_release/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
|
||||||
|
E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; };
|
||||||
|
E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = "<absolute>"; };
|
||||||
|
E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
E4B69B590A3A1756003C02F2 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */,
|
||||||
|
E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */,
|
||||||
|
E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */,
|
||||||
|
E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
|
||||||
|
E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
|
||||||
|
E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */,
|
||||||
|
E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */,
|
||||||
|
E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */,
|
||||||
|
E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */,
|
||||||
|
E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */,
|
||||||
|
E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */,
|
||||||
|
E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */,
|
||||||
|
E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */,
|
||||||
|
E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */,
|
||||||
|
E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */,
|
||||||
|
E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */,
|
||||||
|
E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
213FDE476BBC2B9B0347CC2F /* src */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
C53FF33B244987E09C8CC63F /* Server.cpp */,
|
||||||
|
6520A5947E5A4C4ED7A91553 /* Reactor.cpp */,
|
||||||
|
0C3D119DB77E08C463602F6B /* Protocol.cpp */,
|
||||||
|
20F3AB7BE263F7B762023258 /* Events.cpp */,
|
||||||
|
0C64F99C0758EC4AA46186D8 /* Connection.cpp */,
|
||||||
|
C49850835B8C1A87752B848B /* Client.cpp */,
|
||||||
|
);
|
||||||
|
name = src;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
5AC16A8D6EC87B59A03906C1 /* jsoncpp */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
9413D837F3E273803A5F776E /* jsoncpp.cpp */,
|
||||||
|
);
|
||||||
|
name = jsoncpp;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
70911A54686309FC932B3014 /* libs */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5AC16A8D6EC87B59A03906C1 /* jsoncpp */,
|
||||||
|
AB97697EC6F10E7234EFF261 /* ofxLibwebsockets */,
|
||||||
|
);
|
||||||
|
name = libs;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
961F0189D3FC79A9A11F56E1 /* ofxSpacebrew */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D6F68A2D0DCDC44496E81840 /* src */,
|
||||||
|
);
|
||||||
|
name = ofxSpacebrew;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
AAE50E341C7382A4EF10AF5A /* ofxLibwebsockets */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
70911A54686309FC932B3014 /* libs */,
|
||||||
|
);
|
||||||
|
name = ofxLibwebsockets;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
AB97697EC6F10E7234EFF261 /* ofxLibwebsockets */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
213FDE476BBC2B9B0347CC2F /* src */,
|
||||||
|
);
|
||||||
|
name = ofxLibwebsockets;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BB4B014C10F69532006C3DED /* addons */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AAE50E341C7382A4EF10AF5A /* ofxLibwebsockets */,
|
||||||
|
961F0189D3FC79A9A11F56E1 /* ofxSpacebrew */,
|
||||||
|
);
|
||||||
|
name = addons;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BBAB23C913894ECA00AA2426 /* system frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E7F985F515E0DE99003869B5 /* Accelerate.framework */,
|
||||||
|
E4C2424410CC5A17004149E2 /* AppKit.framework */,
|
||||||
|
E4C2424510CC5A17004149E2 /* Cocoa.framework */,
|
||||||
|
E4C2424610CC5A17004149E2 /* IOKit.framework */,
|
||||||
|
E45BE9710E8CC7DD009D7055 /* AGL.framework */,
|
||||||
|
E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */,
|
||||||
|
E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */,
|
||||||
|
E45BE9740E8CC7DD009D7055 /* Carbon.framework */,
|
||||||
|
E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */,
|
||||||
|
E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */,
|
||||||
|
E45BE9770E8CC7DD009D7055 /* CoreServices.framework */,
|
||||||
|
E45BE9790E8CC7DD009D7055 /* OpenGL.framework */,
|
||||||
|
E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */,
|
||||||
|
E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */,
|
||||||
|
E7E077E715D3B6510020DFD4 /* QTKit.framework */,
|
||||||
|
);
|
||||||
|
name = "system frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BBAB23BE13894E4700AA2426 /* GLUT.framework */,
|
||||||
|
);
|
||||||
|
name = "3rd party frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
D6F68A2D0DCDC44496E81840 /* src */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
A2DC940594BBC41CB933B8E6 /* ofxSpacebrew.cpp */,
|
||||||
|
1027C25C1BA06D686A1D8762 /* ofxSpacebrew.h */,
|
||||||
|
);
|
||||||
|
name = src;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E4328144138ABC890047C5CB /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E45BE5980E8CC70C009D7055 /* frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */,
|
||||||
|
BBAB23C913894ECA00AA2426 /* system frameworks */,
|
||||||
|
);
|
||||||
|
name = frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E4B69B4A0A3A1720003C02F2 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
|
||||||
|
E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
|
||||||
|
E4B69E1C0A3A1BDC003C02F2 /* src */,
|
||||||
|
E4EEC9E9138DF44700A80321 /* openFrameworks */,
|
||||||
|
BB4B014C10F69532006C3DED /* addons */,
|
||||||
|
E45BE5980E8CC70C009D7055 /* frameworks */,
|
||||||
|
E4B69B5B0A3A1756003C02F2 /* waspmote_spacebrew_bridgeDebug.app */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
E4B69E1C0A3A1BDC003C02F2 /* src */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
B5F6FF2F184A6F0E0063881D /* main.cpp */,
|
||||||
|
B5F6FF30184A6F0E0063881D /* testApp.cpp */,
|
||||||
|
B5F6FF31184A6F0E0063881D /* testApp.h */,
|
||||||
|
B5F6FF32184A6F0E0063881D /* WaspFrameParser.cpp */,
|
||||||
|
B5F6FF33184A6F0E0063881D /* WaspFrameParser.h */,
|
||||||
|
);
|
||||||
|
path = src;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
|
||||||
|
E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
|
||||||
|
);
|
||||||
|
name = openFrameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
E4B69B5A0A3A1756003C02F2 /* waspmote_spacebrew_bridge */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "waspmote_spacebrew_bridge" */;
|
||||||
|
buildPhases = (
|
||||||
|
E4B69B580A3A1756003C02F2 /* Sources */,
|
||||||
|
E4B69B590A3A1756003C02F2 /* Frameworks */,
|
||||||
|
E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
|
||||||
|
E4C2427710CC5ABF004149E2 /* CopyFiles */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = waspmote_spacebrew_bridge;
|
||||||
|
productName = myOFApp;
|
||||||
|
productReference = E4B69B5B0A3A1756003C02F2 /* waspmote_spacebrew_bridgeDebug.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
E4B69B4C0A3A1720003C02F2 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0460;
|
||||||
|
};
|
||||||
|
buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "waspmote_spacebrew_bridge" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
English,
|
||||||
|
Japanese,
|
||||||
|
French,
|
||||||
|
German,
|
||||||
|
);
|
||||||
|
mainGroup = E4B69B4A0A3A1720003C02F2;
|
||||||
|
productRefGroup = E4B69B4A0A3A1720003C02F2;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectReferences = (
|
||||||
|
{
|
||||||
|
ProductGroup = E4328144138ABC890047C5CB /* Products */;
|
||||||
|
ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
E4B69B5A0A3A1756003C02F2 /* waspmote_spacebrew_bridge */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXReferenceProxy section */
|
||||||
|
E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = openFrameworksDebug.a;
|
||||||
|
remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
/* End PBXReferenceProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "cp -f ../../../of_v0.8.0_osx_release/libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n";
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
E4B69B580A3A1756003C02F2 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
C6E1C4962CC70798B430DCBC /* jsoncpp.cpp in Sources */,
|
||||||
|
C5688FC85C0AE0B5E4E5F9CE /* Server.cpp in Sources */,
|
||||||
|
B44A2ABF3E925768864FD80A /* Reactor.cpp in Sources */,
|
||||||
|
4E0BC6F68981D5538037B4A1 /* Protocol.cpp in Sources */,
|
||||||
|
5AF10231860099AC511B768B /* Events.cpp in Sources */,
|
||||||
|
738C7523616DFE0113B46841 /* Connection.cpp in Sources */,
|
||||||
|
38AD44EF5A53275A6BCEB17D /* Client.cpp in Sources */,
|
||||||
|
76661BF99CD97417EE5B675D /* ofxSpacebrew.cpp in Sources */,
|
||||||
|
B5F6FF34184A6F0E0063881D /* main.cpp in Sources */,
|
||||||
|
B5F6FF35184A6F0E0063881D /* testApp.cpp in Sources */,
|
||||||
|
B5F6FF36184A6F0E0063881D /* WaspFrameParser.cpp in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = openFrameworks;
|
||||||
|
targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
E4B69B4E0A3A1720003C02F2 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ARCHS = "$(NATIVE_ARCH)";
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
GCC_AUTO_VECTORIZATION = YES;
|
||||||
|
GCC_ENABLE_SSE3_EXTENSIONS = YES;
|
||||||
|
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
|
||||||
|
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
|
||||||
|
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
|
||||||
|
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = NO;
|
||||||
|
GCC_WARN_UNUSED_VALUE = NO;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(OF_CORE_HEADERS)",
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/jsoncpp,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/jsoncpp/json,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/libwebsockets/include/,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/openssl,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/include,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/include/ofxLibwebsockets,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/src,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/libs,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/src,
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-D__MACOSX_CORE__",
|
||||||
|
"-lpthread",
|
||||||
|
"-mtune=native",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"$(OF_CORE_LIBS)",
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/libwebsockets/lib/osx/libwebsockets.a,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/lib/osx/libcrypto.a,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/lib/osx/libssl.a,
|
||||||
|
);
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
E4B69B4F0A3A1720003C02F2 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ARCHS = "$(NATIVE_ARCH)";
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
GCC_AUTO_VECTORIZATION = YES;
|
||||||
|
GCC_ENABLE_SSE3_EXTENSIONS = YES;
|
||||||
|
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
|
||||||
|
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 3;
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_UNROLL_LOOPS = YES;
|
||||||
|
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
|
||||||
|
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
|
||||||
|
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = NO;
|
||||||
|
GCC_WARN_UNUSED_VALUE = NO;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(OF_CORE_HEADERS)",
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/jsoncpp,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/jsoncpp/json,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/libwebsockets/include/,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/openssl,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/include,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/include/ofxLibwebsockets,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/ofxLibwebsockets/src,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/src,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/libs,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxSpacebrew/src,
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-D__MACOSX_CORE__",
|
||||||
|
"-lpthread",
|
||||||
|
"-mtune=native",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"$(OF_CORE_LIBS)",
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/libwebsockets/lib/osx/libwebsockets.a,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/lib/osx/libcrypto.a,
|
||||||
|
../../../of_v0.8.0_osx_release/addons/ofxLibwebsockets/libs/openssl/lib/osx/libssl.a,
|
||||||
|
);
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
E4B69B600A3A1757003C02F2 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||||
|
);
|
||||||
|
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../of_v0.8.0_osx_release/libs/glut/lib/osx\"";
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_MODEL_TUNING = NONE;
|
||||||
|
ICON = "$(ICON_NAME_DEBUG)";
|
||||||
|
ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
|
||||||
|
INFOPLIST_FILE = "openFrameworks-Info.plist";
|
||||||
|
INSTALL_PATH = "$(HOME)/Applications";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)Debug";
|
||||||
|
WRAPPER_EXTENSION = app;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
E4B69B610A3A1757003C02F2 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||||
|
);
|
||||||
|
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../of_v0.8.0_osx_release/libs/glut/lib/osx\"";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_MODEL_TUNING = NONE;
|
||||||
|
ICON = "$(ICON_NAME_RELEASE)";
|
||||||
|
ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
|
||||||
|
INFOPLIST_FILE = "openFrameworks-Info.plist";
|
||||||
|
INSTALL_PATH = "$(HOME)/Applications";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
|
||||||
|
"$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
WRAPPER_EXTENSION = app;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "waspmote_spacebrew_bridge" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
E4B69B4E0A3A1720003C02F2 /* Debug */,
|
||||||
|
E4B69B4F0A3A1720003C02F2 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "waspmote_spacebrew_bridge" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
E4B69B600A3A1757003C02F2 /* Debug */,
|
||||||
|
E4B69B610A3A1757003C02F2 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "self:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "0460"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "0460"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
buildConfiguration = "Release">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
|
||||||
|
BuildableName = "waspmote_spacebrew_bridge.app"
|
||||||
|
BlueprintName = "waspmote_spacebrew_bridge"
|
||||||
|
ReferencedContainer = "container:waspmote_spacebrew_bridge.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Release">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
0
waspmote/README.MD
Normal file
0
waspmote/README.MD
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
|
||||||
|
#include <WaspXBee802.h>
|
||||||
|
#include <WaspFrame.h> // CRITICAL INFRASTRUCTURE Frames defined in WaspFrame.h -- github --- XXXX
|
||||||
|
|
||||||
|
/*
|
||||||
|
CRITICAL INFRASTRUCTURE {values}:
|
||||||
|
SENSOR_CI0 <int>
|
||||||
|
SENSOR_CI1 <int>
|
||||||
|
SENSOR_CI2 <int>
|
||||||
|
SENSOR_CI3 <int>
|
||||||
|
SENSOR_CI4 <int>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SENSOR_PIN ANALOG1 // PIN for the ADC reading
|
||||||
|
|
||||||
|
// declare ADC reading variable
|
||||||
|
int delay_reading = 500;
|
||||||
|
int reading = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// declare packet
|
||||||
|
packetXBee* packet;
|
||||||
|
|
||||||
|
// mac address of this mote
|
||||||
|
char macHigh[10];
|
||||||
|
char macLow[11];
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
// blink
|
||||||
|
Utils.setLED(LED0, LED_ON);
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
delay(2000);
|
||||||
|
Utils.setLED(LED0, LED_OFF);
|
||||||
|
Utils.setLED(LED1, LED_OFF);
|
||||||
|
|
||||||
|
// setup radio + MAC
|
||||||
|
xbee802.ON();
|
||||||
|
delay(1000);
|
||||||
|
xbee802.flush();
|
||||||
|
|
||||||
|
// Get the XBee MAC address
|
||||||
|
int counter = 0;
|
||||||
|
while((xbee802.getOwnMac()!=0) && (counter<12))
|
||||||
|
{
|
||||||
|
xbee802.getOwnMac();
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert mac address from array to string
|
||||||
|
Utils.hex2str(xbee802.sourceMacHigh, macHigh, 4);
|
||||||
|
Utils.hex2str(xbee802.sourceMacLow, macLow, 4);
|
||||||
|
|
||||||
|
// DEBUG: print MAC to console
|
||||||
|
USB.ON();
|
||||||
|
USB.print("mac address:");
|
||||||
|
USB.print(macHigh);
|
||||||
|
USB.println(macLow);
|
||||||
|
USB.OFF();
|
||||||
|
|
||||||
|
//B.0 set mote id (16-Byte max)
|
||||||
|
//frame.setID("CRITICAL-0");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
// A. ADC READING
|
||||||
|
|
||||||
|
//A.1 PWR ON SENSOR
|
||||||
|
PWR.setSensorPower(SENS_3V3,SENS_ON);
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
|
||||||
|
//A.2 READ VALUE
|
||||||
|
reading = analogRead(SENSOR_PIN);
|
||||||
|
|
||||||
|
//A.3 PWR OFF SENSOR
|
||||||
|
PWR.setSensorPower(SENS_3V3,SENS_OFF);
|
||||||
|
|
||||||
|
// B. BROADCAST PACKET
|
||||||
|
|
||||||
|
//B.1 create ASCII frame
|
||||||
|
frame.createFrame(ASCII,"CRITICAL-0");
|
||||||
|
|
||||||
|
//B.1.1 add CRITICAL INFRASTRUCTURE sensor descriptors
|
||||||
|
frame.addSensor(SENSOR_MAC, macLow); // MAC
|
||||||
|
frame.addSensor(SENSOR_CI0, reading); // CI0 <------------------------- IMPORTANT! (see nomenclature in the header of this file)
|
||||||
|
frame.addSensor(SENSOR_BAT, PWR.getBatteryLevel()); // Battery level
|
||||||
|
|
||||||
|
//DEBUG: print frame to console
|
||||||
|
frame.showFrame();
|
||||||
|
|
||||||
|
//B.2 create packet
|
||||||
|
packet=(packetXBee*) calloc(1,sizeof(packetXBee)); // memory allocation
|
||||||
|
packet->mode=BROADCAST; // set Broadcast mode
|
||||||
|
|
||||||
|
//B.3 send packet
|
||||||
|
// radio ON
|
||||||
|
xbee802.ON();
|
||||||
|
// sets Destination parameters [000000000000FFFF -> Broadcast]
|
||||||
|
xbee802.setDestinationParams(packet, "000000000000FFFF", frame.buffer, frame.length);
|
||||||
|
// send
|
||||||
|
xbee802.sendXBee(packet);
|
||||||
|
|
||||||
|
//B.4 check status (DEBUG)
|
||||||
|
if(xbee802.error_TX == 0) {
|
||||||
|
USB.println(F("TX OK"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("TX ERROR"));
|
||||||
|
}
|
||||||
|
|
||||||
|
//B.5 free memory
|
||||||
|
free(packet);
|
||||||
|
packet = NULL;
|
||||||
|
|
||||||
|
//C. Delay
|
||||||
|
|
||||||
|
delay(1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
#define SENSOR_PIN ANALOG1
|
||||||
|
|
||||||
|
int delay_reading = 500;
|
||||||
|
int reading = 0;
|
||||||
|
char reading_buff[20];
|
||||||
|
|
||||||
|
// define folder and file to store data
|
||||||
|
char* logfile="log.csv";
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
USB.ON();
|
||||||
|
|
||||||
|
SD.ON();
|
||||||
|
//SD.mkdir(path);
|
||||||
|
|
||||||
|
// delete file
|
||||||
|
if(SD.del(logfile)) {
|
||||||
|
USB.println(F("file deleted"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT deleted"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create file
|
||||||
|
if(SD.create(logfile)) {
|
||||||
|
USB.println(F("file created"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT created"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
//PWR ON SENSOR
|
||||||
|
PWR.setSensorPower(SENS_3V3,SENS_ON);
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
|
||||||
|
//READ VALUE
|
||||||
|
reading = analogRead(SENSOR_PIN);
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
|
||||||
|
//PWR OFF SENSOR
|
||||||
|
Utils.setLED(LED1, LED_OFF);
|
||||||
|
PWR.setSensorPower(SENS_3V3,SENS_OFF);
|
||||||
|
|
||||||
|
//WRITE DATA TO FILE (may need some convertion here...)
|
||||||
|
Utils.long2array(reading, reading_buff);
|
||||||
|
SD.appendln(logfile, reading_buff);
|
||||||
|
|
||||||
|
USB.println(reading_buff);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
#include <WaspSensorPrototyping_v20.h>
|
||||||
|
|
||||||
|
int delay_reading = 500;
|
||||||
|
|
||||||
|
char reading_buff[20];
|
||||||
|
|
||||||
|
// define folder and file to store data
|
||||||
|
char* logfile="log.csv";
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
USB.ON();
|
||||||
|
|
||||||
|
SD.ON();
|
||||||
|
|
||||||
|
// delete file
|
||||||
|
if(SD.del(logfile)) {
|
||||||
|
USB.println(F("file deleted"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT deleted"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create file
|
||||||
|
if(SD.create(logfile)) {
|
||||||
|
USB.println(F("file created"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT created"));
|
||||||
|
}
|
||||||
|
|
||||||
|
delay(100);
|
||||||
|
|
||||||
|
// Sensor board
|
||||||
|
SensorProtov20.ON();
|
||||||
|
// RTC
|
||||||
|
RTC.ON();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
|
||||||
|
float adc = SensorProtov20.readADC();
|
||||||
|
|
||||||
|
Utils.float2String(adc, reading_buff, 6);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
|
||||||
|
Utils.setLED(LED1, LED_OFF);
|
||||||
|
|
||||||
|
SD.appendln(logfile, reading_buff);
|
||||||
|
|
||||||
|
USB.println(reading_buff);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
#define SENSOR_PIN ANALOG2
|
||||||
|
|
||||||
|
int delay_reading = 100;
|
||||||
|
char reading_buff[20];
|
||||||
|
|
||||||
|
// define folder and file to store data
|
||||||
|
char* logfile="log.csv";
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
USB.ON();
|
||||||
|
|
||||||
|
SD.ON();
|
||||||
|
|
||||||
|
// delete file
|
||||||
|
if(SD.del(logfile)) {
|
||||||
|
USB.println(F("file deleted"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT deleted"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create file
|
||||||
|
if(SD.create(logfile)) {
|
||||||
|
USB.println(F("file created"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT created"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// accelerometer
|
||||||
|
ACC.ON();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
|
||||||
|
sprintf(reading_buff, "%d,%d,%d", ACC.getX(), ACC.getY(), ACC.getZ());
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
|
||||||
|
//PWR OFF SENSOR
|
||||||
|
Utils.setLED(LED1, LED_OFF);
|
||||||
|
|
||||||
|
SD.appendln(logfile, reading_buff);
|
||||||
|
|
||||||
|
USB.println(reading_buff);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
#define SENSOR_PIN ANALOG2
|
||||||
|
|
||||||
|
int delay_reading = 100;
|
||||||
|
char reading_buff[20];
|
||||||
|
|
||||||
|
// define folder and file to store data
|
||||||
|
char* logfile="log.csv";
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
USB.ON();
|
||||||
|
|
||||||
|
SD.ON();
|
||||||
|
|
||||||
|
// delete file
|
||||||
|
if(SD.del(logfile)) {
|
||||||
|
USB.println(F("file deleted"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT deleted"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create file
|
||||||
|
if(SD.create(logfile)) {
|
||||||
|
USB.println(F("file created"));
|
||||||
|
} else {
|
||||||
|
USB.println(F("file NOT created"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTC
|
||||||
|
RTC.ON();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
Utils.setLED(LED1, LED_ON);
|
||||||
|
|
||||||
|
float temp = RTC.getTemperature();
|
||||||
|
|
||||||
|
Utils.float2String(temp, reading_buff, 3);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
|
||||||
|
//PWR OFF SENSOR
|
||||||
|
Utils.setLED(LED1, LED_OFF);
|
||||||
|
|
||||||
|
SD.appendln(logfile, reading_buff);
|
||||||
|
|
||||||
|
USB.println(reading_buff);
|
||||||
|
|
||||||
|
delay(delay_reading / 2);
|
||||||
|
}
|
||||||
|
|
||||||
BIN
waspmote/docs/data_frame_guide.pdf
Normal file
BIN
waspmote/docs/data_frame_guide.pdf
Normal file
Binary file not shown.
1765
waspmote/libraries/Frame/WaspFrame.cpp
Executable file
1765
waspmote/libraries/Frame/WaspFrame.cpp
Executable file
File diff suppressed because it is too large
Load Diff
634
waspmote/libraries/Frame/WaspFrame.h
Executable file
634
waspmote/libraries/Frame/WaspFrame.h
Executable file
@ -0,0 +1,634 @@
|
|||||||
|
/*! \file WaspFrame.h
|
||||||
|
\brief Library for creating formated frames
|
||||||
|
|
||||||
|
Copyright (C) 2012 Libelium Comunicaciones Distribuidas S.L.
|
||||||
|
http://www.libelium.com
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Version: 1.0
|
||||||
|
Design: David Gascón
|
||||||
|
Implementation: Yuri Carmona, Javier Siscart, Joaquín Ruiz
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def WaspFrame_h
|
||||||
|
*/
|
||||||
|
#ifndef WaspFrame_h
|
||||||
|
#define WaspFrame_h
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <WConstants.h>
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Definitions & Declarations
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// Gases Board sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_CO
|
||||||
|
\brief Carbon Monoxide measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_CO2
|
||||||
|
\brief Carbon Dioxide measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_O2
|
||||||
|
\brief Oxygen measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_CH4
|
||||||
|
\brief Methane measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LPG
|
||||||
|
\brief Liquefied Pretoleum Gases measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_NH3
|
||||||
|
\brief Ammonia measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_AP1
|
||||||
|
\brief Air Pollutans 1 measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_AP2
|
||||||
|
\brief Air Pollutans 2 measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_SV
|
||||||
|
\brief Solvent Vapors measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_NO2
|
||||||
|
\brief Nitrogen Dioxide measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_O3
|
||||||
|
\brief Ozone measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_VOC
|
||||||
|
\brief Hydrocarbons measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_TC
|
||||||
|
\brief Temperature Celsius measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_TF
|
||||||
|
\brief Temperature Fahrenheit measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_HUM
|
||||||
|
\brief Humidity measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_PA
|
||||||
|
\brief Pressure atmospheric measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Events Board Sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_PW
|
||||||
|
\brief Pressure/Weight measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_BEND
|
||||||
|
\brief Bend measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_VBR
|
||||||
|
\brief Vibration measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_HALL
|
||||||
|
\brief Hall Effect measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LP
|
||||||
|
\brief Liquid Presence measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LL
|
||||||
|
\brief Liquid Level measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LUM
|
||||||
|
\brief Luminosity measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_PIR
|
||||||
|
\brief Presence measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_ST
|
||||||
|
\brief Stretch measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Smart cities sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_MCP
|
||||||
|
\brief Microphone measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_CDG
|
||||||
|
\brief Crack detection gauge measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_CPG
|
||||||
|
\brief Crack propagation gauge measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LD
|
||||||
|
\brief Linear Displacement measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_DUST
|
||||||
|
\brief Dust measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_US
|
||||||
|
\brief Ultrasound measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Smart parking sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_MF
|
||||||
|
\brief Magnetic Field measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_PS
|
||||||
|
\brief Parking Spot Status measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
/// Agriculture sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_AIR
|
||||||
|
\brief Air Temperature / Humidity measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_SOIL
|
||||||
|
\brief Soil Temperature / Moisture measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LW
|
||||||
|
\brief Leaf Wetness measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_PAR
|
||||||
|
\brief Solar Radiation measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_UV
|
||||||
|
\brief Ultraviolet Radiation measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_TD
|
||||||
|
\brief Trunk Diameter measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_SD
|
||||||
|
\brief Stem Diameter measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_FD
|
||||||
|
\brief Fruit Diameter measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_ANE
|
||||||
|
\brief Anemometer measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_WV
|
||||||
|
\brief Wind Vane measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_PLV
|
||||||
|
\brief Pluviometer measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Radiation sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_RAD
|
||||||
|
\brief Geiger tube measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Smart meetering sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_CU
|
||||||
|
\brief Current measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_WF
|
||||||
|
\brief Water flow measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_LC
|
||||||
|
\brief Load cell measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_DF
|
||||||
|
\brief Distance foil measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/// Additional sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_BAT
|
||||||
|
\brief Battery measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_GPS
|
||||||
|
\brief Global Positioning System measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_RSSI
|
||||||
|
\brief RSSI measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_MAC
|
||||||
|
\brief MAC Address measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_NA
|
||||||
|
\brief Network Address measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_NID
|
||||||
|
\brief Network Identifier origin measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_DATE
|
||||||
|
\brief Date measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_TIME
|
||||||
|
\brief Time measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_GMT
|
||||||
|
\brief GMT measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_RAM
|
||||||
|
\brief RAM measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_IN_TEMP
|
||||||
|
\brief Internal temperature measurement type
|
||||||
|
*/
|
||||||
|
/*! \def SENSOR_MILLIS
|
||||||
|
\brief Millis measurement type
|
||||||
|
*/
|
||||||
|
|
||||||
|
/// Special sensor measurements
|
||||||
|
|
||||||
|
/*! \def SENSOR_STR
|
||||||
|
\brief String type
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Gases
|
||||||
|
#define SENSOR_CO 0
|
||||||
|
#define SENSOR_CO2 1
|
||||||
|
#define SENSOR_O2 2
|
||||||
|
#define SENSOR_CH4 3
|
||||||
|
#define SENSOR_LPG 4
|
||||||
|
#define SENSOR_NH3 5
|
||||||
|
#define SENSOR_AP1 6
|
||||||
|
#define SENSOR_AP2 7
|
||||||
|
#define SENSOR_SV 8
|
||||||
|
#define SENSOR_NO2 9
|
||||||
|
#define SENSOR_O3 10
|
||||||
|
#define SENSOR_VOC 11
|
||||||
|
#define SENSOR_TCA 12
|
||||||
|
#define SENSOR_TFA 13
|
||||||
|
#define SENSOR_HUMA 14
|
||||||
|
#define SENSOR_PA 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
#define SENSOR_PW 16
|
||||||
|
#define SENSOR_BEND 17
|
||||||
|
#define SENSOR_VBR 18
|
||||||
|
#define SENSOR_HALL 19
|
||||||
|
#define SENSOR_LP 20
|
||||||
|
#define SENSOR_LL 21
|
||||||
|
#define SENSOR_LUM 22
|
||||||
|
#define SENSOR_PIR 23
|
||||||
|
#define SENSOR_ST 24
|
||||||
|
|
||||||
|
// Smart Cities
|
||||||
|
#define SENSOR_MCP 25
|
||||||
|
#define SENSOR_CDG 26
|
||||||
|
#define SENSOR_CPG 27
|
||||||
|
#define SENSOR_LD 28
|
||||||
|
#define SENSOR_DUST 29
|
||||||
|
#define SENSOR_US 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
#define SENSOR_MF 31
|
||||||
|
#define SENSOR_PS 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
#define SENSOR_TCB 33
|
||||||
|
#define SENSOR_TFB 34
|
||||||
|
#define SENSOR_HUMB 35
|
||||||
|
#define SENSOR_SOILT 36
|
||||||
|
#define SENSOR_SOIL 37
|
||||||
|
#define SENSOR_LW 38
|
||||||
|
#define SENSOR_PAR 39
|
||||||
|
#define SENSOR_UV 40
|
||||||
|
#define SENSOR_TD 41
|
||||||
|
#define SENSOR_SD 42
|
||||||
|
#define SENSOR_FD 43
|
||||||
|
#define SENSOR_ANE 44
|
||||||
|
#define SENSOR_WV 45
|
||||||
|
#define SENSOR_PLV 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
#define SENSOR_RAD 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
#define SENSOR_CU 48
|
||||||
|
#define SENSOR_WF 49
|
||||||
|
#define SENSOR_LC 50
|
||||||
|
#define SENSOR_DF 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
#define SENSOR_BAT 52
|
||||||
|
#define SENSOR_GPS 53
|
||||||
|
#define SENSOR_RSSI 54
|
||||||
|
#define SENSOR_MAC 55
|
||||||
|
#define SENSOR_NA 56
|
||||||
|
#define SENSOR_NID 57
|
||||||
|
#define SENSOR_DATE 58
|
||||||
|
#define SENSOR_TIME 59
|
||||||
|
#define SENSOR_GMT 60
|
||||||
|
#define SENSOR_RAM 61
|
||||||
|
#define SENSOR_IN_TEMP 62
|
||||||
|
#define SENSOR_ACC 63
|
||||||
|
#define SENSOR_MILLIS 64
|
||||||
|
|
||||||
|
// Special
|
||||||
|
#define SENSOR_STR 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
#define SENSOR_MBT 66
|
||||||
|
#define SENSOR_MWIFI 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
#define SENSOR_UID 68
|
||||||
|
#define SENSOR_RB 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
#define SENSOR_CI0 70
|
||||||
|
#define SENSOR_CI1 71
|
||||||
|
#define SENSOR_CI2 72
|
||||||
|
#define SENSOR_CI3 73
|
||||||
|
#define SENSOR_CI4 74
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// define MACROS in order to manage bits inside Bytes
|
||||||
|
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
|
||||||
|
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
|
||||||
|
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
|
||||||
|
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def MAX_FRAME
|
||||||
|
\brief maximum size in bytes of the frame
|
||||||
|
*/
|
||||||
|
#define MAX_FRAME 150
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def UNICAST_16B
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def UNICAST_64B
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def BROADCAST_MODE
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
#define UNICAST_16B 0
|
||||||
|
#define UNICAST_64B 1
|
||||||
|
#define BROADCAST_MODE 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def EXAMPLE_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def TIMEOUT_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def EVENT_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def ALARM_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def SERVICE1_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
/*! \def SERVICE2_FRAME
|
||||||
|
\brief
|
||||||
|
*/
|
||||||
|
#define EXAMPLE_FRAME 0
|
||||||
|
#define TIMEOUT_FRAME 1
|
||||||
|
#define EVENT_FRAME 2
|
||||||
|
#define ALARM_FRAME 3
|
||||||
|
#define SERVICE1_FRAME 4
|
||||||
|
#define SERVICE2_FRAME 5
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def TYPE_UINT8
|
||||||
|
\brief TYPE_UINT8 defines the constant for uint8_t variables types (1 Byte)
|
||||||
|
*/
|
||||||
|
/*! \def TYPE_INT
|
||||||
|
\brief TYPE_INT defines the constant for int (int16_t) variables types (2 Bytes)
|
||||||
|
*/
|
||||||
|
/*! \def TYPE_FLOAT
|
||||||
|
\brief TYPE_FLOAT defines the constant for double/float variables types (4 Bytes)
|
||||||
|
*/
|
||||||
|
/*! \def TYPE_CHAR
|
||||||
|
\brief TYPE_CHAR defines the constant for char* (strings) variables types (variable Bytes)
|
||||||
|
*/
|
||||||
|
/*! \def TYPE_ULONG
|
||||||
|
\brief TYPE_ULONG defines the constant for unsigned long int variables types (4 Bytes)
|
||||||
|
*/
|
||||||
|
#define TYPE_UINT8 0
|
||||||
|
#define TYPE_INT 1
|
||||||
|
#define TYPE_FLOAT 2
|
||||||
|
#define TYPE_CHAR 3
|
||||||
|
#define TYPE_ULONG 4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! \def ASCII
|
||||||
|
\brief ASCII frame mode
|
||||||
|
*/
|
||||||
|
/*! \def BINARY
|
||||||
|
\brief BINARY frame mode
|
||||||
|
*/
|
||||||
|
#define ASCII 1
|
||||||
|
#define BINARY 0
|
||||||
|
|
||||||
|
|
||||||
|
//! Variable : Waspmote serial id
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
extern volatile unsigned long _serial_id;
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Class
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
//! WaspFrame Class
|
||||||
|
/*!
|
||||||
|
WaspFrame Class defines all the variables and functions used to create the
|
||||||
|
sensor frames in Waspmote
|
||||||
|
*/
|
||||||
|
class WaspFrame
|
||||||
|
{
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
//! Function : store the sequence number in EEPROM
|
||||||
|
/*! This function stores the sequence number in the EEPROM address specified
|
||||||
|
* by the SEQUENCE_ADDR address.
|
||||||
|
*/
|
||||||
|
void storeSequence(uint8_t seqNumber);
|
||||||
|
|
||||||
|
//! Function : read the sequence number from EEPROM
|
||||||
|
/*! This function reads the sequence number from the EEPROM address specified
|
||||||
|
* by the SEQUENCE_ADDR address.
|
||||||
|
*/
|
||||||
|
uint8_t readSequence(void);
|
||||||
|
|
||||||
|
//! Function : check if maximum length is reached
|
||||||
|
/*! Check if maximum length is reached when introducing a new frame field
|
||||||
|
*/
|
||||||
|
uint8_t checkLength(int sum);
|
||||||
|
|
||||||
|
//! Variable : sequence number
|
||||||
|
/*!
|
||||||
|
This is the frame sequence number in order to control if any packet is lost
|
||||||
|
*/
|
||||||
|
uint8_t sequence;
|
||||||
|
|
||||||
|
//! Variable : number of sensor values within the frame
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
uint8_t numFields;
|
||||||
|
|
||||||
|
//! Variable : frame format: ASCII (0) or BINARY (1)
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
uint8_t _mode;
|
||||||
|
|
||||||
|
//! Variable : maximum frame size
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
uint8_t _maxSize;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//! class constructor
|
||||||
|
/*!
|
||||||
|
Initialize the class attributes
|
||||||
|
\param void
|
||||||
|
\return void
|
||||||
|
*/
|
||||||
|
WaspFrame();
|
||||||
|
|
||||||
|
//! Function : set the frame maximum size
|
||||||
|
/*! This function sets the frame maximum size
|
||||||
|
\param uint8_t size size to set as maximum size. It can't exceed the
|
||||||
|
MAX_FRAME constant
|
||||||
|
\return void
|
||||||
|
*/
|
||||||
|
void setFrameSize( uint8_t size);
|
||||||
|
|
||||||
|
//! Function : set the frame maximum size
|
||||||
|
/*! This function sets the frame maximum size depending on the protocol,
|
||||||
|
addressing, linkEncryption mode, AESEncryption.
|
||||||
|
\param uint8_t protocol defines the procotol used
|
||||||
|
\param uint8_t linkEncryption defines if XBee encryption is enabled or not
|
||||||
|
\param uint8_t AESEncryption defines if AES encryption is used or not
|
||||||
|
\return void
|
||||||
|
*/
|
||||||
|
void setFrameSize( uint8_t protocol,
|
||||||
|
uint8_t linkEncryption,
|
||||||
|
uint8_t AESEncryption);
|
||||||
|
|
||||||
|
//! Function : set the frame maximum size
|
||||||
|
/*! This function sets the frame maximum size depending on the protocol,
|
||||||
|
addressing, linkEncryption mode, AESEncryption.
|
||||||
|
\param uint8_t protocol defines the procotol used
|
||||||
|
\param uint8_t addressing defines the addressing used
|
||||||
|
\param uint8_t linkEncryption defines if XBee encryption is enabled or not
|
||||||
|
\param uint8_t AESEncryption defines if AES encryption is used or not
|
||||||
|
\return void
|
||||||
|
*/
|
||||||
|
void setFrameSize( uint8_t protocol,
|
||||||
|
uint8_t addressing,
|
||||||
|
uint8_t linkEncryption,
|
||||||
|
uint8_t AESEncryption);
|
||||||
|
|
||||||
|
//! Function : get the frame maximum size
|
||||||
|
/*! This function gets the frame maximum size
|
||||||
|
\return uint8_t indicating the value of _maxSize
|
||||||
|
*/
|
||||||
|
uint8_t getFrameSize( void );
|
||||||
|
|
||||||
|
//! Function : creates a new frame
|
||||||
|
/*! This function creates a new ASCII frame getting the mote ID from the
|
||||||
|
* EEPROM memory.
|
||||||
|
*/
|
||||||
|
void createFrame(void);
|
||||||
|
|
||||||
|
//! Function : creates a new frame
|
||||||
|
/*! This function creates a new frame.
|
||||||
|
\param uint8_t mode specifies the frame mode: BINARY or ASCII
|
||||||
|
\return const char* moteID defines the mote Identifier
|
||||||
|
*/
|
||||||
|
void createFrame(uint8_t mode, const char* moteID);
|
||||||
|
|
||||||
|
//! Function : set the frame type
|
||||||
|
/*! This function sets the frame type (fourth byte of the frame header)
|
||||||
|
\param uint8_t type specifies the frame type:
|
||||||
|
EXAMPLE_FRAME
|
||||||
|
TIMEOUT_FRAME
|
||||||
|
EVENT_FRAME
|
||||||
|
ALARM_FRAME
|
||||||
|
SERVICE1_FRAME
|
||||||
|
SERVICE2_FRAME
|
||||||
|
\return void
|
||||||
|
*/
|
||||||
|
void setFrameType(uint8_t type);
|
||||||
|
|
||||||
|
//! Function : shows the frame
|
||||||
|
/*! This function prints the actual frame
|
||||||
|
*/
|
||||||
|
void showFrame(void);
|
||||||
|
|
||||||
|
int8_t addSensor(uint8_t type, int value);
|
||||||
|
int8_t addSensor(uint8_t type, unsigned long value);
|
||||||
|
int8_t addSensor(uint8_t type, double value);
|
||||||
|
int8_t addSensor(uint8_t type, double value, int N);
|
||||||
|
int8_t addSensor(uint8_t type, char* str);
|
||||||
|
|
||||||
|
int8_t addSensor(uint8_t type, double val1, double val2);
|
||||||
|
int8_t addSensor(uint8_t type, uint8_t val1, uint8_t val2, uint8_t val3);
|
||||||
|
int8_t addSensor(uint8_t type, uint8_t val1, uint8_t val2, uint8_t val3, int val4);
|
||||||
|
int8_t addSensor(uint8_t type, int val1,int val2,int val3);
|
||||||
|
int8_t addSensor(uint8_t type, double val1,double val2,double val3);
|
||||||
|
|
||||||
|
int8_t checkFields(uint8_t type, uint8_t typeVal, uint8_t fields);
|
||||||
|
|
||||||
|
void setID(char* moteID);
|
||||||
|
void getID(char* moteID);
|
||||||
|
|
||||||
|
// Sends Waspmote unique ID with the frame
|
||||||
|
void setCloudCompatibility(void);
|
||||||
|
|
||||||
|
//! Variable : buffer where the frame is created in
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
uint8_t buffer[MAX_FRAME+1];
|
||||||
|
|
||||||
|
//! Variable : length of the frame
|
||||||
|
/*!
|
||||||
|
*/
|
||||||
|
uint16_t length;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
extern WaspFrame frame;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
574
waspmote/libraries/Frame/WaspFrameConstants.h
Executable file
574
waspmote/libraries/Frame/WaspFrameConstants.h
Executable file
@ -0,0 +1,574 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#ifndef WaspFrameconstants_h
|
||||||
|
#define WaspFrameconstants_h
|
||||||
|
|
||||||
|
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// Flash defines //////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* The following Flash strings, define the tags for all Waspmote sensors.
|
||||||
|
* These TAGs are used in ASCII frames in order to indicate every sensor field
|
||||||
|
* that has been included inside the frame.
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
// Gases
|
||||||
|
prog_char str_CO[] PROGMEM = "CO"; // 0
|
||||||
|
prog_char str_CO2[] PROGMEM = "CO2"; // 1
|
||||||
|
prog_char str_O2[] PROGMEM = "O2"; // 2
|
||||||
|
prog_char str_CH4[] PROGMEM = "CH4"; // 3
|
||||||
|
prog_char str_LPG[] PROGMEM = "LPG"; // 4
|
||||||
|
prog_char str_NH3[] PROGMEM = "NH3"; // 5
|
||||||
|
prog_char str_AP1[] PROGMEM = "AP1"; // 6
|
||||||
|
prog_char str_AP2[] PROGMEM = "AP2"; // 7
|
||||||
|
prog_char str_SV[] PROGMEM = "SV"; // 8
|
||||||
|
prog_char str_NO2[] PROGMEM = "NO2"; // 9
|
||||||
|
prog_char str_O3[] PROGMEM = "O3"; // 10
|
||||||
|
prog_char str_VOC[] PROGMEM = "VOC"; // 11
|
||||||
|
prog_char str_TCA[] PROGMEM = "TCA"; // 12
|
||||||
|
prog_char str_TFA[] PROGMEM = "TFA"; // 13
|
||||||
|
prog_char str_HUMA[] PROGMEM = "HUMA"; // 14
|
||||||
|
prog_char str_PA[] PROGMEM = "PA"; // 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
prog_char str_PW[] PROGMEM = "PW"; // 16
|
||||||
|
prog_char str_BEND[] PROGMEM = "BEND"; // 17
|
||||||
|
prog_char str_VBR[] PROGMEM = "VBR"; // 18
|
||||||
|
prog_char str_HALL[] PROGMEM = "HALL"; // 19
|
||||||
|
prog_char str_LP[] PROGMEM = "LP"; // 20
|
||||||
|
prog_char str_LL[] PROGMEM = "LL"; // 21
|
||||||
|
prog_char str_LUM[] PROGMEM = "LUM"; // 22
|
||||||
|
prog_char str_PIR[] PROGMEM = "PIR"; // 23
|
||||||
|
prog_char str_ST[] PROGMEM = "ST"; // 24
|
||||||
|
|
||||||
|
// Smart cities
|
||||||
|
prog_char str_MCP[] PROGMEM = "MCP"; // 25
|
||||||
|
prog_char str_CDG[] PROGMEM = "CDG"; // 26
|
||||||
|
prog_char str_CPG[] PROGMEM = "CPG"; // 27
|
||||||
|
prog_char str_LD[] PROGMEM = "LD"; // 28
|
||||||
|
prog_char str_DUST[] PROGMEM = "DUST"; // 29
|
||||||
|
prog_char str_US[] PROGMEM = "US"; // 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
prog_char str_MF[] PROGMEM = "MF"; // 31
|
||||||
|
prog_char str_PS[] PROGMEM = "PS"; // 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
prog_char str_TCB[] PROGMEM = "TCB"; // 33
|
||||||
|
prog_char str_TFB[] PROGMEM = "TFB"; // 34
|
||||||
|
prog_char str_HUMB[] PROGMEM = "HUMB"; // 35
|
||||||
|
prog_char str_SOILT[] PROGMEM = "SOILT"; // 36
|
||||||
|
prog_char str_SOIL[] PROGMEM = "SOIL"; // 37
|
||||||
|
prog_char str_LW[] PROGMEM = "LW"; // 38
|
||||||
|
prog_char str_PAR[] PROGMEM = "PAR"; // 39
|
||||||
|
prog_char str_UV[] PROGMEM = "UV"; // 40
|
||||||
|
prog_char str_TD[] PROGMEM = "TD"; // 41
|
||||||
|
prog_char str_SD[] PROGMEM = "SD"; // 42
|
||||||
|
prog_char str_FD[] PROGMEM = "FD"; // 43
|
||||||
|
prog_char str_ANE[] PROGMEM = "ANE"; // 44
|
||||||
|
prog_char str_WV[] PROGMEM = "WV"; // 45
|
||||||
|
prog_char str_PLV[] PROGMEM = "PLV"; // 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
prog_char str_RAD[] PROGMEM = "RAD"; // 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
prog_char str_CU[] PROGMEM = "CU"; // 48
|
||||||
|
prog_char str_WF[] PROGMEM = "WF"; // 49
|
||||||
|
prog_char str_LC[] PROGMEM = "LC"; // 50
|
||||||
|
prog_char str_DF[] PROGMEM = "DF"; // 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
prog_char str_BAT[] PROGMEM = "BAT"; // 52
|
||||||
|
prog_char str_GPS[] PROGMEM = "GPS"; // 53
|
||||||
|
prog_char str_RSSI[] PROGMEM = "RSSI"; // 54
|
||||||
|
prog_char str_MAC[] PROGMEM = "MAC"; // 55
|
||||||
|
prog_char str_NA[] PROGMEM = "NA"; // 56
|
||||||
|
prog_char str_NID[] PROGMEM = "NID"; // 57
|
||||||
|
prog_char str_DATE[] PROGMEM = "DATE"; // 58
|
||||||
|
prog_char str_TIME[] PROGMEM = "TIME"; // 59
|
||||||
|
prog_char str_GMT[] PROGMEM = "GMT"; // 60
|
||||||
|
prog_char str_RAM[] PROGMEM = "RAM"; // 61
|
||||||
|
prog_char str_IN_TEMP[] PROGMEM = "IN_TEMP"; // 62
|
||||||
|
prog_char str_ACC[] PROGMEM = "ACC"; // 63
|
||||||
|
prog_char str_MILLIS[] PROGMEM = "MILLIS"; // 64
|
||||||
|
|
||||||
|
// Special
|
||||||
|
prog_char str_STR[] PROGMEM = "STR"; // 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
prog_char str_MBT[] PROGMEM = "MBT"; // 66
|
||||||
|
prog_char str_MWIFI[] PROGMEM = "MWIFI"; // 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
prog_char str_UID[] PROGMEM = "UID"; // 68
|
||||||
|
prog_char str_RB[] PROGMEM = "RB"; // 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
prog_char str_CI0[] PROGMEM = "CI0"; // 70
|
||||||
|
prog_char str_CI1[] PROGMEM = "CI1"; // 71
|
||||||
|
prog_char str_CI2[] PROGMEM = "CI2"; // 72
|
||||||
|
prog_char str_CI3[] PROGMEM = "CI3"; // 73
|
||||||
|
prog_char str_CI4[] PROGMEM = "CI4"; // 74
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* SENSOR_TABLE - Sensor label table
|
||||||
|
*
|
||||||
|
* This table specifies the tag for each sensor. Every tag has been previously
|
||||||
|
* defined in Flash memory
|
||||||
|
******************************************************************************/
|
||||||
|
PROGMEM const char* SENSOR_TABLE[] =
|
||||||
|
{
|
||||||
|
// Gases
|
||||||
|
str_CO, // 0
|
||||||
|
str_CO2, // 1
|
||||||
|
str_O2, // 2
|
||||||
|
str_CH4, // 3
|
||||||
|
str_LPG, // 4
|
||||||
|
str_NH3, // 5
|
||||||
|
str_AP1, // 6
|
||||||
|
str_AP2, // 7
|
||||||
|
str_SV, // 8
|
||||||
|
str_NO2, // 9
|
||||||
|
str_O3, // 10
|
||||||
|
str_VOC, // 11
|
||||||
|
str_TCA, // 12
|
||||||
|
str_TFA, // 13
|
||||||
|
str_HUMA, // 14
|
||||||
|
str_PA, // 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
str_PW, // 16
|
||||||
|
str_BEND, // 17
|
||||||
|
str_VBR, // 18
|
||||||
|
str_HALL, // 19
|
||||||
|
str_LP, // 20
|
||||||
|
str_LL, // 21
|
||||||
|
str_LUM, // 22
|
||||||
|
str_PIR, // 23
|
||||||
|
str_ST, // 24
|
||||||
|
|
||||||
|
// Smart cities
|
||||||
|
str_MCP, // 25
|
||||||
|
str_CDG, // 26
|
||||||
|
str_CPG, // 27
|
||||||
|
str_LD, // 28
|
||||||
|
str_DUST, // 29
|
||||||
|
str_US, // 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
str_MF, // 31
|
||||||
|
str_PS, // 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
str_TCB, // 33
|
||||||
|
str_TFB, // 34
|
||||||
|
str_HUMB, // 35
|
||||||
|
str_SOILT, // 36
|
||||||
|
str_SOIL, // 37
|
||||||
|
str_LW, // 38
|
||||||
|
str_PAR, // 39
|
||||||
|
str_UV, // 40
|
||||||
|
str_TD, // 41
|
||||||
|
str_SD, // 42
|
||||||
|
str_FD, // 43
|
||||||
|
str_ANE, // 44
|
||||||
|
str_WV, // 45
|
||||||
|
str_PLV, // 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
str_RAD, // 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
str_CU, // 48
|
||||||
|
str_WF, // 49
|
||||||
|
str_LC, // 50
|
||||||
|
str_DF, // 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
str_BAT, // 52
|
||||||
|
str_GPS, // 53
|
||||||
|
str_RSSI, // 54
|
||||||
|
str_MAC, // 55
|
||||||
|
str_NA, // 56
|
||||||
|
str_NID, // 57
|
||||||
|
str_DATE, // 58
|
||||||
|
str_TIME, // 59
|
||||||
|
str_GMT, // 60
|
||||||
|
str_RAM, // 61
|
||||||
|
str_IN_TEMP, // 62
|
||||||
|
str_ACC, // 63
|
||||||
|
str_MILLIS, // 64
|
||||||
|
|
||||||
|
// Special
|
||||||
|
str_STR, // 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
str_MBT, // 66
|
||||||
|
str_MWIFI, // 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
str_UID, // 68
|
||||||
|
str_RB, // 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
str_CI0, // 70
|
||||||
|
str_CI1, // 71
|
||||||
|
str_CI2, // 72
|
||||||
|
str_CI3, // 73
|
||||||
|
str_CI4 // 74
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* SENSOR_TYPE_TABLE - Binary frames sensor types
|
||||||
|
*
|
||||||
|
* This table specifies the type of sensor depending on the type of value the
|
||||||
|
* user must put as input. These are the possibilities:
|
||||||
|
*
|
||||||
|
* 0: uint8_t
|
||||||
|
* 1: int (the same as int16_t)
|
||||||
|
* 2: double
|
||||||
|
* 3: char*
|
||||||
|
* 4: unsigned long
|
||||||
|
* 5: uint8_t*
|
||||||
|
******************************************************************************/
|
||||||
|
PROGMEM const uint8_t SENSOR_TYPE_TABLE[] =
|
||||||
|
{
|
||||||
|
// Gases
|
||||||
|
2, // str_CO, // 0
|
||||||
|
2, // str_CO2, // 1
|
||||||
|
2, // str_O2, // 2
|
||||||
|
2, // str_CH4, // 3
|
||||||
|
2, // str_LPG, // 4
|
||||||
|
2, // str_NH3, // 5
|
||||||
|
2, // str_AP1, // 6
|
||||||
|
2, // str_AP2, // 7
|
||||||
|
2, // str_SV, // 8
|
||||||
|
2, // str_NO2, // 9
|
||||||
|
2, // str_O3, // 10
|
||||||
|
2, // str_VOC, // 11
|
||||||
|
2, // str_TCA, // 12
|
||||||
|
2, // str_TFA, // 13
|
||||||
|
2, // str_HUMA, // 14
|
||||||
|
2, // str_PA, // 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
2, // str_PW, // 16
|
||||||
|
2, // str_BEND, // 17
|
||||||
|
0, // str_VBR, // 18
|
||||||
|
0, // str_HALL, // 19
|
||||||
|
0, // str_LP, // 20
|
||||||
|
0, // str_LL, // 21
|
||||||
|
2, // str_LUM, // 22
|
||||||
|
0, // str_PIR, // 23
|
||||||
|
2, // str_ST, // 24
|
||||||
|
|
||||||
|
// Smart cities
|
||||||
|
0, // str_MCP, // 25
|
||||||
|
0, // str_CDG, // 26
|
||||||
|
2, // str_CPG, // 27
|
||||||
|
2, // str_LD, // 28
|
||||||
|
2, // str_DUST, // 29
|
||||||
|
2, // str_US, // 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
1, //str_MF, // 31
|
||||||
|
0, //str_PS, // 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
2, // str_TCB, // 33
|
||||||
|
2, // str_TFB, // 34
|
||||||
|
2, // str_HUMB, // 35
|
||||||
|
2, // str_SOILT, // 36
|
||||||
|
2, // str_SOIL, // 37
|
||||||
|
0, // str_LW, // 38
|
||||||
|
2, // str_PAR, // 39
|
||||||
|
2, // str_UV, // 40
|
||||||
|
2, // str_TD, // 41
|
||||||
|
2, // str_SD, // 42
|
||||||
|
2, // str_FD, // 43
|
||||||
|
2, // str_ANE, // 44
|
||||||
|
0, // str_WV, // 45
|
||||||
|
2, // str_PLV, // 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
2, // str_RAD, // 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
2, // str_CU, // 48
|
||||||
|
2, // str_WF, // 49
|
||||||
|
2, // str_LC, // 50
|
||||||
|
2, // str_DF, // 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
0, // str_BAT, // 52
|
||||||
|
2, // str_GPS, // 53
|
||||||
|
1, // str_RSSI, // 54
|
||||||
|
3, // str_MAC, // 55
|
||||||
|
3, // str_NA, // 56
|
||||||
|
3, // str_NID, // 57
|
||||||
|
0, // str_DATE, // 58
|
||||||
|
0, // str_TIME, // 59
|
||||||
|
1, // str_GMT, // 60
|
||||||
|
1, // str_RAM, // 61
|
||||||
|
2, // str_IN_TEMP, // 62
|
||||||
|
1, // str_ACC, // 63
|
||||||
|
4, // str_MILLIS, // 64
|
||||||
|
|
||||||
|
|
||||||
|
// Special
|
||||||
|
3, // str_STR // 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
3, // str_MBT // 66
|
||||||
|
3, //str_MWIFI // 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
3, //str_UID // 68
|
||||||
|
3, //str_RB // 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
1, //str_CI0 //70
|
||||||
|
1, //str_CI1 //71
|
||||||
|
1, //str_CI2 //72
|
||||||
|
1, //str_CI3 //73
|
||||||
|
1 //str_CI4 //74
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* SENSOR_FIELD_TABLE - Sensor fields
|
||||||
|
*
|
||||||
|
* This table specifies the number of fields per sensor.
|
||||||
|
*
|
||||||
|
* For example, a temperature sensor indicates the temperature in a single field.
|
||||||
|
* On the other hand, the GPS module indicates the position with two fields:
|
||||||
|
* latitude and longitude
|
||||||
|
******************************************************************************/
|
||||||
|
PROGMEM const uint8_t SENSOR_FIELD_TABLE[] =
|
||||||
|
{
|
||||||
|
// Gases
|
||||||
|
1, // str_CO, // 0
|
||||||
|
1, // str_CO2, // 1
|
||||||
|
1, // str_O2, // 2
|
||||||
|
1, // str_CH4, // 3
|
||||||
|
1, // str_LPG, // 4
|
||||||
|
1, // str_NH3, // 5
|
||||||
|
1, // str_AP1, // 6
|
||||||
|
1, // str_AP2, // 7
|
||||||
|
1, // str_SV, // 8
|
||||||
|
1, // str_NO2, // 9
|
||||||
|
1, // str_O3, // 10
|
||||||
|
1, // str_VOC, // 11
|
||||||
|
1, // str_TCA, // 12
|
||||||
|
1, // str_TFA, // 13
|
||||||
|
1, // str_HUMA, // 14
|
||||||
|
1, // str_PA, // 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
1, // str_PW, // 16
|
||||||
|
1, // str_BEND, // 17
|
||||||
|
1, // str_VBR, // 18
|
||||||
|
1, // str_HALL, // 19
|
||||||
|
1, // str_LP, // 20
|
||||||
|
1, // str_LL, // 21
|
||||||
|
1, // str_LUM, // 22
|
||||||
|
1, // str_PIR, // 23
|
||||||
|
1, // str_ST, // 24
|
||||||
|
|
||||||
|
// Smart cities
|
||||||
|
1, // str_MCP, // 25
|
||||||
|
1, // str_CDG, // 26
|
||||||
|
1, // str_CPG, // 27
|
||||||
|
1, // str_LD, // 28
|
||||||
|
1, // str_DUST, // 29
|
||||||
|
1, // str_US, // 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
3, //str_MF, // 31
|
||||||
|
1, //str_PS, // 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
1, // str_TCB, // 33
|
||||||
|
1, // str_TFB, // 34
|
||||||
|
1, // str_HUMB, // 35
|
||||||
|
1, // str_SOILT, // 36
|
||||||
|
1, // str_SOIL, // 37
|
||||||
|
1, // str_LW, // 38
|
||||||
|
1, // str_PAR, // 39
|
||||||
|
1, // str_UV, // 40
|
||||||
|
1, // str_TD, // 41
|
||||||
|
1, // str_SD, // 42
|
||||||
|
1, // str_FD, // 43
|
||||||
|
1, // str_ANE, // 44
|
||||||
|
1, // str_WV, // 45
|
||||||
|
1, // str_PLV, // 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
1, // str_RAD, // 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
1, // str_CU, // 48
|
||||||
|
1, // str_WF, // 49
|
||||||
|
1, // str_LC, // 50
|
||||||
|
1, // str_DF, // 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
1, // str_BAT, // 52
|
||||||
|
2, // str_GPS, // 53
|
||||||
|
1, // str_RSSI, // 54
|
||||||
|
1, // str_MAC, // 55
|
||||||
|
1, // str_NA, // 56
|
||||||
|
1, // str_NID, // 57
|
||||||
|
3, // str_DATE, // 58
|
||||||
|
3, // str_TIME, // 59
|
||||||
|
1, // str_GMT, // 60
|
||||||
|
1, // str_RAM, // 61
|
||||||
|
1, // str_IN_TEMP, // 62
|
||||||
|
3, // str_ACC, // 63
|
||||||
|
1, // str_MILLIS, // 64
|
||||||
|
|
||||||
|
// Special
|
||||||
|
1, // str_STR // 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
1, // str_MBT // 66
|
||||||
|
1, //str_MWIFI // 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
1, //str_UID // 68
|
||||||
|
1, //str_RB // 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
1, //str_CI0 //70
|
||||||
|
1, //str_CI1 //71
|
||||||
|
1, //str_CI2 //72
|
||||||
|
1, //str_CI3 //73
|
||||||
|
1 //str_CI4 //74
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* DECIMAL_TABLE - number of default decimals for each sensor for ASCII frames
|
||||||
|
*
|
||||||
|
* This table specifies the number of decimals for each sensor for ASCII frames
|
||||||
|
******************************************************************************/
|
||||||
|
PROGMEM const uint8_t DECIMAL_TABLE[] =
|
||||||
|
{
|
||||||
|
// Gases
|
||||||
|
3, // str_CO, // 0
|
||||||
|
3, // str_CO2, // 1
|
||||||
|
3, // str_O2, // 2
|
||||||
|
3, // str_CH4, // 3
|
||||||
|
3, // str_LPG, // 4
|
||||||
|
3, // str_NH3, // 5
|
||||||
|
3, // str_AP1, // 6
|
||||||
|
3, // str_AP2, // 7
|
||||||
|
3, // str_SV, // 8
|
||||||
|
3, // str_NO2, // 9
|
||||||
|
3, // str_O3, // 10
|
||||||
|
3, // str_VOC, // 11
|
||||||
|
2, // str_TCA, // 12
|
||||||
|
2, // str_TFA, // 13
|
||||||
|
1, // str_HUMA, // 14
|
||||||
|
2, // str_PA, // 15
|
||||||
|
|
||||||
|
// Events
|
||||||
|
3, // str_PW, // 16
|
||||||
|
3, // str_BEND, // 17
|
||||||
|
0, // str_VBR, // 18
|
||||||
|
|
||||||
|
0, // str_HALL, // 19
|
||||||
|
0, // str_LP, // 20
|
||||||
|
0, // str_LL, // 21
|
||||||
|
3, // str_LUM, // 22
|
||||||
|
0, // str_PIR, // 23
|
||||||
|
3, // str_ST, // 24
|
||||||
|
|
||||||
|
// Smart cities
|
||||||
|
0, // str_MCP, // 25
|
||||||
|
0, // str_CDG, // 26
|
||||||
|
3, // str_CPG, // 27
|
||||||
|
3, // str_LD, // 28
|
||||||
|
3, // str_DUST, // 29
|
||||||
|
2, // str_US, // 30
|
||||||
|
|
||||||
|
// Smart parking
|
||||||
|
0, //str_MF, // 31
|
||||||
|
0, //str_PS, // 32
|
||||||
|
|
||||||
|
// Agriculture
|
||||||
|
2, // str_TCB, // 33
|
||||||
|
2, // str_TFB, // 34
|
||||||
|
1, // str_HUMB, // 35
|
||||||
|
2, // str_SOILT, // 36
|
||||||
|
2, // str_SOIL, // 37
|
||||||
|
0, // str_LW, // 38
|
||||||
|
2, // str_PAR, // 39
|
||||||
|
2, // str_UV, // 40
|
||||||
|
3, // str_TD, // 41
|
||||||
|
3, // str_SD, // 42
|
||||||
|
3, // str_FD, // 43
|
||||||
|
2, // str_ANE, // 44
|
||||||
|
0, // str_WV, // 45
|
||||||
|
2, // str_PLV, // 46
|
||||||
|
|
||||||
|
// Radiation
|
||||||
|
6, // str_RAD, // 47
|
||||||
|
|
||||||
|
// Smart meetering
|
||||||
|
2, // str_CU, // 48
|
||||||
|
3, // str_WF, // 49
|
||||||
|
3, // str_LC, // 50
|
||||||
|
3, // str_DF, // 51
|
||||||
|
|
||||||
|
// Additional
|
||||||
|
0, // str_BAT, // 52
|
||||||
|
6, // str_GPS, // 53
|
||||||
|
0, // str_RSSI, // 54
|
||||||
|
0, // str_MAC, // 55
|
||||||
|
0, // str_NA, // 56
|
||||||
|
0, // str_NID, // 57
|
||||||
|
0, // str_DATE, // 58
|
||||||
|
0, // str_TIME, // 59
|
||||||
|
0, // str_GMT, // 60
|
||||||
|
0, // str_RAM, // 61
|
||||||
|
2, // str_IN_TEMP, // 62
|
||||||
|
0, // str_ACC, // 63
|
||||||
|
0, // str_MILLIS, // 64
|
||||||
|
|
||||||
|
// Special
|
||||||
|
0, // str_STR // 65
|
||||||
|
|
||||||
|
// Meshlium
|
||||||
|
0, // str_MBT // 66
|
||||||
|
0, //str_MWIFI // 67
|
||||||
|
|
||||||
|
// RFID
|
||||||
|
0, //str_UID // 68
|
||||||
|
0, //str_RB // 69
|
||||||
|
|
||||||
|
// CRITICAL INFRASTRUCTURE
|
||||||
|
0, //str_CI0 //70
|
||||||
|
0, //str_CI1 //71
|
||||||
|
0, //str_CI2 //72
|
||||||
|
0, //str_CI3 //73
|
||||||
|
0 //str_CI4 //74
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
x
Reference in New Issue
Block a user