HAHA! commit

Initial commit
This commit is contained in:
dviid 2013-11-30 21:22:19 +01:00
commit 2e9b87dab6
26 changed files with 4842 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.DS_Store

130
of/waspmote_spacebrew_bridge/.gitignore vendored Normal file
View 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.

View 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

View 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)

View File

@ -0,0 +1,2 @@
ofxLibwebsockets
ofxSpacebrew

View 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 =

View 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>

View 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 "";
}

View 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__) */

View 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());
}

View 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){
}

View 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;
};

View File

@ -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 */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:waspmote_spacebrew_bridge.xcodeproj">
</FileRef>
</Workspace>

View File

@ -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>

View File

@ -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
View File

View 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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View 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

View 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