From 8b9f691d1f711b94c0c78125cf8c48d12d9cfcc3 Mon Sep 17 00:00:00 2001 From: Donald Delmar Davis Date: Mon, 13 Aug 2012 17:33:23 -0700 Subject: mv draft code out of the way. --- Makefile | 186 --- README.md | 7 - build-targets.mk | 42 - cacheandcarry.xcodeproj/don.mode1v3 | 1586 -------------------- cacheandcarry.xcodeproj/don.pbxuser | 543 ------- cacheandcarry.xcodeproj/project.pbxproj | 314 ---- .../project.xcworkspace/contents.xcworkspacedata | 7 - .../don.xcuserdatad/UserInterfaceState.xcuserstate | Bin 26770 -> 0 bytes .../don.xcuserdatad/WorkspaceSettings.xcsettings | 10 - .../xcdebugger/Breakpoints.xcbkptlist | 31 - .../don.xcuserdatad/xcschemes/Debug.xcscheme | 58 - .../don.xcuserdatad/xcschemes/Make.xcscheme | 58 - .../don.xcuserdatad/xcschemes/Program.xcscheme | 58 - .../xcschemes/xcschememanagement.plist | 42 - draft/Makefile | 186 +++ draft/README.md | 7 + draft/build-targets.mk | 42 + draft/cacheandcarry.xcodeproj/don.mode1v3 | 1586 ++++++++++++++++++++ draft/cacheandcarry.xcodeproj/don.pbxuser | 543 +++++++ draft/cacheandcarry.xcodeproj/project.pbxproj | 314 ++++ .../project.xcworkspace/contents.xcworkspacedata | 7 + .../don.xcuserdatad/UserInterfaceState.xcuserstate | Bin 0 -> 26770 bytes .../don.xcuserdatad/WorkspaceSettings.xcsettings | 10 + .../xcdebugger/Breakpoints.xcbkptlist | 31 + .../don.xcuserdatad/xcschemes/Debug.xcscheme | 58 + .../don.xcuserdatad/xcschemes/Make.xcscheme | 58 + .../don.xcuserdatad/xcschemes/Program.xcscheme | 58 + .../xcschemes/xcschememanagement.plist | 42 + draft/main.cpp | 890 +++++++++++ main.cpp | 890 ----------- 30 files changed, 3832 insertions(+), 3832 deletions(-) delete mode 100644 Makefile delete mode 100644 README.md delete mode 100644 build-targets.mk delete mode 100644 cacheandcarry.xcodeproj/don.mode1v3 delete mode 100644 cacheandcarry.xcodeproj/don.pbxuser delete mode 100644 cacheandcarry.xcodeproj/project.pbxproj delete mode 100644 cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings delete mode 100644 cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist delete mode 100644 cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme delete mode 100644 cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme delete mode 100644 cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme delete mode 100644 cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 draft/Makefile create mode 100644 draft/README.md create mode 100644 draft/build-targets.mk create mode 100644 draft/cacheandcarry.xcodeproj/don.mode1v3 create mode 100644 draft/cacheandcarry.xcodeproj/don.pbxuser create mode 100644 draft/cacheandcarry.xcodeproj/project.pbxproj create mode 100644 draft/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist create mode 100644 draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme create mode 100644 draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme create mode 100644 draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme create mode 100644 draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 draft/main.cpp delete mode 100644 main.cpp diff --git a/Makefile b/Makefile deleted file mode 100644 index fb90058..0000000 --- a/Makefile +++ /dev/null @@ -1,186 +0,0 @@ -# Try "make help" first - -.DEFAULT_GOAL := sketch - -## -## Useful paths, constants, etc. -## - -ifeq ($(LIB_MAPLE_HOME),) -SRCROOT := ../../libmaple -else -SRCROOT := $(LIB_MAPLE_HOME) -endif -BUILD_PATH = build -LIBMAPLE_PATH := $(SRCROOT)/libmaple -WIRISH_PATH := $(SRCROOT)/wirish -SUPPORT_PATH := $(SRCROOT)/support -# Support files for linker -LDDIR := $(SUPPORT_PATH)/ld -# Support files for this Makefile -MAKEDIR := $(SUPPORT_PATH)/make - -# USB ID for DFU upload -VENDOR_ID := 1EAF -PRODUCT_ID := 0003 - -## -## Target-specific configuration. This determines some compiler and -## linker options/flags. -## - -# Try "make help" for more information on BOARD and MEMORY_TARGET; -# these default to a Maple Flash build. -BOARD ?= maple -MEMORY_TARGET ?= flash - -# $(BOARD)- and $(MEMORY_TARGET)-specific configuration -include $(MAKEDIR)/target-config.mk - -## -## Compilation flags -## - -GLOBAL_FLAGS := -D$(VECT_BASE_ADDR) \ - -DBOARD_$(BOARD) -DMCU_$(MCU) \ - -DERROR_LED_PORT=$(ERROR_LED_PORT) \ - -DERROR_LED_PIN=$(ERROR_LED_PIN) \ - -D$(DENSITY) -GLOBAL_CFLAGS := -Os -g3 -gdwarf-2 -mcpu=cortex-m3 -mthumb -march=armv7-m \ - -nostdlib -ffunction-sections -fdata-sections \ - -Wl,--gc-sections $(GLOBAL_FLAGS) -GLOBAL_CXXFLAGS := -fno-rtti -fno-exceptions -Wall $(GLOBAL_FLAGS) -GLOBAL_ASFLAGS := -mcpu=cortex-m3 -march=armv7-m -mthumb \ - -x assembler-with-cpp $(GLOBAL_FLAGS) -LDFLAGS = -T$(LDDIR)/$(LDSCRIPT) -L$(LDDIR) \ - -mcpu=cortex-m3 -mthumb -Xlinker \ - --gc-sections --print-gc-sections --march=armv7-m -Wall - -## -## Build rules and useful templates -## - -include $(SUPPORT_PATH)/make/build-rules.mk -include $(SUPPORT_PATH)/make/build-templates.mk - -## -## Set all submodules here -## - -# Try to keep LIBMAPLE_MODULES a simply-expanded variable -ifeq ($(LIBMAPLE_MODULES),) - LIBMAPLE_MODULES := $(SRCROOT)/libmaple -else - LIBMAPLE_MODULES += $(SRCROOT)/libmaple -endif -LIBMAPLE_MODULES += $(SRCROOT)/wirish -# Official libraries: -LIBMAPLE_MODULES += $(SRCROOT)/libraries/Servo -LIBMAPLE_MODULES += $(SRCROOT)/libraries/LiquidCrystal -LIBMAPLE_MODULES += $(SRCROOT)/libraries/Wire - -# Experimental libraries: -#LIBMAPLE_MODULES += $(SRCROOT)/libraries/FreeRTOS -LIBMAPLE_MODULES += $(SRCROOT)/libraries/SDfat -#LIBMAPLE_MODULES += $(SRCROOT)/libraries/EEPROM -LIBMAPLE_MODULES += $(SRCROOT)/libraries/RTC - -# Call each module's rules.mk: -$(foreach m,$(LIBMAPLE_MODULES),$(eval $(call LIBMAPLE_MODULE_template,$(m)))) - -## -## Targets -## - -# main target -include $(SRCROOT)/build-targets.mk - -.PHONY: install sketch clean help debug cscope tags ctags ram flash jtag doxygen mrproper - -# Target upload commands -UPLOAD_ram := $(SUPPORT_PATH)/scripts/reset.py && \ - sleep 1 && \ - $(DFU) -a0 -d $(VENDOR_ID):$(PRODUCT_ID) -D $(BUILD_PATH)/$(BOARD).bin -R -UPLOAD_flash := which python &&\ - $(SUPPORT_PATH)/scripts/reset.py && \ - sleep 1 && \ - $(DFU) -a1 -d $(VENDOR_ID):$(PRODUCT_ID) -D $(BUILD_PATH)/$(BOARD).bin -R -UPLOAD_jtag := $(OPENOCD_WRAPPER) flash - -# Conditionally upload to whatever the last build was -install: INSTALL_TARGET = $(shell cat $(BUILD_PATH)/build-type 2>/dev/null) -install: $(BUILD_PATH)/$(BOARD).bin - @echo "Install target:" $(INSTALL_TARGET) - $(UPLOAD_$(INSTALL_TARGET)) - -# Force a rebuild if the target changed -PREV_BUILD_TYPE = $(shell cat $(BUILD_PATH)/build-type 2>/dev/null) -build-check: -ifneq ($(PREV_BUILD_TYPE), $(MEMORY_TARGET)) - $(shell rm -rf $(BUILD_PATH)) -endif - -sketch: build-check MSG_INFO $(BUILD_PATH)/$(BOARD).bin - -clean: - rm -rf build/../../libmaple - rm -rf build - -mrproper: clean - rm -rf doxygen - -help: - @echo "" - @echo " libmaple Makefile help" - @echo " ----------------------" - @echo " " - @echo " Programming targets:" - @echo " sketch: Compile for BOARD to MEMORY_TARGET (default)." - @echo " install: Compile and upload code over USB, using Maple bootloader" - @echo " " - @echo " You *must* set BOARD if not compiling for Maple (e.g." - @echo " use BOARD=maple_mini for mini, etc.), and MEMORY_TARGET" - @echo " if not compiling to Flash." - @echo " " - @echo " Valid BOARDs:" - @echo " maple, maple_mini, maple_RET6, maple_native" - @echo " " - @echo " Valid MEMORY_TARGETs (default=flash):" - @echo " ram: Compile sketch code to ram" - @echo " flash: Compile sketch code to flash" - @echo " jtag: Compile sketch code for jtag; overwrites bootloader" - @echo " " - @echo " Other targets:" - @echo " debug: Start OpenOCD gdb server on port 3333, telnet on port 4444" - @echo " clean: Remove all build and object files" - @echo " help: Show this message" - @echo " doxygen: Build Doxygen HTML and XML documentation" - @echo " mrproper: Remove all generated files" - @echo " " - -debug: - $(OPENOCD_WRAPPER) debug - -cscope: - rm -rf *.cscope - find . -name '*.[hcS]' -o -name '*.cpp' | xargs cscope -b - -tags: - etags `find . -name "*.c" -o -name "*.cpp" -o -name "*.h"` - @echo "Made TAGS file for EMACS code browsing" - -ctags: - ctags-exuberant -R . - @echo "Made tags file for VIM code browsing" - -ram: - @$(MAKE) MEMORY_TARGET=ram --no-print-directory sketch - -flash: - @$(MAKE) MEMORY_TARGET=flash --no-print-directory sketch - -jtag: - @$(MAKE) MEMORY_TARGET=jtag --no-print-directory sketch - -doxygen: - doxygen $(SUPPORT_PATH)/doxygen/Doxyfile diff --git a/README.md b/README.md deleted file mode 100644 index 5e1a0ea..0000000 --- a/README.md +++ /dev/null @@ -1,7 +0,0 @@ -cache-and-carry -=============== - -Cache and Carry, firmware for the Maple Bacon and BOM5k datalogger, https://github.com/soycamo/maplebacon - -This is a "HACK" of beta firmware for the bom5k which was initiated for the ROHK-seattle http://www.rhok.org/event/seattle-wa-usa it it a hack in several senses of the word. Someday it will grow up to be real and useful open source software. - diff --git a/build-targets.mk b/build-targets.mk deleted file mode 100644 index fb8edc0..0000000 --- a/build-targets.mk +++ /dev/null @@ -1,42 +0,0 @@ -# main project target -$(BUILD_PATH)/main.o: main.cpp - $(SILENT_CXX) $(CXX) $(CFLAGS) $(CXXFLAGS) $(LIBMAPLE_INCLUDES) $(WIRISH_INCLUDES) -o $@ -c $< - -$(BUILD_PATH)/libmaple.a: $(BUILDDIRS) $(TGT_BIN) - - rm -f $@ - $(AR) crv $(BUILD_PATH)/libmaple.a $(TGT_BIN) - -library: $(BUILD_PATH)/libmaple.a - -.PHONY: library - -$(BUILD_PATH)/$(BOARD).elf: $(BUILDDIRS) $(TGT_BIN) $(BUILD_PATH)/main.o - $(SILENT_LD) $(CXX) $(LDFLAGS) -o $@ $(TGT_BIN) $(BUILD_PATH)/main.o -Wl,-Map,$(BUILD_PATH)/$(BOARD).map - -$(BUILD_PATH)/$(BOARD).bin: $(BUILD_PATH)/$(BOARD).elf - $(SILENT_OBJCOPY) $(OBJCOPY) -v -Obinary $(BUILD_PATH)/$(BOARD).elf $@ 1>/dev/null - $(SILENT_DISAS) $(DISAS) -d $(BUILD_PATH)/$(BOARD).elf > $(BUILD_PATH)/$(BOARD).disas - @echo " " - @echo "Object file sizes:" - @find $(BUILD_PATH) -iname *.o | xargs $(SIZE) -t > $(BUILD_PATH)/$(BOARD).sizes - @cat $(BUILD_PATH)/$(BOARD).sizes - @echo " " - @echo "Final Size:" - @$(SIZE) $< - @echo $(MEMORY_TARGET) > $(BUILD_PATH)/build-type - -$(BUILDDIRS): - @mkdir -p $@ - -MSG_INFO: - @echo "================================================================================" - @echo "" - @echo " Build info:" - @echo " BOARD: " $(BOARD) - @echo " MCU: " $(MCU) - @echo " MEMORY_TARGET: " $(MEMORY_TARGET) - @echo "" - @echo " See 'make help' for all possible targets" - @echo "" - @echo "================================================================================" - @echo "" diff --git a/cacheandcarry.xcodeproj/don.mode1v3 b/cacheandcarry.xcodeproj/don.mode1v3 deleted file mode 100644 index d3e41bd..0000000 --- a/cacheandcarry.xcodeproj/don.mode1v3 +++ /dev/null @@ -1,1586 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCProjectFormatConflictsModule - Name - Project Format Conflicts List - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - BundleLoadPath - - MaxInstances - n - Module - XCSnapshotModule - Name - Snapshots Tool - - - BundlePath - /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1v3 - FavBarConfig - - PBXProjectModuleGUID - F606C71C0E36E52600ED6D97 - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1v3 - MajorVersion - 33 - MinorVersion - 0 - Name - Default - Notifications - - OpenEditors - - - Content - - PBXProjectModuleGUID - F6E3B3A61549E44000FCA958 - PBXProjectModuleLabel - main.cpp - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - F6E3B3A71549E44000FCA958 - PBXProjectModuleLabel - main.cpp - _historyCapacity - 0 - bookmark - F6EB3681155EE2F5005D1535 - history - - F6EB35F6155AE436005D1535 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {962, 710}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 446 127 962 751 0 0 1440 878 - - - - Content - - PBXProjectModuleGUID - F6EB359D155A16BA005D1535 - PBXProjectModuleLabel - SdFile.cpp - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - F6EB359E155A16BA005D1535 - PBXProjectModuleLabel - SdFile.cpp - _historyCapacity - 0 - bookmark - F6EB3682155EE2F5005D1535 - history - - F6EB3597155A1592005D1535 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {993, 624}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 15 208 993 665 0 0 1440 878 - - - - Content - - PBXProjectModuleGUID - F66649C1151CFA700040FDB5 - PBXProjectModuleLabel - main.cpp - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - F66649C2151CFA700040FDB5 - PBXProjectModuleLabel - main.cpp - _historyCapacity - 0 - bookmark - F6EB3683155EE2F5005D1535 - history - - F6E3B62E1557A6CA00FCA958 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {962, 710}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 392 127 962 751 0 0 1440 878 - - - - Content - - PBXProjectModuleGUID - F6E3B40E154B764E00FCA958 - PBXProjectModuleLabel - rules.mk - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - F6E3B40F154B764E00FCA958 - PBXProjectModuleLabel - rules.mk - _historyCapacity - 0 - bookmark - F6EB3684155EE2F5005D1535 - history - - F6E3B62F1557A6CA00FCA958 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {993, 624}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 447 213 993 665 0 0 1440 878 - - - - Content - - PBXProjectModuleGUID - F6E3B3A01549E44000FCA958 - PBXProjectModuleLabel - flash_stm32.c - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - F6E3B3A11549E44000FCA958 - PBXProjectModuleLabel - flash_stm32.c - _historyCapacity - 0 - bookmark - F6EB3686155EE2F5005D1535 - history - - F6E3B6351557A6CA00FCA958 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {993, 624}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 39 188 993 665 0 0 1440 878 - - - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - active-target-popup - active-buildstyle-popup - action - NSToolbarFlexibleSpaceItem - buildOrClean - com.apple.ide.PBXToolbarStopButton - get-info - toggle-editor - NSToolbarFlexibleSpaceItem - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 08FB7794FE84155DC02AAC07 - 08FB7795FE84155DC02AAC07 - F6EB355C155A113F005D1535 - F6EB355F155A1193005D1535 - 1C37FBAC04509CD000000102 - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 3 - 2 - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 617}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 635}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 99 202 1066 676 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 203pt - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - main.cpp - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - main.cpp - _historyCapacity - 0 - bookmark - F6EB3680155EE2F5005D1535 - history - - F6E83B88153B6F4100A14FCA - F6E83B89153B6F4100A14FCA - F6EB3553155A1047005D1535 - F6EB3571155A134D005D1535 - F6EB359A155A16BA005D1535 - F6EB35EF155AE436005D1535 - F6EB35F0155AE436005D1535 - F6EB35F1155AE436005D1535 - F6EB35F2155AE436005D1535 - F6EB35F3155AE436005D1535 - F6EB367C155EE2F5005D1535 - F6EB367D155EE2F5005D1535 - F6EB367F155EE2F5005D1535 - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {858, 400}} - RubberWindowFrame - 99 202 1066 676 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 400pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{0, 405}, {858, 230}} - RubberWindowFrame - 99 202 1066 676 0 0 1440 878 - - Module - XCDetailModule - Proportion - 230pt - - - Proportion - 858pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - F6EB3546155A04F5005D1535 - 1CE0B1FE06471DED0097A5F4 - F6EB3547155A04F5005D1535 - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfigUserDefaultsMinorVersion - 2 - ToolbarConfiguration - xcode.toolbar.config.defaultV3 - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - 0 - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.shortV3 - - - PerspectivesBarVisible - - ShelfIsVisible - - SourceDescription - file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' - StatusbarIsVisible - - TimeStamp - 0.0 - ToolbarDisplayMode - 1 - ToolbarIsVisible - - ToolbarSizeMode - 1 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - F6E3B3A01549E44000FCA958 - F6E3B40E154B764E00FCA958 - F66649C1151CFA700040FDB5 - F69C9B0F150BDAC200B4163A - F6EB359D155A16BA005D1535 - /Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/programs/datalogger/datalogger.xcodeproj - F6E3B3A61549E44000FCA958 - - WindowString - 99 202 1066 676 0 0 1440 878 - WindowToolsV3 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1037, 325}} - RubberWindowFrame - 69 207 1037 607 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 325pt - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - Build Results - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1011 - - GeometryConfiguration - - Frame - {{0, 330}, {1037, 236}} - RubberWindowFrame - 69 207 1037 607 0 0 1440 878 - - Module - PBXBuildResultsModule - Proportion - 236pt - - - Proportion - 566pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - F69C9B0F150BDAC200B4163A - F6EB354F155A04F5005D1535 - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.buildV3 - WindowString - 69 207 1037 607 0 0 1440 878 - WindowToolGUID - F69C9B0F150BDAC200B4163A - WindowToolIsVisible - - - - Identifier - windowTool.debugger - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {317, 164}} - {{317, 0}, {377, 164}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {694, 164}} - {{0, 164}, {694, 216}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleDrawerSize - {100, 120} - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {694, 380}} - RubberWindowFrame - 321 238 694 422 0 0 1440 878 - - Module - PBXDebugSessionModule - Proportion - 100% - - - Proportion - 100% - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CD10A99069EF8BA00B06720 - 1C0AD2AB069F1E9B00FABCE6 - 1C162984064C10D400B95A72 - 1C0AD2AC069F1E9B00FABCE6 - - ToolbarConfiguration - xcode.toolbar.config.debugV3 - WindowString - 321 238 694 422 0 0 1440 878 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - 0 - - - Identifier - windowTool.find - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CD0528D0623707200166675 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {781, 167}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 781pt - - - Proportion - 50% - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - Project Find - - GeometryConfiguration - - Frame - {{8, 0}, {773, 254}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXProjectFindModule - Proportion - 50% - - - Proportion - 428pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C530D57069F1CE1000CFCEE - 1C530D58069F1CE1000CFCEE - 1C530D59069F1CE1000CFCEE - 1CDD528C0622207200134675 - 1C530D5A069F1CE1000CFCEE - 1CE0B1FE06471DED0097A5F4 - 1CD0528E0623707200166675 - - WindowString - 62 385 781 470 0 0 1440 878 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - 0 - - - Identifier - MENUSEPARATOR - - - Identifier - windowTool.debuggerConsole - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {650, 250}} - RubberWindowFrame - 516 632 650 250 0 0 1680 1027 - - Module - PBXDebugCLIModule - Proportion - 209pt - - - Proportion - 209pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAAD065D492600B07095 - 1C78EAAE065D492600B07095 - 1C78EAAC065D492600B07095 - - ToolbarConfiguration - xcode.toolbar.config.consoleV3 - WindowString - 650 41 650 250 0 0 1280 1002 - WindowToolGUID - 1C78EAAD065D492600B07095 - WindowToolIsVisible - 0 - - - Identifier - windowTool.snapshots - Layout - - - Dock - - - Module - XCSnapshotModule - Proportion - 100% - - - Proportion - 100% - - - Name - Snapshots - ServiceClasses - - XCSnapshotModule - - StatusbarIsVisible - Yes - ToolbarConfiguration - xcode.toolbar.config.snapshots - WindowString - 315 824 300 550 0 0 1440 878 - WindowToolIsVisible - Yes - - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.0950012207031 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - Identifier - windowTool.breakpoints - IsVertical - 0 - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 0 - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 3 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpointsV3 - WindowString - 315 424 744 409 0 0 1440 878 - WindowToolGUID - 1CDDB66807F98D9800BB5817 - WindowToolIsVisible - 1 - - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - 1 - ToolbarConfiguration - xcode.toolbar.config.debugAnimatorV3 - WindowString - 100 100 700 500 0 0 1280 1002 - - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - 0 - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.projectFormatConflicts - Layout - - - Dock - - - Module - XCProjectFormatConflictsModule - Proportion - 100% - - - Proportion - 100% - - - Name - Project Format Conflicts - ServiceClasses - - XCProjectFormatConflictsModule - - StatusbarIsVisible - 0 - WindowContentMinSize - 450 300 - WindowString - 50 850 472 307 0 0 1440 877 - - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - 0 - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - 0 - - - Identifier - windowTool.refactoring - IncludeInToolsMenu - 0 - Layout - - - Dock - - - BecomeActive - 1 - GeometryConfiguration - - Frame - {0, 0}, {500, 335} - RubberWindowFrame - {0, 0}, {500, 335} - - Module - XCRefactoringModule - Proportion - 100% - - - Proportion - 100% - - - Name - Refactoring - ServiceClasses - - XCRefactoringModule - - WindowString - 200 200 500 356 0 0 1920 1200 - - - - diff --git a/cacheandcarry.xcodeproj/don.pbxuser b/cacheandcarry.xcodeproj/don.pbxuser deleted file mode 100644 index 6cb6978..0000000 --- a/cacheandcarry.xcodeproj/don.pbxuser +++ /dev/null @@ -1,543 +0,0 @@ -// !$*UTF8*$! -{ - 0142E2590A37DAD800461F0A /* Debug */ = { - activeExec = 0; - }; - 01706F540A347F6900E43B08 /* Make */ = { - activeExec = 0; - }; - 01706F590A347F9A00E43B08 /* Makefile */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {903, 2431}}"; - sepNavSelRange = "{2174, 0}"; - sepNavVisRange = "{3751, 1645}"; - sepNavWindowFrame = "{{434, 71}, {962, 807}}"; - }; - }; - 01706F5B0A34807400E43B08 /* Program */ = { - activeExec = 0; - }; - 08FB7793FE84155DC02AAC07 /* Project object */ = { - activeBuildConfigurationName = Development; - activeTarget = 01706F5B0A34807400E43B08 /* Program */; - addToTargets = ( - 01706F540A347F6900E43B08 /* Make */, - 01706F5B0A34807400E43B08 /* Program */, - ); - breakpoints = ( - F6E3B3811549E41A00FCA958 /* EEPROM.h:4 */, - F6EB3584155A141A005D1535 /* main.cpp:320 */, - ); - codeSenseManager = F606C70F0E36E4F300ED6D97 /* Code sense */; - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 619, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 579, - 60, - 20, - 48.16259765625, - 43, - 43, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXTargetDataSource_PrimaryAttribute, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 358221038; - PBXWorkspaceStateSaveDate = 358221038; - }; - perUserProjectItems = { - F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */; - F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */; - F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */; - F6E83B88153B6F4100A14FCA /* PBXTextBookmark */ = F6E83B88153B6F4100A14FCA /* PBXTextBookmark */; - F6E83B89153B6F4100A14FCA /* PBXTextBookmark */ = F6E83B89153B6F4100A14FCA /* PBXTextBookmark */; - F6EB3553155A1047005D1535 /* PBXTextBookmark */ = F6EB3553155A1047005D1535 /* PBXTextBookmark */; - F6EB3571155A134D005D1535 /* PBXTextBookmark */ = F6EB3571155A134D005D1535 /* PBXTextBookmark */; - F6EB3597155A1592005D1535 /* PBXBookmark */ = F6EB3597155A1592005D1535 /* PBXBookmark */; - F6EB359A155A16BA005D1535 /* PBXTextBookmark */ = F6EB359A155A16BA005D1535 /* PBXTextBookmark */; - F6EB35EF155AE436005D1535 /* PBXTextBookmark */ = F6EB35EF155AE436005D1535 /* PBXTextBookmark */; - F6EB35F0155AE436005D1535 /* PBXTextBookmark */ = F6EB35F0155AE436005D1535 /* PBXTextBookmark */; - F6EB35F1155AE436005D1535 /* PBXTextBookmark */ = F6EB35F1155AE436005D1535 /* PBXTextBookmark */; - F6EB35F2155AE436005D1535 /* PBXTextBookmark */ = F6EB35F2155AE436005D1535 /* PBXTextBookmark */; - F6EB35F3155AE436005D1535 /* PBXTextBookmark */ = F6EB35F3155AE436005D1535 /* PBXTextBookmark */; - F6EB35F6155AE436005D1535 /* PBXTextBookmark */ = F6EB35F6155AE436005D1535 /* PBXTextBookmark */; - F6EB367C155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367C155EE2F5005D1535 /* PBXTextBookmark */; - F6EB367D155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367D155EE2F5005D1535 /* PBXTextBookmark */; - F6EB367F155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367F155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3680155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3680155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3681155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3681155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3682155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3682155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3683155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3683155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3684155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3684155EE2F5005D1535 /* PBXTextBookmark */; - F6EB3686155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3686155EE2F5005D1535 /* PBXTextBookmark */; - }; - sourceControlManager = F606C70E0E36E4F300ED6D97 /* Source Control */; - userBuildSettings = { - }; - }; - F606C70E0E36E4F300ED6D97 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - repositoryNamesForRoots = { - "" = ""; - }; - }; - }; - F606C70F0E36E4F300ED6D97 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - F65B9782153F4D4F00A8B814 /* main.cpp */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.cpp; - path = main.cpp; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {903, 8710}}"; - sepNavSelRange = "{14487, 0}"; - sepNavVisRange = "{1751, 1398}"; - sepNavWindowFrame = "{{392, 71}, {962, 807}}"; - }; - }; - F69C9B5A150D0F0000B4163A /* stdlib.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = stdlib.h; - path = "/Applications/MapleIDE.app/Contents/Resources/Java/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/stdlib.h"; - sourceTree = ""; - }; - F69C9F67150EAAF300B4163A /* main.cpp */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {903, 8788}}"; - sepNavSelRange = "{2107, 0}"; - sepNavVisRange = "{870, 1590}"; - sepNavWindowFrame = "{{446, 71}, {962, 807}}"; - }; - }; - F6E3B3811549E41A00FCA958 /* EEPROM.h:4 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = F6E3B3821549E41A00FCA958 /* EEPROM.h */; - hitCount = 0; - ignoreCount = 0; - lineNumber = 4; - modificationTime = 357164058.10546; - originalNumberOfMultipleMatches = 0; - state = 1; - }; - F6E3B3821549E41A00FCA958 /* EEPROM.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = EEPROM.h; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/EEPROM.h"; - sourceTree = ""; - }; - F6E3B62D1557A6CA00FCA958 /* usb_core.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = usb_core.c; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libmaple/usb/usb_lib/usb_core.c"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 13442}}"; - sepNavSelRange = "{15729, 1}"; - sepNavVisRange = "{8443, 796}"; - }; - }; - F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F69C9F67150EAAF300B4163A /* main.cpp */; - name = "main.cpp: 459"; - rLen = 0; - rLoc = 13077; - rType = 0; - vrLen = 1464; - vrLoc = 13511; - }; - F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6E3B6301557A6CA00FCA958 /* rules.mk */; - name = "rules.mk: 6"; - rLen = 40; - rLoc = 99; - rType = 0; - vrLen = 1054; - vrLoc = 0; - }; - F6E3B6301557A6CA00FCA958 /* rules.mk */ = { - isa = PBXFileReference; - lastKnownFileType = text; - name = rules.mk; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/FreeRTOS/rules.mk"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {934, 593}}"; - sepNavSelRange = "{99, 40}"; - sepNavVisRange = "{0, 1054}"; - }; - }; - F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6E3B6361557A6CA00FCA958 /* flash_stm32.c */; - name = "flash_stm32.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1161; - vrLoc = 133; - }; - F6E3B6361557A6CA00FCA958 /* flash_stm32.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = flash_stm32.c; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/flash_stm32.c"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {934, 2145}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{133, 1161}"; - sepNavWindowFrame = "{{39, 132}, {993, 721}}"; - }; - }; - F6E83B88153B6F4100A14FCA /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F69C9B5A150D0F0000B4163A /* stdlib.h */; - name = "stdlib.h: 72"; - rLen = 0; - rLoc = 1254; - rType = 0; - vrLen = 817; - vrLoc = 908; - }; - F6E83B89153B6F4100A14FCA /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 01706F590A347F9A00E43B08 /* Makefile */; - name = "Makefile: 101"; - rLen = 0; - rLoc = 2788; - rType = 0; - vrLen = 1076; - vrLoc = 2382; - }; - F6EB3553155A1047005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6E3B62D1557A6CA00FCA958 /* usb_core.c */; - name = "usb_core.c: 487"; - rLen = 1; - rLoc = 15729; - rType = 0; - vrLen = 796; - vrLoc = 8443; - }; - F6EB3564155A1193005D1535 /* FatStructs.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 5473}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{4956, 1415}"; - }; - }; - F6EB3565155A1193005D1535 /* Sd2Card.cpp */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 9178}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{1173, 643}"; - }; - }; - F6EB3566155A1193005D1535 /* Sd2Card.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 2574}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 962}"; - }; - }; - F6EB3567155A1193005D1535 /* Sd2PinMap.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 4706}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1068}"; - }; - }; - F6EB3568155A1193005D1535 /* SdFat.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 7436}}"; - sepNavSelRange = "{7316, 0}"; - sepNavVisRange = "{123, 1046}"; - }; - }; - F6EB3569155A1193005D1535 /* SdFatmainpage.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 2639}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{7583, 622}"; - }; - }; - F6EB356A155A1193005D1535 /* SdFatUtil.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {797, 936}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1070}"; - }; - }; - F6EB356B155A1193005D1535 /* SdFile.cpp */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {934, 16393}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{21349, 1666}"; - sepNavWindowFrame = "{{15, 152}, {993, 721}}"; - }; - }; - F6EB3571155A134D005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3565155A1193005D1535 /* Sd2Card.cpp */; - name = "Sd2Card.cpp: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 643; - vrLoc = 1173; - }; - F6EB3584155A141A005D1535 /* main.cpp:320 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = F65B9782153F4D4F00A8B814 /* main.cpp */; - functionName = "toPachube(int key, char * value)"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 320; - modificationTime = 358224922.127699; - originalNumberOfMultipleMatches = 0; - state = 1; - }; - F6EB3597155A1592005D1535 /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; - }; - F6EB359A155A16BA005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3568155A1193005D1535 /* SdFat.h */; - name = "SdFat.h: 202"; - rLen = 0; - rLoc = 7316; - rType = 0; - vrLen = 1046; - vrLoc = 123; - }; - F6EB35EF155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3564155A1193005D1535 /* FatStructs.h */; - name = "FatStructs.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1415; - vrLoc = 4956; - }; - F6EB35F0155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3566155A1193005D1535 /* Sd2Card.h */; - name = "Sd2Card.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 962; - vrLoc = 0; - }; - F6EB35F1155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3567155A1193005D1535 /* Sd2PinMap.h */; - name = "Sd2PinMap.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1068; - vrLoc = 0; - }; - F6EB35F2155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3569155A1193005D1535 /* SdFatmainpage.h */; - name = "SdFatmainpage.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 622; - vrLoc = 7583; - }; - F6EB35F3155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB356A155A1193005D1535 /* SdFatUtil.h */; - name = "SdFatUtil.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1070; - vrLoc = 0; - }; - F6EB35F6155AE436005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F65B9782153F4D4F00A8B814 /* main.cpp */; - name = "main.cpp: 580"; - rLen = 0; - rLoc = 17053; - rType = 0; - vrLen = 1592; - vrLoc = 14552; - }; - F6EB367C155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; - name = "SdFile.cpp: 667"; - rLen = 41; - rLoc = 22189; - rType = 0; - vrLen = 1127; - vrLoc = 21650; - }; - F6EB367D155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB367E155EE2F5005D1535 /* usbcfg.h */; - name = "usbcfg.h: 12"; - rLen = 0; - rLoc = 659; - rType = 0; - vrLen = 715; - vrLoc = 2991; - }; - F6EB367E155EE2F5005D1535 /* usbcfg.h */ = { - isa = PBXFileReference; - name = usbcfg.h; - path = /Users/don/Downloads/STM32_USBMem/usbcfg.h; - sourceTree = ""; - }; - F6EB367F155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F65B9782153F4D4F00A8B814 /* main.cpp */; - name = "main.cpp: 619"; - rLen = 42; - rLoc = 16415; - rType = 0; - vrLen = 850; - vrLoc = 8604; - }; - F6EB3680155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F69C9F67150EAAF300B4163A /* main.cpp */; - name = "main.cpp: 176"; - rLen = 0; - rLoc = 4623; - rType = 0; - vrLen = 639; - vrLoc = 4054; - }; - F6EB3681155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F69C9F67150EAAF300B4163A /* main.cpp */; - name = "main.cpp: 538"; - rLen = 0; - rLoc = 14487; - rType = 0; - vrLen = 1398; - vrLoc = 1751; - }; - F6EB3682155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; - name = "SdFile.cpp: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1666; - vrLoc = 21349; - }; - F6EB3683155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F69C9F67150EAAF300B4163A /* main.cpp */; - name = "main.cpp: 76"; - rLen = 0; - rLoc = 2107; - rType = 0; - vrLen = 1590; - vrLoc = 870; - }; - F6EB3684155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3685155EE2F5005D1535 /* rules.mk */; - name = "rules.mk: 6"; - rLen = 40; - rLoc = 99; - rType = 0; - vrLen = 1054; - vrLoc = 0; - }; - F6EB3685155EE2F5005D1535 /* rules.mk */ = { - isa = PBXFileReference; - name = rules.mk; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/FreeRTOS/rules.mk"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {934, 593}}"; - sepNavSelRange = "{99, 40}"; - sepNavVisRange = "{0, 1054}"; - sepNavWindowFrame = "{{447, 157}, {993, 721}}"; - }; - }; - F6EB3686155EE2F5005D1535 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = F6EB3687155EE2F5005D1535 /* flash_stm32.c */; - name = "flash_stm32.c: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1161; - vrLoc = 133; - }; - F6EB3687155EE2F5005D1535 /* flash_stm32.c */ = { - isa = PBXFileReference; - name = flash_stm32.c; - path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/flash_stm32.c"; - sourceTree = ""; - }; -} diff --git a/cacheandcarry.xcodeproj/project.pbxproj b/cacheandcarry.xcodeproj/project.pbxproj deleted file mode 100644 index b9575de..0000000 --- a/cacheandcarry.xcodeproj/project.pbxproj +++ /dev/null @@ -1,314 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXFileReference section */ - 01706F590A347F9A00E43B08 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; - F69C9F67150EAAF300B4163A /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; - F6F130BF15768E0D00094B32 /* FatStructs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FatStructs.h; sourceTree = ""; }; - F6F130C015768E0D00094B32 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - F6F130C115768E0D00094B32 /* rules.mk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.mk; sourceTree = ""; }; - F6F130C215768E0D00094B32 /* Sd2Card.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Sd2Card.cpp; sourceTree = ""; }; - F6F130C315768E0D00094B32 /* Sd2Card.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sd2Card.h; sourceTree = ""; }; - F6F130C415768E0D00094B32 /* SdCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdCard.h; sourceTree = ""; }; - F6F130C515768E0D00094B32 /* SdFat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdFat.h; sourceTree = ""; }; - F6F130C615768E0D00094B32 /* SdFatUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdFatUtil.h; sourceTree = ""; }; - F6F130C715768E0D00094B32 /* SdFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SdFile.cpp; sourceTree = ""; }; - F6F130C815768E0D00094B32 /* SdInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdInfo.h; sourceTree = ""; }; - F6F130C915768E0D00094B32 /* SdVolume.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SdVolume.cpp; sourceTree = ""; }; - F6F130CA15768E0D00094B32 /* SdVolume.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdVolume.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* «PROJECTNAME» */ = { - isa = PBXGroup; - children = ( - 01706F590A347F9A00E43B08 /* Makefile */, - 08FB7795FE84155DC02AAC07 /* Source */, - F6EB355C155A113F005D1535 /* Libraries */, - C6A0FF2B0290797F04C91782 /* Documentation */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = "«PROJECTNAME»"; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - F69C9F67150EAAF300B4163A /* main.cpp */, - ); - name = Source; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - ); - name = Products; - sourceTree = ""; - }; - C6A0FF2B0290797F04C91782 /* Documentation */ = { - isa = PBXGroup; - children = ( - ); - name = Documentation; - sourceTree = ""; - }; - F6EB355C155A113F005D1535 /* Libraries */ = { - isa = PBXGroup; - children = ( - F6F130BE15768E0D00094B32 /* SDfat */, - ); - name = Libraries; - sourceTree = ""; - }; - F6F130BE15768E0D00094B32 /* SDfat */ = { - isa = PBXGroup; - children = ( - F6F130BF15768E0D00094B32 /* FatStructs.h */, - F6F130C015768E0D00094B32 /* README */, - F6F130C115768E0D00094B32 /* rules.mk */, - F6F130C215768E0D00094B32 /* Sd2Card.cpp */, - F6F130C315768E0D00094B32 /* Sd2Card.h */, - F6F130C415768E0D00094B32 /* SdCard.h */, - F6F130C515768E0D00094B32 /* SdFat.h */, - F6F130C615768E0D00094B32 /* SdFatUtil.h */, - F6F130C715768E0D00094B32 /* SdFile.cpp */, - F6F130C815768E0D00094B32 /* SdInfo.h */, - F6F130C915768E0D00094B32 /* SdVolume.cpp */, - F6F130CA15768E0D00094B32 /* SdVolume.h */, - ); - name = SDfat; - path = ../../libmaple/libraries/SDfat; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXLegacyTarget section */ - 0142E2590A37DAD800461F0A /* Debug */ = { - isa = PBXLegacyTarget; - buildArgumentsString = "$(ACTION) debug"; - buildConfigurationList = 0142E25A0A37DAD800461F0A /* Build configuration list for PBXLegacyTarget "Debug" */; - buildPhases = ( - ); - buildToolPath = /usr/bin/make; - dependencies = ( - ); - name = Debug; - passBuildSettingsInEnvironment = 1; - productName = Program; - }; - 01706F540A347F6900E43B08 /* Make */ = { - isa = PBXLegacyTarget; - buildArgumentsString = "$(ACTION)"; - buildConfigurationList = 01706F550A347F8800E43B08 /* Build configuration list for PBXLegacyTarget "Make" */; - buildPhases = ( - ); - buildToolPath = /usr/bin/make; - dependencies = ( - ); - name = Make; - passBuildSettingsInEnvironment = 1; - productName = Make; - }; - 01706F5B0A34807400E43B08 /* Program */ = { - isa = PBXLegacyTarget; - buildArgumentsString = "$(ACTION) install"; - buildConfigurationList = 01706F660A34808D00E43B08 /* Build configuration list for PBXLegacyTarget "Program" */; - buildPhases = ( - ); - buildToolPath = /usr/bin/make; - dependencies = ( - ); - name = Program; - passBuildSettingsInEnvironment = 1; - productName = Program; - }; -/* End PBXLegacyTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0430; - }; - buildConfigurationList = 01706F350A34762900E43B08 /* Build configuration list for PBXProject "datalogger" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 08FB7794FE84155DC02AAC07 /* «PROJECTNAME» */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 01706F540A347F6900E43B08 /* Make */, - 01706F5B0A34807400E43B08 /* Program */, - 0142E2590A37DAD800461F0A /* Debug */, - ); - }; -/* End PBXProject section */ - -/* Begin XCBuildConfiguration section */ - 0142E25B0A37DAD800461F0A /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - PATH = "/sw/bin/:/usr/local/bin/:$PATH"; - PRODUCT_NAME = Program; - }; - name = Development; - }; - 0142E25C0A37DAD800461F0A /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = Program; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 0142E25D0A37DAD800461F0A /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Program; - }; - name = Default; - }; - 01706F360A34762900E43B08 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Development; - }; - 01706F370A34762900E43B08 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Deployment; - }; - 01706F380A34762900E43B08 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Default; - }; - 01706F560A347F8800E43B08 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - PATH = "/sw/bin/:/usr/local/bin/:$PATH"; - PRODUCT_NAME = Make; - ZERO_LINK = "/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"; - }; - name = Development; - }; - 01706F570A347F8800E43B08 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = Make; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 01706F580A347F8800E43B08 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Make; - }; - name = Default; - }; - 01706F670A34808D00E43B08 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - BOARD = maple_mini; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - PATH = "/usr/local/arm-none-eabi/bin/:/usr/local/bin/:$PATH"; - PRODUCT_NAME = Program; - }; - name = Development; - }; - 01706F680A34808D00E43B08 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = Program; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 01706F690A34808D00E43B08 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Program; - }; - name = Default; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0142E25A0A37DAD800461F0A /* Build configuration list for PBXLegacyTarget "Debug" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0142E25B0A37DAD800461F0A /* Development */, - 0142E25C0A37DAD800461F0A /* Deployment */, - 0142E25D0A37DAD800461F0A /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 01706F350A34762900E43B08 /* Build configuration list for PBXProject "datalogger" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 01706F360A34762900E43B08 /* Development */, - 01706F370A34762900E43B08 /* Deployment */, - 01706F380A34762900E43B08 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 01706F550A347F8800E43B08 /* Build configuration list for PBXLegacyTarget "Make" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 01706F560A347F8800E43B08 /* Development */, - 01706F570A347F8800E43B08 /* Deployment */, - 01706F580A347F8800E43B08 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 01706F660A34808D00E43B08 /* Build configuration list for PBXLegacyTarget "Program" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 01706F670A34808D00E43B08 /* Development */, - 01706F680A34808D00E43B08 /* Deployment */, - 01706F690A34808D00E43B08 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index bcf3114..0000000 --- a/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate b/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 67bbde4..0000000 Binary files a/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings b/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index 659c876..0000000 --- a/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index a78ce2d..0000000 --- a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme b/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme deleted file mode 100644 index 721d790..0000000 --- a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme b/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme deleted file mode 100644 index 3e389d0..0000000 --- a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme b/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme deleted file mode 100644 index 68ba12c..0000000 --- a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist b/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 106fc3c..0000000 --- a/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,42 +0,0 @@ - - - - - SchemeUserState - - Debug.xcscheme - - orderHint - 0 - - Make.xcscheme - - orderHint - 1 - - Program.xcscheme - - orderHint - 2 - - - SuppressBuildableAutocreation - - 0142E2590A37DAD800461F0A - - primary - - - 01706F540A347F6900E43B08 - - primary - - - 01706F5B0A34807400E43B08 - - primary - - - - - diff --git a/draft/Makefile b/draft/Makefile new file mode 100644 index 0000000..fb90058 --- /dev/null +++ b/draft/Makefile @@ -0,0 +1,186 @@ +# Try "make help" first + +.DEFAULT_GOAL := sketch + +## +## Useful paths, constants, etc. +## + +ifeq ($(LIB_MAPLE_HOME),) +SRCROOT := ../../libmaple +else +SRCROOT := $(LIB_MAPLE_HOME) +endif +BUILD_PATH = build +LIBMAPLE_PATH := $(SRCROOT)/libmaple +WIRISH_PATH := $(SRCROOT)/wirish +SUPPORT_PATH := $(SRCROOT)/support +# Support files for linker +LDDIR := $(SUPPORT_PATH)/ld +# Support files for this Makefile +MAKEDIR := $(SUPPORT_PATH)/make + +# USB ID for DFU upload +VENDOR_ID := 1EAF +PRODUCT_ID := 0003 + +## +## Target-specific configuration. This determines some compiler and +## linker options/flags. +## + +# Try "make help" for more information on BOARD and MEMORY_TARGET; +# these default to a Maple Flash build. +BOARD ?= maple +MEMORY_TARGET ?= flash + +# $(BOARD)- and $(MEMORY_TARGET)-specific configuration +include $(MAKEDIR)/target-config.mk + +## +## Compilation flags +## + +GLOBAL_FLAGS := -D$(VECT_BASE_ADDR) \ + -DBOARD_$(BOARD) -DMCU_$(MCU) \ + -DERROR_LED_PORT=$(ERROR_LED_PORT) \ + -DERROR_LED_PIN=$(ERROR_LED_PIN) \ + -D$(DENSITY) +GLOBAL_CFLAGS := -Os -g3 -gdwarf-2 -mcpu=cortex-m3 -mthumb -march=armv7-m \ + -nostdlib -ffunction-sections -fdata-sections \ + -Wl,--gc-sections $(GLOBAL_FLAGS) +GLOBAL_CXXFLAGS := -fno-rtti -fno-exceptions -Wall $(GLOBAL_FLAGS) +GLOBAL_ASFLAGS := -mcpu=cortex-m3 -march=armv7-m -mthumb \ + -x assembler-with-cpp $(GLOBAL_FLAGS) +LDFLAGS = -T$(LDDIR)/$(LDSCRIPT) -L$(LDDIR) \ + -mcpu=cortex-m3 -mthumb -Xlinker \ + --gc-sections --print-gc-sections --march=armv7-m -Wall + +## +## Build rules and useful templates +## + +include $(SUPPORT_PATH)/make/build-rules.mk +include $(SUPPORT_PATH)/make/build-templates.mk + +## +## Set all submodules here +## + +# Try to keep LIBMAPLE_MODULES a simply-expanded variable +ifeq ($(LIBMAPLE_MODULES),) + LIBMAPLE_MODULES := $(SRCROOT)/libmaple +else + LIBMAPLE_MODULES += $(SRCROOT)/libmaple +endif +LIBMAPLE_MODULES += $(SRCROOT)/wirish +# Official libraries: +LIBMAPLE_MODULES += $(SRCROOT)/libraries/Servo +LIBMAPLE_MODULES += $(SRCROOT)/libraries/LiquidCrystal +LIBMAPLE_MODULES += $(SRCROOT)/libraries/Wire + +# Experimental libraries: +#LIBMAPLE_MODULES += $(SRCROOT)/libraries/FreeRTOS +LIBMAPLE_MODULES += $(SRCROOT)/libraries/SDfat +#LIBMAPLE_MODULES += $(SRCROOT)/libraries/EEPROM +LIBMAPLE_MODULES += $(SRCROOT)/libraries/RTC + +# Call each module's rules.mk: +$(foreach m,$(LIBMAPLE_MODULES),$(eval $(call LIBMAPLE_MODULE_template,$(m)))) + +## +## Targets +## + +# main target +include $(SRCROOT)/build-targets.mk + +.PHONY: install sketch clean help debug cscope tags ctags ram flash jtag doxygen mrproper + +# Target upload commands +UPLOAD_ram := $(SUPPORT_PATH)/scripts/reset.py && \ + sleep 1 && \ + $(DFU) -a0 -d $(VENDOR_ID):$(PRODUCT_ID) -D $(BUILD_PATH)/$(BOARD).bin -R +UPLOAD_flash := which python &&\ + $(SUPPORT_PATH)/scripts/reset.py && \ + sleep 1 && \ + $(DFU) -a1 -d $(VENDOR_ID):$(PRODUCT_ID) -D $(BUILD_PATH)/$(BOARD).bin -R +UPLOAD_jtag := $(OPENOCD_WRAPPER) flash + +# Conditionally upload to whatever the last build was +install: INSTALL_TARGET = $(shell cat $(BUILD_PATH)/build-type 2>/dev/null) +install: $(BUILD_PATH)/$(BOARD).bin + @echo "Install target:" $(INSTALL_TARGET) + $(UPLOAD_$(INSTALL_TARGET)) + +# Force a rebuild if the target changed +PREV_BUILD_TYPE = $(shell cat $(BUILD_PATH)/build-type 2>/dev/null) +build-check: +ifneq ($(PREV_BUILD_TYPE), $(MEMORY_TARGET)) + $(shell rm -rf $(BUILD_PATH)) +endif + +sketch: build-check MSG_INFO $(BUILD_PATH)/$(BOARD).bin + +clean: + rm -rf build/../../libmaple + rm -rf build + +mrproper: clean + rm -rf doxygen + +help: + @echo "" + @echo " libmaple Makefile help" + @echo " ----------------------" + @echo " " + @echo " Programming targets:" + @echo " sketch: Compile for BOARD to MEMORY_TARGET (default)." + @echo " install: Compile and upload code over USB, using Maple bootloader" + @echo " " + @echo " You *must* set BOARD if not compiling for Maple (e.g." + @echo " use BOARD=maple_mini for mini, etc.), and MEMORY_TARGET" + @echo " if not compiling to Flash." + @echo " " + @echo " Valid BOARDs:" + @echo " maple, maple_mini, maple_RET6, maple_native" + @echo " " + @echo " Valid MEMORY_TARGETs (default=flash):" + @echo " ram: Compile sketch code to ram" + @echo " flash: Compile sketch code to flash" + @echo " jtag: Compile sketch code for jtag; overwrites bootloader" + @echo " " + @echo " Other targets:" + @echo " debug: Start OpenOCD gdb server on port 3333, telnet on port 4444" + @echo " clean: Remove all build and object files" + @echo " help: Show this message" + @echo " doxygen: Build Doxygen HTML and XML documentation" + @echo " mrproper: Remove all generated files" + @echo " " + +debug: + $(OPENOCD_WRAPPER) debug + +cscope: + rm -rf *.cscope + find . -name '*.[hcS]' -o -name '*.cpp' | xargs cscope -b + +tags: + etags `find . -name "*.c" -o -name "*.cpp" -o -name "*.h"` + @echo "Made TAGS file for EMACS code browsing" + +ctags: + ctags-exuberant -R . + @echo "Made tags file for VIM code browsing" + +ram: + @$(MAKE) MEMORY_TARGET=ram --no-print-directory sketch + +flash: + @$(MAKE) MEMORY_TARGET=flash --no-print-directory sketch + +jtag: + @$(MAKE) MEMORY_TARGET=jtag --no-print-directory sketch + +doxygen: + doxygen $(SUPPORT_PATH)/doxygen/Doxyfile diff --git a/draft/README.md b/draft/README.md new file mode 100644 index 0000000..5e1a0ea --- /dev/null +++ b/draft/README.md @@ -0,0 +1,7 @@ +cache-and-carry +=============== + +Cache and Carry, firmware for the Maple Bacon and BOM5k datalogger, https://github.com/soycamo/maplebacon + +This is a "HACK" of beta firmware for the bom5k which was initiated for the ROHK-seattle http://www.rhok.org/event/seattle-wa-usa it it a hack in several senses of the word. Someday it will grow up to be real and useful open source software. + diff --git a/draft/build-targets.mk b/draft/build-targets.mk new file mode 100644 index 0000000..fb8edc0 --- /dev/null +++ b/draft/build-targets.mk @@ -0,0 +1,42 @@ +# main project target +$(BUILD_PATH)/main.o: main.cpp + $(SILENT_CXX) $(CXX) $(CFLAGS) $(CXXFLAGS) $(LIBMAPLE_INCLUDES) $(WIRISH_INCLUDES) -o $@ -c $< + +$(BUILD_PATH)/libmaple.a: $(BUILDDIRS) $(TGT_BIN) + - rm -f $@ + $(AR) crv $(BUILD_PATH)/libmaple.a $(TGT_BIN) + +library: $(BUILD_PATH)/libmaple.a + +.PHONY: library + +$(BUILD_PATH)/$(BOARD).elf: $(BUILDDIRS) $(TGT_BIN) $(BUILD_PATH)/main.o + $(SILENT_LD) $(CXX) $(LDFLAGS) -o $@ $(TGT_BIN) $(BUILD_PATH)/main.o -Wl,-Map,$(BUILD_PATH)/$(BOARD).map + +$(BUILD_PATH)/$(BOARD).bin: $(BUILD_PATH)/$(BOARD).elf + $(SILENT_OBJCOPY) $(OBJCOPY) -v -Obinary $(BUILD_PATH)/$(BOARD).elf $@ 1>/dev/null + $(SILENT_DISAS) $(DISAS) -d $(BUILD_PATH)/$(BOARD).elf > $(BUILD_PATH)/$(BOARD).disas + @echo " " + @echo "Object file sizes:" + @find $(BUILD_PATH) -iname *.o | xargs $(SIZE) -t > $(BUILD_PATH)/$(BOARD).sizes + @cat $(BUILD_PATH)/$(BOARD).sizes + @echo " " + @echo "Final Size:" + @$(SIZE) $< + @echo $(MEMORY_TARGET) > $(BUILD_PATH)/build-type + +$(BUILDDIRS): + @mkdir -p $@ + +MSG_INFO: + @echo "================================================================================" + @echo "" + @echo " Build info:" + @echo " BOARD: " $(BOARD) + @echo " MCU: " $(MCU) + @echo " MEMORY_TARGET: " $(MEMORY_TARGET) + @echo "" + @echo " See 'make help' for all possible targets" + @echo "" + @echo "================================================================================" + @echo "" diff --git a/draft/cacheandcarry.xcodeproj/don.mode1v3 b/draft/cacheandcarry.xcodeproj/don.mode1v3 new file mode 100644 index 0000000..d3e41bd --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/don.mode1v3 @@ -0,0 +1,1586 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + F606C71C0E36E52600ED6D97 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + + Content + + PBXProjectModuleGUID + F6E3B3A61549E44000FCA958 + PBXProjectModuleLabel + main.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + F6E3B3A71549E44000FCA958 + PBXProjectModuleLabel + main.cpp + _historyCapacity + 0 + bookmark + F6EB3681155EE2F5005D1535 + history + + F6EB35F6155AE436005D1535 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {962, 710}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 446 127 962 751 0 0 1440 878 + + + + Content + + PBXProjectModuleGUID + F6EB359D155A16BA005D1535 + PBXProjectModuleLabel + SdFile.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + F6EB359E155A16BA005D1535 + PBXProjectModuleLabel + SdFile.cpp + _historyCapacity + 0 + bookmark + F6EB3682155EE2F5005D1535 + history + + F6EB3597155A1592005D1535 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {993, 624}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 15 208 993 665 0 0 1440 878 + + + + Content + + PBXProjectModuleGUID + F66649C1151CFA700040FDB5 + PBXProjectModuleLabel + main.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + F66649C2151CFA700040FDB5 + PBXProjectModuleLabel + main.cpp + _historyCapacity + 0 + bookmark + F6EB3683155EE2F5005D1535 + history + + F6E3B62E1557A6CA00FCA958 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {962, 710}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 392 127 962 751 0 0 1440 878 + + + + Content + + PBXProjectModuleGUID + F6E3B40E154B764E00FCA958 + PBXProjectModuleLabel + rules.mk + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + F6E3B40F154B764E00FCA958 + PBXProjectModuleLabel + rules.mk + _historyCapacity + 0 + bookmark + F6EB3684155EE2F5005D1535 + history + + F6E3B62F1557A6CA00FCA958 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {993, 624}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 447 213 993 665 0 0 1440 878 + + + + Content + + PBXProjectModuleGUID + F6E3B3A01549E44000FCA958 + PBXProjectModuleLabel + flash_stm32.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + F6E3B3A11549E44000FCA958 + PBXProjectModuleLabel + flash_stm32.c + _historyCapacity + 0 + bookmark + F6EB3686155EE2F5005D1535 + history + + F6E3B6351557A6CA00FCA958 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {993, 624}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 39 188 993 665 0 0 1440 878 + + + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 08FB7794FE84155DC02AAC07 + 08FB7795FE84155DC02AAC07 + F6EB355C155A113F005D1535 + F6EB355F155A1193005D1535 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 3 + 2 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 617}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 635}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 99 202 1066 676 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + main.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + main.cpp + _historyCapacity + 0 + bookmark + F6EB3680155EE2F5005D1535 + history + + F6E83B88153B6F4100A14FCA + F6E83B89153B6F4100A14FCA + F6EB3553155A1047005D1535 + F6EB3571155A134D005D1535 + F6EB359A155A16BA005D1535 + F6EB35EF155AE436005D1535 + F6EB35F0155AE436005D1535 + F6EB35F1155AE436005D1535 + F6EB35F2155AE436005D1535 + F6EB35F3155AE436005D1535 + F6EB367C155EE2F5005D1535 + F6EB367D155EE2F5005D1535 + F6EB367F155EE2F5005D1535 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {858, 400}} + RubberWindowFrame + 99 202 1066 676 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 400pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 405}, {858, 230}} + RubberWindowFrame + 99 202 1066 676 0 0 1440 878 + + Module + XCDetailModule + Proportion + 230pt + + + Proportion + 858pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + F6EB3546155A04F5005D1535 + 1CE0B1FE06471DED0097A5F4 + F6EB3547155A04F5005D1535 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + F6E3B3A01549E44000FCA958 + F6E3B40E154B764E00FCA958 + F66649C1151CFA700040FDB5 + F69C9B0F150BDAC200B4163A + F6EB359D155A16BA005D1535 + /Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/programs/datalogger/datalogger.xcodeproj + F6E3B3A61549E44000FCA958 + + WindowString + 99 202 1066 676 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1037, 325}} + RubberWindowFrame + 69 207 1037 607 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 325pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 330}, {1037, 236}} + RubberWindowFrame + 69 207 1037 607 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 566pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + F69C9B0F150BDAC200B4163A + F6EB354F155A04F5005D1535 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 69 207 1037 607 0 0 1440 878 + WindowToolGUID + F69C9B0F150BDAC200B4163A + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/draft/cacheandcarry.xcodeproj/don.pbxuser b/draft/cacheandcarry.xcodeproj/don.pbxuser new file mode 100644 index 0000000..6cb6978 --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/don.pbxuser @@ -0,0 +1,543 @@ +// !$*UTF8*$! +{ + 0142E2590A37DAD800461F0A /* Debug */ = { + activeExec = 0; + }; + 01706F540A347F6900E43B08 /* Make */ = { + activeExec = 0; + }; + 01706F590A347F9A00E43B08 /* Makefile */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 2431}}"; + sepNavSelRange = "{2174, 0}"; + sepNavVisRange = "{3751, 1645}"; + sepNavWindowFrame = "{{434, 71}, {962, 807}}"; + }; + }; + 01706F5B0A34807400E43B08 /* Program */ = { + activeExec = 0; + }; + 08FB7793FE84155DC02AAC07 /* Project object */ = { + activeBuildConfigurationName = Development; + activeTarget = 01706F5B0A34807400E43B08 /* Program */; + addToTargets = ( + 01706F540A347F6900E43B08 /* Make */, + 01706F5B0A34807400E43B08 /* Program */, + ); + breakpoints = ( + F6E3B3811549E41A00FCA958 /* EEPROM.h:4 */, + F6EB3584155A141A005D1535 /* main.cpp:320 */, + ); + codeSenseManager = F606C70F0E36E4F300ED6D97 /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 619, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 579, + 60, + 20, + 48.16259765625, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 358221038; + PBXWorkspaceStateSaveDate = 358221038; + }; + perUserProjectItems = { + F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */; + F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */; + F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */ = F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */; + F6E83B88153B6F4100A14FCA /* PBXTextBookmark */ = F6E83B88153B6F4100A14FCA /* PBXTextBookmark */; + F6E83B89153B6F4100A14FCA /* PBXTextBookmark */ = F6E83B89153B6F4100A14FCA /* PBXTextBookmark */; + F6EB3553155A1047005D1535 /* PBXTextBookmark */ = F6EB3553155A1047005D1535 /* PBXTextBookmark */; + F6EB3571155A134D005D1535 /* PBXTextBookmark */ = F6EB3571155A134D005D1535 /* PBXTextBookmark */; + F6EB3597155A1592005D1535 /* PBXBookmark */ = F6EB3597155A1592005D1535 /* PBXBookmark */; + F6EB359A155A16BA005D1535 /* PBXTextBookmark */ = F6EB359A155A16BA005D1535 /* PBXTextBookmark */; + F6EB35EF155AE436005D1535 /* PBXTextBookmark */ = F6EB35EF155AE436005D1535 /* PBXTextBookmark */; + F6EB35F0155AE436005D1535 /* PBXTextBookmark */ = F6EB35F0155AE436005D1535 /* PBXTextBookmark */; + F6EB35F1155AE436005D1535 /* PBXTextBookmark */ = F6EB35F1155AE436005D1535 /* PBXTextBookmark */; + F6EB35F2155AE436005D1535 /* PBXTextBookmark */ = F6EB35F2155AE436005D1535 /* PBXTextBookmark */; + F6EB35F3155AE436005D1535 /* PBXTextBookmark */ = F6EB35F3155AE436005D1535 /* PBXTextBookmark */; + F6EB35F6155AE436005D1535 /* PBXTextBookmark */ = F6EB35F6155AE436005D1535 /* PBXTextBookmark */; + F6EB367C155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367C155EE2F5005D1535 /* PBXTextBookmark */; + F6EB367D155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367D155EE2F5005D1535 /* PBXTextBookmark */; + F6EB367F155EE2F5005D1535 /* PBXTextBookmark */ = F6EB367F155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3680155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3680155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3681155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3681155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3682155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3682155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3683155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3683155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3684155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3684155EE2F5005D1535 /* PBXTextBookmark */; + F6EB3686155EE2F5005D1535 /* PBXTextBookmark */ = F6EB3686155EE2F5005D1535 /* PBXTextBookmark */; + }; + sourceControlManager = F606C70E0E36E4F300ED6D97 /* Source Control */; + userBuildSettings = { + }; + }; + F606C70E0E36E4F300ED6D97 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + F606C70F0E36E4F300ED6D97 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + F65B9782153F4D4F00A8B814 /* main.cpp */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = main.cpp; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 8710}}"; + sepNavSelRange = "{14487, 0}"; + sepNavVisRange = "{1751, 1398}"; + sepNavWindowFrame = "{{392, 71}, {962, 807}}"; + }; + }; + F69C9B5A150D0F0000B4163A /* stdlib.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = stdlib.h; + path = "/Applications/MapleIDE.app/Contents/Resources/Java/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/stdlib.h"; + sourceTree = ""; + }; + F69C9F67150EAAF300B4163A /* main.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 8788}}"; + sepNavSelRange = "{2107, 0}"; + sepNavVisRange = "{870, 1590}"; + sepNavWindowFrame = "{{446, 71}, {962, 807}}"; + }; + }; + F6E3B3811549E41A00FCA958 /* EEPROM.h:4 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = F6E3B3821549E41A00FCA958 /* EEPROM.h */; + hitCount = 0; + ignoreCount = 0; + lineNumber = 4; + modificationTime = 357164058.10546; + originalNumberOfMultipleMatches = 0; + state = 1; + }; + F6E3B3821549E41A00FCA958 /* EEPROM.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = EEPROM.h; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/EEPROM.h"; + sourceTree = ""; + }; + F6E3B62D1557A6CA00FCA958 /* usb_core.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = usb_core.c; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libmaple/usb/usb_lib/usb_core.c"; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 13442}}"; + sepNavSelRange = "{15729, 1}"; + sepNavVisRange = "{8443, 796}"; + }; + }; + F6E3B62E1557A6CA00FCA958 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F69C9F67150EAAF300B4163A /* main.cpp */; + name = "main.cpp: 459"; + rLen = 0; + rLoc = 13077; + rType = 0; + vrLen = 1464; + vrLoc = 13511; + }; + F6E3B62F1557A6CA00FCA958 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6E3B6301557A6CA00FCA958 /* rules.mk */; + name = "rules.mk: 6"; + rLen = 40; + rLoc = 99; + rType = 0; + vrLen = 1054; + vrLoc = 0; + }; + F6E3B6301557A6CA00FCA958 /* rules.mk */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = rules.mk; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/FreeRTOS/rules.mk"; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {934, 593}}"; + sepNavSelRange = "{99, 40}"; + sepNavVisRange = "{0, 1054}"; + }; + }; + F6E3B6351557A6CA00FCA958 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6E3B6361557A6CA00FCA958 /* flash_stm32.c */; + name = "flash_stm32.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1161; + vrLoc = 133; + }; + F6E3B6361557A6CA00FCA958 /* flash_stm32.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = flash_stm32.c; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/flash_stm32.c"; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {934, 2145}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{133, 1161}"; + sepNavWindowFrame = "{{39, 132}, {993, 721}}"; + }; + }; + F6E83B88153B6F4100A14FCA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F69C9B5A150D0F0000B4163A /* stdlib.h */; + name = "stdlib.h: 72"; + rLen = 0; + rLoc = 1254; + rType = 0; + vrLen = 817; + vrLoc = 908; + }; + F6E83B89153B6F4100A14FCA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 01706F590A347F9A00E43B08 /* Makefile */; + name = "Makefile: 101"; + rLen = 0; + rLoc = 2788; + rType = 0; + vrLen = 1076; + vrLoc = 2382; + }; + F6EB3553155A1047005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6E3B62D1557A6CA00FCA958 /* usb_core.c */; + name = "usb_core.c: 487"; + rLen = 1; + rLoc = 15729; + rType = 0; + vrLen = 796; + vrLoc = 8443; + }; + F6EB3564155A1193005D1535 /* FatStructs.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 5473}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{4956, 1415}"; + }; + }; + F6EB3565155A1193005D1535 /* Sd2Card.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 9178}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{1173, 643}"; + }; + }; + F6EB3566155A1193005D1535 /* Sd2Card.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 2574}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 962}"; + }; + }; + F6EB3567155A1193005D1535 /* Sd2PinMap.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 4706}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1068}"; + }; + }; + F6EB3568155A1193005D1535 /* SdFat.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 7436}}"; + sepNavSelRange = "{7316, 0}"; + sepNavVisRange = "{123, 1046}"; + }; + }; + F6EB3569155A1193005D1535 /* SdFatmainpage.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 2639}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{7583, 622}"; + }; + }; + F6EB356A155A1193005D1535 /* SdFatUtil.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {797, 936}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1070}"; + }; + }; + F6EB356B155A1193005D1535 /* SdFile.cpp */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {934, 16393}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{21349, 1666}"; + sepNavWindowFrame = "{{15, 152}, {993, 721}}"; + }; + }; + F6EB3571155A134D005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3565155A1193005D1535 /* Sd2Card.cpp */; + name = "Sd2Card.cpp: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 643; + vrLoc = 1173; + }; + F6EB3584155A141A005D1535 /* main.cpp:320 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = F65B9782153F4D4F00A8B814 /* main.cpp */; + functionName = "toPachube(int key, char * value)"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 320; + modificationTime = 358224922.127699; + originalNumberOfMultipleMatches = 0; + state = 1; + }; + F6EB3597155A1592005D1535 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; + }; + F6EB359A155A16BA005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3568155A1193005D1535 /* SdFat.h */; + name = "SdFat.h: 202"; + rLen = 0; + rLoc = 7316; + rType = 0; + vrLen = 1046; + vrLoc = 123; + }; + F6EB35EF155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3564155A1193005D1535 /* FatStructs.h */; + name = "FatStructs.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1415; + vrLoc = 4956; + }; + F6EB35F0155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3566155A1193005D1535 /* Sd2Card.h */; + name = "Sd2Card.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 962; + vrLoc = 0; + }; + F6EB35F1155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3567155A1193005D1535 /* Sd2PinMap.h */; + name = "Sd2PinMap.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1068; + vrLoc = 0; + }; + F6EB35F2155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3569155A1193005D1535 /* SdFatmainpage.h */; + name = "SdFatmainpage.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 622; + vrLoc = 7583; + }; + F6EB35F3155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB356A155A1193005D1535 /* SdFatUtil.h */; + name = "SdFatUtil.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1070; + vrLoc = 0; + }; + F6EB35F6155AE436005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F65B9782153F4D4F00A8B814 /* main.cpp */; + name = "main.cpp: 580"; + rLen = 0; + rLoc = 17053; + rType = 0; + vrLen = 1592; + vrLoc = 14552; + }; + F6EB367C155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; + name = "SdFile.cpp: 667"; + rLen = 41; + rLoc = 22189; + rType = 0; + vrLen = 1127; + vrLoc = 21650; + }; + F6EB367D155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB367E155EE2F5005D1535 /* usbcfg.h */; + name = "usbcfg.h: 12"; + rLen = 0; + rLoc = 659; + rType = 0; + vrLen = 715; + vrLoc = 2991; + }; + F6EB367E155EE2F5005D1535 /* usbcfg.h */ = { + isa = PBXFileReference; + name = usbcfg.h; + path = /Users/don/Downloads/STM32_USBMem/usbcfg.h; + sourceTree = ""; + }; + F6EB367F155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F65B9782153F4D4F00A8B814 /* main.cpp */; + name = "main.cpp: 619"; + rLen = 42; + rLoc = 16415; + rType = 0; + vrLen = 850; + vrLoc = 8604; + }; + F6EB3680155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F69C9F67150EAAF300B4163A /* main.cpp */; + name = "main.cpp: 176"; + rLen = 0; + rLoc = 4623; + rType = 0; + vrLen = 639; + vrLoc = 4054; + }; + F6EB3681155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F69C9F67150EAAF300B4163A /* main.cpp */; + name = "main.cpp: 538"; + rLen = 0; + rLoc = 14487; + rType = 0; + vrLen = 1398; + vrLoc = 1751; + }; + F6EB3682155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB356B155A1193005D1535 /* SdFile.cpp */; + name = "SdFile.cpp: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1666; + vrLoc = 21349; + }; + F6EB3683155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F69C9F67150EAAF300B4163A /* main.cpp */; + name = "main.cpp: 76"; + rLen = 0; + rLoc = 2107; + rType = 0; + vrLen = 1590; + vrLoc = 870; + }; + F6EB3684155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3685155EE2F5005D1535 /* rules.mk */; + name = "rules.mk: 6"; + rLen = 40; + rLoc = 99; + rType = 0; + vrLen = 1054; + vrLoc = 0; + }; + F6EB3685155EE2F5005D1535 /* rules.mk */ = { + isa = PBXFileReference; + name = rules.mk; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/FreeRTOS/rules.mk"; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {934, 593}}"; + sepNavSelRange = "{99, 40}"; + sepNavVisRange = "{0, 1054}"; + sepNavWindowFrame = "{{447, 157}, {993, 721}}"; + }; + }; + F6EB3686155EE2F5005D1535 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F6EB3687155EE2F5005D1535 /* flash_stm32.c */; + name = "flash_stm32.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1161; + vrLoc = 133; + }; + F6EB3687155EE2F5005D1535 /* flash_stm32.c */ = { + isa = PBXFileReference; + name = flash_stm32.c; + path = "/Users/don/Sites/embedded/suspectDevices/xtractSolutions/AMACallHome/Baco-matic5000/libmaple/libraries/EEPROM/flash_stm32.c"; + sourceTree = ""; + }; +} diff --git a/draft/cacheandcarry.xcodeproj/project.pbxproj b/draft/cacheandcarry.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b9575de --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/project.pbxproj @@ -0,0 +1,314 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXFileReference section */ + 01706F590A347F9A00E43B08 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + F69C9F67150EAAF300B4163A /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + F6F130BF15768E0D00094B32 /* FatStructs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FatStructs.h; sourceTree = ""; }; + F6F130C015768E0D00094B32 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; + F6F130C115768E0D00094B32 /* rules.mk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.mk; sourceTree = ""; }; + F6F130C215768E0D00094B32 /* Sd2Card.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Sd2Card.cpp; sourceTree = ""; }; + F6F130C315768E0D00094B32 /* Sd2Card.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sd2Card.h; sourceTree = ""; }; + F6F130C415768E0D00094B32 /* SdCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdCard.h; sourceTree = ""; }; + F6F130C515768E0D00094B32 /* SdFat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdFat.h; sourceTree = ""; }; + F6F130C615768E0D00094B32 /* SdFatUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdFatUtil.h; sourceTree = ""; }; + F6F130C715768E0D00094B32 /* SdFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SdFile.cpp; sourceTree = ""; }; + F6F130C815768E0D00094B32 /* SdInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdInfo.h; sourceTree = ""; }; + F6F130C915768E0D00094B32 /* SdVolume.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SdVolume.cpp; sourceTree = ""; }; + F6F130CA15768E0D00094B32 /* SdVolume.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SdVolume.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* «PROJECTNAME» */ = { + isa = PBXGroup; + children = ( + 01706F590A347F9A00E43B08 /* Makefile */, + 08FB7795FE84155DC02AAC07 /* Source */, + F6EB355C155A113F005D1535 /* Libraries */, + C6A0FF2B0290797F04C91782 /* Documentation */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + ); + name = "«PROJECTNAME»"; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + F69C9F67150EAAF300B4163A /* main.cpp */, + ); + name = Source; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + ); + name = Products; + sourceTree = ""; + }; + C6A0FF2B0290797F04C91782 /* Documentation */ = { + isa = PBXGroup; + children = ( + ); + name = Documentation; + sourceTree = ""; + }; + F6EB355C155A113F005D1535 /* Libraries */ = { + isa = PBXGroup; + children = ( + F6F130BE15768E0D00094B32 /* SDfat */, + ); + name = Libraries; + sourceTree = ""; + }; + F6F130BE15768E0D00094B32 /* SDfat */ = { + isa = PBXGroup; + children = ( + F6F130BF15768E0D00094B32 /* FatStructs.h */, + F6F130C015768E0D00094B32 /* README */, + F6F130C115768E0D00094B32 /* rules.mk */, + F6F130C215768E0D00094B32 /* Sd2Card.cpp */, + F6F130C315768E0D00094B32 /* Sd2Card.h */, + F6F130C415768E0D00094B32 /* SdCard.h */, + F6F130C515768E0D00094B32 /* SdFat.h */, + F6F130C615768E0D00094B32 /* SdFatUtil.h */, + F6F130C715768E0D00094B32 /* SdFile.cpp */, + F6F130C815768E0D00094B32 /* SdInfo.h */, + F6F130C915768E0D00094B32 /* SdVolume.cpp */, + F6F130CA15768E0D00094B32 /* SdVolume.h */, + ); + name = SDfat; + path = ../../libmaple/libraries/SDfat; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXLegacyTarget section */ + 0142E2590A37DAD800461F0A /* Debug */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "$(ACTION) debug"; + buildConfigurationList = 0142E25A0A37DAD800461F0A /* Build configuration list for PBXLegacyTarget "Debug" */; + buildPhases = ( + ); + buildToolPath = /usr/bin/make; + dependencies = ( + ); + name = Debug; + passBuildSettingsInEnvironment = 1; + productName = Program; + }; + 01706F540A347F6900E43B08 /* Make */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "$(ACTION)"; + buildConfigurationList = 01706F550A347F8800E43B08 /* Build configuration list for PBXLegacyTarget "Make" */; + buildPhases = ( + ); + buildToolPath = /usr/bin/make; + dependencies = ( + ); + name = Make; + passBuildSettingsInEnvironment = 1; + productName = Make; + }; + 01706F5B0A34807400E43B08 /* Program */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "$(ACTION) install"; + buildConfigurationList = 01706F660A34808D00E43B08 /* Build configuration list for PBXLegacyTarget "Program" */; + buildPhases = ( + ); + buildToolPath = /usr/bin/make; + dependencies = ( + ); + name = Program; + passBuildSettingsInEnvironment = 1; + productName = Program; + }; +/* End PBXLegacyTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; + buildConfigurationList = 01706F350A34762900E43B08 /* Build configuration list for PBXProject "datalogger" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* «PROJECTNAME» */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 01706F540A347F6900E43B08 /* Make */, + 01706F5B0A34807400E43B08 /* Program */, + 0142E2590A37DAD800461F0A /* Debug */, + ); + }; +/* End PBXProject section */ + +/* Begin XCBuildConfiguration section */ + 0142E25B0A37DAD800461F0A /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + PATH = "/sw/bin/:/usr/local/bin/:$PATH"; + PRODUCT_NAME = Program; + }; + name = Development; + }; + 0142E25C0A37DAD800461F0A /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + PRODUCT_NAME = Program; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 0142E25D0A37DAD800461F0A /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = Program; + }; + name = Default; + }; + 01706F360A34762900E43B08 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Development; + }; + 01706F370A34762900E43B08 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Deployment; + }; + 01706F380A34762900E43B08 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Default; + }; + 01706F560A347F8800E43B08 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + PATH = "/sw/bin/:/usr/local/bin/:$PATH"; + PRODUCT_NAME = Make; + ZERO_LINK = "/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"; + }; + name = Development; + }; + 01706F570A347F8800E43B08 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + PRODUCT_NAME = Make; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 01706F580A347F8800E43B08 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = Make; + }; + name = Default; + }; + 01706F670A34808D00E43B08 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + BOARD = maple_mini; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + PATH = "/usr/local/arm-none-eabi/bin/:/usr/local/bin/:$PATH"; + PRODUCT_NAME = Program; + }; + name = Development; + }; + 01706F680A34808D00E43B08 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + PRODUCT_NAME = Program; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 01706F690A34808D00E43B08 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = Program; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0142E25A0A37DAD800461F0A /* Build configuration list for PBXLegacyTarget "Debug" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0142E25B0A37DAD800461F0A /* Development */, + 0142E25C0A37DAD800461F0A /* Deployment */, + 0142E25D0A37DAD800461F0A /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 01706F350A34762900E43B08 /* Build configuration list for PBXProject "datalogger" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01706F360A34762900E43B08 /* Development */, + 01706F370A34762900E43B08 /* Deployment */, + 01706F380A34762900E43B08 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 01706F550A347F8800E43B08 /* Build configuration list for PBXLegacyTarget "Make" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01706F560A347F8800E43B08 /* Development */, + 01706F570A347F8800E43B08 /* Deployment */, + 01706F580A347F8800E43B08 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 01706F660A34808D00E43B08 /* Build configuration list for PBXLegacyTarget "Program" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 01706F670A34808D00E43B08 /* Development */, + 01706F680A34808D00E43B08 /* Deployment */, + 01706F690A34808D00E43B08 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/draft/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/draft/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..bcf3114 --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate b/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..67bbde4 Binary files /dev/null and b/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings b/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..659c876 --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/project.xcworkspace/xcuserdata/don.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 0000000..a78ce2d --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme new file mode 100644 index 0000000..721d790 --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Debug.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme new file mode 100644 index 0000000..3e389d0 --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Make.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme new file mode 100644 index 0000000..68ba12c --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/Program.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..106fc3c --- /dev/null +++ b/draft/cacheandcarry.xcodeproj/xcuserdata/don.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,42 @@ + + + + + SchemeUserState + + Debug.xcscheme + + orderHint + 0 + + Make.xcscheme + + orderHint + 1 + + Program.xcscheme + + orderHint + 2 + + + SuppressBuildableAutocreation + + 0142E2590A37DAD800461F0A + + primary + + + 01706F540A347F6900E43B08 + + primary + + + 01706F5B0A34807400E43B08 + + primary + + + + + diff --git a/draft/main.cpp b/draft/main.cpp new file mode 100644 index 0000000..68f0d7c --- /dev/null +++ b/draft/main.cpp @@ -0,0 +1,890 @@ +/*------------------------------------------------------------datalogger/main.cpp + * + * + * + * + * + * Loose framework (thinking out loud). + * + * Deal with multi line data. + * SOD[ :]Start of multiline data + * EOD[ :]End of multiline data + * + * Log file and disk commands + * DIR[? ] directory of the disk. + * TYP[? ] type file + * DEL[ ! ] delete file + * DDS[? ] dates from logs. + * DMP[ ! ] dump all logs [in order] + * + * LOG[ !:] log data to current log file + * LSV[? :] logger software version + * LTS[ ! ] sync time with client + * LNT[ ! ] sync time from network. + * + * NSC[? ] network scan + * NPW[ ! ] network password + * NJN[?!:] join network. + * + * SSV[! ] save settings (read bom5k.set) + * SGT[? ] get settings (write bom5k.set) + * + *-----------------------------------------------------------------------------*/ +#include "wirish.h" +#include "iwdg.h" +#include +#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include + +#ifndef uint8_t +#define uint8_t uint8 +#define uint16_t uint16 +#define uint32_t uint32 +#endif + +#define GRN_LED 19 +#define ORN_LED 18 +#define RED_LED 14 +#define LED_ON LOW +#define LED_OFF HIGH + +#define BOM_VERSION "BOM5K_"__DATE__ + +#define KEYWORDS \ + "SYN" "ACK" "NAK" "SWV" "HWV" "MEM" "SSN" "HLP" "FTL" "ALT" "WRN" "INF" "DBG"\ + "LOG" "STC" "DVL" "LVL" "DLG" "RST" "SHD" "ALM" "CPT" "CND" "BTN" "WBP" "ERF"\ + "NOW" "TIM" "THR" "THM" "DFR" "TS1" "TS2" "TS3" "TS4" "TS5" "AMT" "CHT" "AIT"\ + "FAN" "CHL" "???" "PWR" "PCT" "TSC" "CPR" "CPP" "CPI" "CPD" "FPP" "FPI" "FPD"\ + "RED" "GRN" "BLU" "TSS" "NOP" + +enum keywordIndex { + _SYN_,_ACK_,_NAK_,_SWV_,_HWV_,_MEM_,_SSN_,_HLP_,_FTL_,_ALT_,_WRN_,_INF_,_DBG_, + _LOG_,_STC_,_DVL_,_LVL_,_DLG_,_RST_,_SHD_,_ALM_,_CPT_,_CND_,_BTN_,_WBP_,_ERF_, + _NOW_,_TIM_,_THR_,_THM_,_DFR_,_TS1_,_TS2_,_TS3_,_TS4_,_TS5_,_AMT_,_CHT_,_AIT_, + _FAN_,_CHL_,_TMP_,_PWR_,_PCT_,_TSC_,_CPR_,_CPP_,_CPI_,_CPD_,_FPP_,_FPI_,_FPD_, + _RED_,_GRN_,_BLU_,_TSS_,_NOP_ +}; + +// use enum to determine the size of the keyword arrays. +#define NKEYWORDS _NOP_ + 1 +//NKEYWORDS; +#define LOGGERKEYWORDS \ + "DIR" "DEL" "TX2" "TYP" "NSC" "NJN" "NPW" "NST" "TPT" "FMT" "PKY" \ + "PFD" "PTO" "PIP" "PON" "POF" "SSV" "SGT" "LSV" + +enum loggerKeywordIndex { + _DIR_=_NOP_+1,_DEL_,_TX2_,_TYP_,_NSC_,_NJN_,_NPW_,_NST_,_TPT_,_FMT_,_PKY_, + _PFD_,_PTO_,_PIP_,_PON_,_POF_,_SSV_,_SGT_,_LSV_ +}; + +//int patchubeIndex[]={_TS1_,_TS2_,_TS3_,_TS4_,_TS5_,_FAN_,_CHL_,_STC_}; + +#undef NKEYWORDS +#define NKEYWORDS _LSV_ + 1 + +int toPachube(int, char *); +void readSettings(void); +void writeSettings(void); +int networkStatus(); +const char keywords[((NKEYWORDS)*3)+1] = KEYWORDS LOGGERKEYWORDS; + +int lookupIndex(char *); +void logData(char *); +void stripcrlf(char *); +void stripcrlf(char *mystring) { + char * finger; + if ((finger=strchr(mystring,'\r')) != NULL) { + finger[0]='\0'; + } + if ((finger=strchr(mystring,'\n')) != NULL) { + finger[0]='\0'; + } +} +#define MAX_RETURN_VALUE 104 + +#define WATCHDOG_TIMEOUT 16000 +#define Watchdog_Reset iwdg_feed + +HardwareSPI spi(1); +Sd2Card card; +SdVolume volume; +SdFile root; +SdFile file; +SdFile settingsFile; +char logFileName[16]; +char settingsFileName[16]="BOM5K.SET"; + +bool logOpened=false; + +#define MAX_PATCHUBE_KEY_LENGHT 80 +#define MAX_PATCHUBE_FEED_LENGHT 10 +#define MAX_NETWORK_PASSWORD_LENGTH 40 +#define MAX_NETWORK_SSID_LENGTH 64 + +char networkPassword[MAX_NETWORK_PASSWORD_LENGTH]; +char networkSSID[MAX_NETWORK_SSID_LENGTH]; +char pachubeKey[MAX_PATCHUBE_KEY_LENGHT]="J_4LnoRNleWbZDm9FYp3XevLWXuSzlDiJwCsQnc1TGFQOUZLMHM9"; +char pachubeFeed[MAX_PATCHUBE_FEED_LENGHT]="50019"; + +class DataStream { +private: + Print *_out; + bool _isUSB; + char _buf[MAX_RETURN_VALUE]; + char _key[4]; + uint8_t _keyVal; + char _action; + uint8_t _ndx; + //bool _gotLine; +public: + DataStream(Print *, int); //initializer + bool available(); + uint8_t read(); + void printf(const char *format, ...); + bool gotLine(unsigned int timeout); + char * line() {return _buf; }; + char action() {return _action; }; + char * key(){return _key; }; + char * arguments() {return _buf+4 ; }; + uint8_t keyValue() {return _keyVal; }; + void puts(char *s); //{ _out->print(s); }; + void putChar(char ch); //{ _out->print(ch); }; + void discard() { while(available())read();_ndx=0;} + void flush() { if (_isUSB) {/*SerialUSB.flush();*/;} else {((HardwareSerial *)_out)->flush();}} +}; + +DataStream::DataStream(Print * sout, int baudRate=0) { + _out=sout; + _isUSB=(baudRate==0); + _ndx=0; + //_gotLine=false; + _buf[0]=_key[0]='\0'; + if (_isUSB) { + SerialUSB.begin(); + } else { + ((HardwareSerial *)_out)->begin(baudRate); + } + +} + +char outputBuffer[MAX_RETURN_VALUE]; //allocate once use often. + +void DataStream::printf(const char *format, ...){ + va_list blarg; + va_start(blarg, format); + vsnprintf(outputBuffer, MAX_RETURN_VALUE, format, blarg); + va_end(blarg); +// + //if(SerialUSB.isConnected() && (SerialUSB.getDTR() || SerialUSB.getRTS())) { + puts(outputBuffer); +} + +void DataStream::puts(char *s) { + if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) + return; + _out->write(s); +}; + +void DataStream::putChar(char ch) { + if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) + return; + _out->write(&ch,1); }; + + +bool DataStream::available() { + if (_isUSB) { + return ((USBSerial *)_out)->available(); + } else { + return ((HardwareSerial *)_out)->available(); + } +} + +uint8_t DataStream::read() { + if (_isUSB) { + return (uint8_t) ((USBSerial *)_out)->read(); + } else { + return (uint8_t) ((HardwareSerial *)_out)->read(); + } +} + +bool DataStream::gotLine(unsigned int timeout=5000) { + char ch=0; + bool retval=false; + unsigned long int mark=millis(); + if(available()){ + while( (millis()-mark < timeout) && available() && _ndx < 99 && ((ch=read()) != '\n') && ch !='\r' ) { + _buf[_ndx++] = ch; + } + if (_ndx && ((ch=='\n')||(ch=='\r'))) { // should probably check if line is at least 4 chars. + _buf[_ndx++]='\r'; + _buf[_ndx++]='\n'; + _buf[_ndx]='\0'; + _ndx=0; + //_gotLine= + retval=true; + _key[0]=_buf[0]; + _key[1]=_buf[1]; + _key[2]=_buf[2]; + _key[3]='\0'; + _action=_buf[3]; + _keyVal=lookupIndex(_key); + } + } + return retval; +} + +DataStream device(&Serial1,9600); +DataStream console(&SerialUSB); +DataStream radio(&Serial2,9600); + +void logData(char *data) { + int n; + n=file.write(data,strlen(data)); + console.printf("DBG: Logging (%d)'%s'",n,data); + file.sync(); +} +volatile long unsigned int throttleMark; +void handleDeviceInput() { + bool throttle = false; + bool dataSent = false; + if ((millis()-throttleMark<1500)) { + throttle=true; + } + switch (device.keyValue()) { + case _LOG_: + logData(device.arguments()); + break; + case _TS1_: + if (!throttle) { + dataSent=true; + toPachube(0, device.arguments()); + } break; + case _TS2_: + if (!throttle) { + dataSent=true; + toPachube(1, device.arguments()); + } break; + case _TS3_: + if (!throttle) { + dataSent=true; + toPachube(2, device.arguments()); + } break; + case _TS4_: + if (!throttle) { + dataSent=true; + toPachube(3, device.arguments()); + } break; + case _TS5_: + if (!throttle) { + dataSent=true; + toPachube(4, device.arguments()); + } break; + case _FAN_: + if (!throttle) { + dataSent=true; + toPachube(5, device.arguments()); + } break; + case _CHL_: + if (!throttle) { + dataSent=true; + toPachube(6, device.arguments()); + } break; + case _STC_: + char * finger; + if ((finger=strchr(device.arguments(),' ')) != NULL) { + finger[0]='\0'; + toPachube(8, finger+1); + } + toPachube(7, device.arguments()); break; + case _FTL_: toPachube(7, device.arguments()); break; + break; + default: + console.printf("%s",device.line()); + break; + } + if (dataSent) throttleMark=millis(); +} + + +void typeFile(char *fname) { + SdFile file2; + int16_t n; + char nfname[16]; + char buf[65]; + for (n=0; fname[n] && n<15; n++) { + if (fname[n]=='\r'||fname[n]=='\n') { + nfname[n]='\0'; + } else if (fname[n]=='.') { + nfname[n]='.'; + } else { + nfname[n]=fname[n];//nfname[n]=toupper(fname[n]); + } + } + if (file2.open (&root,nfname,O_READ)) { + console.printf("SOD:%s\r\n",nfname); + while ((n = file2.read(buf, sizeof(buf)-1)) > 0) { + buf[n]='\0'; + console.puts(buf); + } + console.printf("EOD:%s\r\n",nfname); + } else { + console.printf("DBG: Couldnt open '%s'\r\n",nfname); + } + +} +#define MAX_INPUT_LINE 100 + +char inBuffer[MAX_INPUT_LINE]; + +int networkScan() { + uint8_t index=0; + char endofinput[]="No.Of AP Found:"; + char nfound[4]="0"; + uint8_t ch='0'; + radio.discard(); + radio.printf("\r\n"); + radio.discard(); + radio.printf("\r\nAT+WS\r\n"); + while (!radio.available()); // and some timeout. + + while ((index<15)){ + while (radio.available()) { + console.putChar(ch=(char) radio.read()); + if ((ch=='\n')||(ch=='\r')) index=0; + if (ch==endofinput[index]) index++; + } + + } + + while (!radio.available()); // and some timeout. + ch='\0'; index=0; + while ((index<4)&&(ch!='\r')&&(ch!='\n')){ + while(radio.available()) { + console.putChar(ch=(char) radio.read()); + if (isdigit(ch)) nfound[index++]=ch; + } + } + radio.discard(); + console.printf("\r\n"); + nfound[index]='\0'; + return(atoi(nfound)); + +} + +int isErrorOrOK(char *line) { + if (line[0]=='O'&&line[1]=='K'&&line[2]=='\0') return 1; + if (line[0]=='O'&&line[1]=='K'&&line[2]=='\r') return 1; + if (line[0]=='E'&&line[1]=='R'&&line[2]=='R'&&line[3]=='O'&&line[4]=='R'&&line[5]=='\0') return -1; + if (line[0]=='E'&&line[1]=='R'&&line[2]=='R'&&line[3]=='O'&&line[4]=='R'&&line[5]=='\r') return -1; + return 0; +} + + +int toPachube(int key, char * value) { + uint8_t n,index=0; + int retval; + char databuffer[36]; + char cid[4]="0"; + bool gotResponse=false; + enum {CONNECT, ERROR, DISASSOCIATED} status=ERROR;//statii; + uint8_t ch='0'; + radio.discard(); + radio.printf("\r\n"); + radio.discard(); + radio.printf("\r\nAT+NCTCP=216.52.233.122,80\r\n"); + while (!radio.available()); // and some timeout. + + // ERROR + // CONNECT + // DISASSOCIATED + digitalWrite(ORN_LED,LOW); + + while (!gotResponse){ // this needs to catch errors. + while (radio.available()) { + databuffer[index]=ch=(char) radio.read(); + if (index<36) index++; + console.putChar(ch); + if ((ch=='\n')||(ch=='\r')) { + databuffer[index]='\0'; + if (strncmp("CONNECT", databuffer,6)==0) { + if (index>7) { + for (index=0, n=8; index<3 && databuffer[n];) { + cid[index++]=databuffer[n++]; // if isdigit???? + } + cid[index]='\0'; + } + status=CONNECT; + gotResponse=true; + console.printf("DBG: Connect CID=%s\r\n",cid); + } else if (strcmp("ERROR", databuffer)==0) { + gotResponse=true; + status=ERROR; + + } else if (strncmp("DISASSOCIATED",databuffer,index)==0) { + gotResponse=true; + status=DISASSOCIATED; + } + index=0; + } + } + + } + digitalWrite(ORN_LED,HIGH); + + if (status!=CONNECT) { + console.printf("DBG: NOT CONNECTED! (%d) Exiting\r\n", status); + return(0); + } + radio.discard(); + snprintf(databuffer, 36, "%d,%s",key,value); + radio.printf("\033S%dPUT /v2/feeds/%s.csv HTTP/1.1\r\n",atoi(cid),pachubeFeed); + radio.printf("User-Agent: SuspectDevices/Baco-matic5000 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15\r\n"); + radio.printf("Host: api.pachube.com\r\nAccept: */*\r\nConnection: close\r\n"); + radio.printf("X-PachubeApiKey: %s\r\n",pachubeKey); + radio.printf("Content-Length: %d\r\n\r\n%s\r\n\033E",strlen(databuffer),databuffer); + console.printf("DBG: Sending to feed %s: (%d)%s \r\n",pachubeFeed,strlen(databuffer),databuffer); + + // + // sent data then wait for an OK + // + while (!radio.gotLine()); + while (!(retval=isErrorOrOK(radio.line()))){ + //console.printf("DBG: %s\r\n",radio.line()); + while (!radio.gotLine()) { + ; + } + } + + if (retval<1) { + console.printf("DBG: NOT OK! %s\r\n",radio.line()); + radio.discard(); + return(0); + } + // + // should get an escaped stream followed by a disconnect + // + index=0; + gotResponse=false; + digitalWrite(ORN_LED,LOW); + + while (!radio.gotLine()); + sprintf(databuffer,"%c%c%c%c%cS%dHTTP",0x1b,0x4f,0x1b,0x4f,0x1b,atoi(cid)); + if(!strncmp(databuffer, radio.line(),strlen(databuffer)) ) { + databuffer[0]=radio.line()[16]; + databuffer[1]=radio.line()[17]; + databuffer[2]=radio.line()[18]; + databuffer[3]='\0'; + console.printf("DBG:[%d] %s\r\n",retval=atoi(databuffer),radio.line()+7); + } + while (!radio.gotLine()); + radio.discard(); + delay(500); + digitalWrite(ORN_LED,HIGH); + return(retval); +} + +int networkJoin(char *ssid) { + + int retval=0; + + strcpy(networkSSID, ssid); + + radio.discard(); + radio.printf("\r\nATE0\r\nAT+WA=%s\r\n",ssid); + while (!radio.gotLine()); // and some timeout. + while (!(retval=isErrorOrOK(radio.line()))){ + //console.puts(radio.line()); + while (!radio.gotLine()) { // timeout? + ; + } + } + radio.printf("\r\nAT+ndhcp=1\r\n"); + delay(1000); // this should be an idle. + while (!radio.gotLine()); // and some timeout. + while (!(isErrorOrOK(radio.line()))){ + console.printf("DBG: %s",radio.line()); + while (!radio.gotLine()) { + ; + } + } + //console.printf("\r\nDBG: join %s (%d)\r\n",networkSSID,retval=networkStatus()); + return(networkStatus()); +} + + +int networkSetPassword(char *pwd) { + int retval=0; + // strncpy(networkPassword, pwd, MAX_NETWORK_PASSWORD_LENGTH-1); + strcpy(networkPassword, pwd); + radio.discard(); + radio.printf("\r\nAT+WWPA=%s\r\n",pwd); + while (!radio.gotLine()); // and some timeout. + while (!(retval=isErrorOrOK(radio.line()))){ + //console.puts(radio.line()); + while (!radio.gotLine()) { + ; + } + + } + //console.printf("\r\nDBG: Password shoudld be: %s (%d)\r\n",networkPassword,retval); + return(retval>=1); + +} + +int networkStatus() { + int retval=0; + radio.discard(); + radio.printf("\r\n"); + radio.discard(); + radio.printf("\r\nAT+WSTATUS\r\n"); + while (!radio.gotLine()); // and some timeout. + while (!(retval=isErrorOrOK(radio.line()))){ + if ((radio.line()[0]=='N') && (radio.line()[1] == 'O') && (radio.line()[2] == 'T')) { + //if (strcmp("NOT ASSOCIATED",radio.line()) ==0){ //wtf???? + console.printf("DBG: NOT ASSOCIATED\r\n"); + return(0); + } else { +// console.printf("DBG:%s",radio.line()); + } + while (!radio.gotLine()) { + // and some timeout!!! + ; + } + } + //console.puts(radio.line()); + return(retval>=1); + +} + +void handleConsoleInput() { + uint8_t retval; + uint8_t index=0; + uint8_t ch='0'; + SdFile finger; + + switch (console.keyValue()) { + case _DIR_: + console.printf("SOD:\r\n"); + root.ls(LS_DATE | LS_SIZE); + console.printf("EOD:\r\n"); + break; + case _LSV_: + console.printf("LSV:" BOM_VERSION "\r\n"); + break; + case _TYP_: + typeFile(console.arguments()); + break; + case _NSC_: + console.printf("SOD:\r\n"); + retval=networkScan(); + console.printf("EOD:\r\n"); + console.printf("\nDBG: found=%d\r\n",retval); + break; + case _NJN_: + //console.printf("SOD:\r\n"); + retval=networkJoin(console.arguments()); + //console.printf("EOD:\r\n"); + console.printf("\nDBG: joined=%s\r\n",retval?"TRUE":"FALSE"); + break; + case _NPW_: + //console.printf("SOD:\r\n"); + retval=networkSetPassword(console.arguments()); + //console.printf("EOD:\r\n"); + console.printf("\nDBG: pwd set=%s\r\n",retval?"TRUE":"FALSE"); + break; + case _NST_: + retval=networkStatus(); + console.printf("NST: %s\r\n",retval?"CONNECTED":"NOT CONNECTED"); + break; + case _FMT_: // there really should be some REALLY do you mean this here but..... + root.openRoot(&volume); + if (finger.open(&root, ".", O_WRITE|O_READ)) { + console.printf("\nDBG: Opened / \r\n"); + finger.rmRfStar(); + } else { + console.printf("\nDBG: FAIL \r\n"); + } + break; + + case _TPT_: + toPachube(1, console.arguments()); + break; + case _TX2_: + radio.printf("%s",console.arguments()); + index=0; + // delay(1000); + while (radio.available()) { + inBuffer[index++]=ch=radio.read(); + if( index>= 99 || ((ch== '\n') || ch !='\r')) { + inBuffer[index]='\0'; + console.puts(inBuffer); + index=0; + delay(100); + } + } + inBuffer[index]='\0'; + console.puts(inBuffer); + console.puts((char *) "\r\n"); + break; +// set to one to test output for. +#if 1 + case _TS1_: toPachube(0, console.arguments()); break; + case _TS2_: toPachube(1, console.arguments()); break; + case _TS3_: toPachube(2, console.arguments()); break; + case _TS4_: toPachube(3, console.arguments()); break; + case _TS5_: toPachube(4, console.arguments()); break; + case _FAN_: toPachube(5, console.arguments()); break; + case _CHL_: toPachube(6, console.arguments()); break; + case _STC_: toPachube(7, console.arguments()); break; +#endif + + case _PKY_: + strncpy(pachubeKey, console.arguments(), MAX_PATCHUBE_KEY_LENGHT-1); + stripcrlf(pachubeKey); + break; + case _PFD_: + strncpy(pachubeFeed, console.arguments(), MAX_PATCHUBE_FEED_LENGHT-1); + stripcrlf(pachubeFeed); + break; + case _SGT_ : + readSettings(); + break; + case _SSV_ : + writeSettings(); + break; + + default: + console.printf("DBG: forwarding (%s) to device\r\n",console.key()); + device.puts(console.line()); + //device.puts("\r\n"); + break; + } + + +} + +void readSettings() { + int n,cc; + char ch, buff[24]; + char buff2[80]; + unsigned int ndx=0; + int read=0; + if (!settingsFile.open(&root, settingsFileName, O_READ)) { + console.printf("DBG: Creating New Settings File\r\n"); console.flush(); + writeSettings(); + return; + } + console.printf("DBG: Opened Settings File: %s\r\n",settingsFileName); + settingsFile.seekSet(0); + while ((read=settingsFile.read(buff, sizeof(buff))) > 0) { + //console.printf("DBG: READ %d\r\n",read); console.flush(); + for (cc=0; cc < read ; cc++) { + + ch=buff[cc]; + //console.putChar(ch); console.flush(); + buff2[ndx]=ch; + if (ndx4) && buff2[3]=='!') {//fix this when the files are better + buff2[3]='\0'; + n=lookupIndex(buff2); + switch (n) { + case _NPW_: + networkSetPassword(buff2+4); + break; + case _NJN_: + Watchdog_Reset(); + networkJoin(buff2 +4); + break; + case _PKY_: + strncpy(pachubeKey, buff2+4, MAX_PATCHUBE_KEY_LENGHT-1); + break; + case _PFD_: + strncpy(pachubeFeed, buff2+4, MAX_PATCHUBE_FEED_LENGHT-1); + break; + default: + break; + } + + } + + ndx=0; + + } + } + } + + console.printf("DBG: Finished with Settings File: %s\r\n",settingsFileName); + + settingsFile.close(); +} + +void writeSettings() { + + char wrtBuffer[80]; + + if (!settingsFile.open(&root, settingsFileName, O_WRITE|O_CREAT)) { + // bitch.... (); + return; + } + console.printf("DBG: Opened Settings File: %s\r\n",settingsFileName); + snprintf(wrtBuffer,80,"NPW!%s\n",networkPassword); + settingsFile.write(wrtBuffer,strlen(wrtBuffer)); + snprintf(wrtBuffer,80,"NJN!%s\n",networkSSID); + settingsFile.write(wrtBuffer,strlen(wrtBuffer)); + snprintf(wrtBuffer,80,"PKY!%s\n",pachubeKey); + settingsFile.write(wrtBuffer,strlen(wrtBuffer)); + snprintf(wrtBuffer,80,"PFD!%s\n",pachubeFeed); + settingsFile.write(wrtBuffer,strlen(wrtBuffer)); + settingsFile.close(); + console.printf("DBG: Closing Settings File: %s\r\n",settingsFileName); + + +} + +int lookupIndex(char *key) { + int ndx=0; + int ptr=0; + while (ndx 3000) { + + if (networkStatus()) { + digitalWrite(RED_LED,LED_OFF); + disconnected=0; + } else { + digitalWrite(RED_LED,LED_ON); + if (++disconnected > 10) { + char tempssid[40]; + strcpy(tempssid,networkSSID); + digitalWrite(RED_LED,networkJoin(tempssid)?LED_OFF:LED_ON); + } + } + digitalWrite(GRN_LED,SerialUSB.isConnected()?HIGH:LOW); + lastCheck=millis(); + } + + while (device.gotLine()) { + handleDeviceInput(); + } + while (console.gotLine()) { + digitalWrite(GRN_LED,LOW); + handleConsoleInput(); + digitalWrite(GRN_LED,HIGH); + } + + Watchdog_Reset(); + +} + +// Force init to be called *first*, i.e. before static object allocation. +// Otherwise, statically allocated objects that need libmaple may fail. +__attribute__((constructor)) void premain() { + init(); +} + +int main(void) { + setup(); + + while (true) { + loop(); + } + + return 0; +} diff --git a/main.cpp b/main.cpp deleted file mode 100644 index 68f0d7c..0000000 --- a/main.cpp +++ /dev/null @@ -1,890 +0,0 @@ -/*------------------------------------------------------------datalogger/main.cpp - * - * - * - * - * - * Loose framework (thinking out loud). - * - * Deal with multi line data. - * SOD[ :]Start of multiline data - * EOD[ :]End of multiline data - * - * Log file and disk commands - * DIR[? ] directory of the disk. - * TYP[? ] type file - * DEL[ ! ] delete file - * DDS[? ] dates from logs. - * DMP[ ! ] dump all logs [in order] - * - * LOG[ !:] log data to current log file - * LSV[? :] logger software version - * LTS[ ! ] sync time with client - * LNT[ ! ] sync time from network. - * - * NSC[? ] network scan - * NPW[ ! ] network password - * NJN[?!:] join network. - * - * SSV[! ] save settings (read bom5k.set) - * SGT[? ] get settings (write bom5k.set) - * - *-----------------------------------------------------------------------------*/ -#include "wirish.h" -#include "iwdg.h" -#include -#include -#include -#include -#include -//#include -#include -#include -#include -#include -#include -#include - -#ifndef uint8_t -#define uint8_t uint8 -#define uint16_t uint16 -#define uint32_t uint32 -#endif - -#define GRN_LED 19 -#define ORN_LED 18 -#define RED_LED 14 -#define LED_ON LOW -#define LED_OFF HIGH - -#define BOM_VERSION "BOM5K_"__DATE__ - -#define KEYWORDS \ - "SYN" "ACK" "NAK" "SWV" "HWV" "MEM" "SSN" "HLP" "FTL" "ALT" "WRN" "INF" "DBG"\ - "LOG" "STC" "DVL" "LVL" "DLG" "RST" "SHD" "ALM" "CPT" "CND" "BTN" "WBP" "ERF"\ - "NOW" "TIM" "THR" "THM" "DFR" "TS1" "TS2" "TS3" "TS4" "TS5" "AMT" "CHT" "AIT"\ - "FAN" "CHL" "???" "PWR" "PCT" "TSC" "CPR" "CPP" "CPI" "CPD" "FPP" "FPI" "FPD"\ - "RED" "GRN" "BLU" "TSS" "NOP" - -enum keywordIndex { - _SYN_,_ACK_,_NAK_,_SWV_,_HWV_,_MEM_,_SSN_,_HLP_,_FTL_,_ALT_,_WRN_,_INF_,_DBG_, - _LOG_,_STC_,_DVL_,_LVL_,_DLG_,_RST_,_SHD_,_ALM_,_CPT_,_CND_,_BTN_,_WBP_,_ERF_, - _NOW_,_TIM_,_THR_,_THM_,_DFR_,_TS1_,_TS2_,_TS3_,_TS4_,_TS5_,_AMT_,_CHT_,_AIT_, - _FAN_,_CHL_,_TMP_,_PWR_,_PCT_,_TSC_,_CPR_,_CPP_,_CPI_,_CPD_,_FPP_,_FPI_,_FPD_, - _RED_,_GRN_,_BLU_,_TSS_,_NOP_ -}; - -// use enum to determine the size of the keyword arrays. -#define NKEYWORDS _NOP_ + 1 -//NKEYWORDS; -#define LOGGERKEYWORDS \ - "DIR" "DEL" "TX2" "TYP" "NSC" "NJN" "NPW" "NST" "TPT" "FMT" "PKY" \ - "PFD" "PTO" "PIP" "PON" "POF" "SSV" "SGT" "LSV" - -enum loggerKeywordIndex { - _DIR_=_NOP_+1,_DEL_,_TX2_,_TYP_,_NSC_,_NJN_,_NPW_,_NST_,_TPT_,_FMT_,_PKY_, - _PFD_,_PTO_,_PIP_,_PON_,_POF_,_SSV_,_SGT_,_LSV_ -}; - -//int patchubeIndex[]={_TS1_,_TS2_,_TS3_,_TS4_,_TS5_,_FAN_,_CHL_,_STC_}; - -#undef NKEYWORDS -#define NKEYWORDS _LSV_ + 1 - -int toPachube(int, char *); -void readSettings(void); -void writeSettings(void); -int networkStatus(); -const char keywords[((NKEYWORDS)*3)+1] = KEYWORDS LOGGERKEYWORDS; - -int lookupIndex(char *); -void logData(char *); -void stripcrlf(char *); -void stripcrlf(char *mystring) { - char * finger; - if ((finger=strchr(mystring,'\r')) != NULL) { - finger[0]='\0'; - } - if ((finger=strchr(mystring,'\n')) != NULL) { - finger[0]='\0'; - } -} -#define MAX_RETURN_VALUE 104 - -#define WATCHDOG_TIMEOUT 16000 -#define Watchdog_Reset iwdg_feed - -HardwareSPI spi(1); -Sd2Card card; -SdVolume volume; -SdFile root; -SdFile file; -SdFile settingsFile; -char logFileName[16]; -char settingsFileName[16]="BOM5K.SET"; - -bool logOpened=false; - -#define MAX_PATCHUBE_KEY_LENGHT 80 -#define MAX_PATCHUBE_FEED_LENGHT 10 -#define MAX_NETWORK_PASSWORD_LENGTH 40 -#define MAX_NETWORK_SSID_LENGTH 64 - -char networkPassword[MAX_NETWORK_PASSWORD_LENGTH]; -char networkSSID[MAX_NETWORK_SSID_LENGTH]; -char pachubeKey[MAX_PATCHUBE_KEY_LENGHT]="J_4LnoRNleWbZDm9FYp3XevLWXuSzlDiJwCsQnc1TGFQOUZLMHM9"; -char pachubeFeed[MAX_PATCHUBE_FEED_LENGHT]="50019"; - -class DataStream { -private: - Print *_out; - bool _isUSB; - char _buf[MAX_RETURN_VALUE]; - char _key[4]; - uint8_t _keyVal; - char _action; - uint8_t _ndx; - //bool _gotLine; -public: - DataStream(Print *, int); //initializer - bool available(); - uint8_t read(); - void printf(const char *format, ...); - bool gotLine(unsigned int timeout); - char * line() {return _buf; }; - char action() {return _action; }; - char * key(){return _key; }; - char * arguments() {return _buf+4 ; }; - uint8_t keyValue() {return _keyVal; }; - void puts(char *s); //{ _out->print(s); }; - void putChar(char ch); //{ _out->print(ch); }; - void discard() { while(available())read();_ndx=0;} - void flush() { if (_isUSB) {/*SerialUSB.flush();*/;} else {((HardwareSerial *)_out)->flush();}} -}; - -DataStream::DataStream(Print * sout, int baudRate=0) { - _out=sout; - _isUSB=(baudRate==0); - _ndx=0; - //_gotLine=false; - _buf[0]=_key[0]='\0'; - if (_isUSB) { - SerialUSB.begin(); - } else { - ((HardwareSerial *)_out)->begin(baudRate); - } - -} - -char outputBuffer[MAX_RETURN_VALUE]; //allocate once use often. - -void DataStream::printf(const char *format, ...){ - va_list blarg; - va_start(blarg, format); - vsnprintf(outputBuffer, MAX_RETURN_VALUE, format, blarg); - va_end(blarg); -// - //if(SerialUSB.isConnected() && (SerialUSB.getDTR() || SerialUSB.getRTS())) { - puts(outputBuffer); -} - -void DataStream::puts(char *s) { - if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) - return; - _out->write(s); -}; - -void DataStream::putChar(char ch) { - if (_isUSB && (!SerialUSB.isConnected() || (!SerialUSB.getDTR() && !SerialUSB.getRTS()))) - return; - _out->write(&ch,1); }; - - -bool DataStream::available() { - if (_isUSB) { - return ((USBSerial *)_out)->available(); - } else { - return ((HardwareSerial *)_out)->available(); - } -} - -uint8_t DataStream::read() { - if (_isUSB) { - return (uint8_t) ((USBSerial *)_out)->read(); - } else { - return (uint8_t) ((HardwareSerial *)_out)->read(); - } -} - -bool DataStream::gotLine(unsigned int timeout=5000) { - char ch=0; - bool retval=false; - unsigned long int mark=millis(); - if(available()){ - while( (millis()-mark < timeout) && available() && _ndx < 99 && ((ch=read()) != '\n') && ch !='\r' ) { - _buf[_ndx++] = ch; - } - if (_ndx && ((ch=='\n')||(ch=='\r'))) { // should probably check if line is at least 4 chars. - _buf[_ndx++]='\r'; - _buf[_ndx++]='\n'; - _buf[_ndx]='\0'; - _ndx=0; - //_gotLine= - retval=true; - _key[0]=_buf[0]; - _key[1]=_buf[1]; - _key[2]=_buf[2]; - _key[3]='\0'; - _action=_buf[3]; - _keyVal=lookupIndex(_key); - } - } - return retval; -} - -DataStream device(&Serial1,9600); -DataStream console(&SerialUSB); -DataStream radio(&Serial2,9600); - -void logData(char *data) { - int n; - n=file.write(data,strlen(data)); - console.printf("DBG: Logging (%d)'%s'",n,data); - file.sync(); -} -volatile long unsigned int throttleMark; -void handleDeviceInput() { - bool throttle = false; - bool dataSent = false; - if ((millis()-throttleMark<1500)) { - throttle=true; - } - switch (device.keyValue()) { - case _LOG_: - logData(device.arguments()); - break; - case _TS1_: - if (!throttle) { - dataSent=true; - toPachube(0, device.arguments()); - } break; - case _TS2_: - if (!throttle) { - dataSent=true; - toPachube(1, device.arguments()); - } break; - case _TS3_: - if (!throttle) { - dataSent=true; - toPachube(2, device.arguments()); - } break; - case _TS4_: - if (!throttle) { - dataSent=true; - toPachube(3, device.arguments()); - } break; - case _TS5_: - if (!throttle) { - dataSent=true; - toPachube(4, device.arguments()); - } break; - case _FAN_: - if (!throttle) { - dataSent=true; - toPachube(5, device.arguments()); - } break; - case _CHL_: - if (!throttle) { - dataSent=true; - toPachube(6, device.arguments()); - } break; - case _STC_: - char * finger; - if ((finger=strchr(device.arguments(),' ')) != NULL) { - finger[0]='\0'; - toPachube(8, finger+1); - } - toPachube(7, device.arguments()); break; - case _FTL_: toPachube(7, device.arguments()); break; - break; - default: - console.printf("%s",device.line()); - break; - } - if (dataSent) throttleMark=millis(); -} - - -void typeFile(char *fname) { - SdFile file2; - int16_t n; - char nfname[16]; - char buf[65]; - for (n=0; fname[n] && n<15; n++) { - if (fname[n]=='\r'||fname[n]=='\n') { - nfname[n]='\0'; - } else if (fname[n]=='.') { - nfname[n]='.'; - } else { - nfname[n]=fname[n];//nfname[n]=toupper(fname[n]); - } - } - if (file2.open (&root,nfname,O_READ)) { - console.printf("SOD:%s\r\n",nfname); - while ((n = file2.read(buf, sizeof(buf)-1)) > 0) { - buf[n]='\0'; - console.puts(buf); - } - console.printf("EOD:%s\r\n",nfname); - } else { - console.printf("DBG: Couldnt open '%s'\r\n",nfname); - } - -} -#define MAX_INPUT_LINE 100 - -char inBuffer[MAX_INPUT_LINE]; - -int networkScan() { - uint8_t index=0; - char endofinput[]="No.Of AP Found:"; - char nfound[4]="0"; - uint8_t ch='0'; - radio.discard(); - radio.printf("\r\n"); - radio.discard(); - radio.printf("\r\nAT+WS\r\n"); - while (!radio.available()); // and some timeout. - - while ((index<15)){ - while (radio.available()) { - console.putChar(ch=(char) radio.read()); - if ((ch=='\n')||(ch=='\r')) index=0; - if (ch==endofinput[index]) index++; - } - - } - - while (!radio.available()); // and some timeout. - ch='\0'; index=0; - while ((index<4)&&(ch!='\r')&&(ch!='\n')){ - while(radio.available()) { - console.putChar(ch=(char) radio.read()); - if (isdigit(ch)) nfound[index++]=ch; - } - } - radio.discard(); - console.printf("\r\n"); - nfound[index]='\0'; - return(atoi(nfound)); - -} - -int isErrorOrOK(char *line) { - if (line[0]=='O'&&line[1]=='K'&&line[2]=='\0') return 1; - if (line[0]=='O'&&line[1]=='K'&&line[2]=='\r') return 1; - if (line[0]=='E'&&line[1]=='R'&&line[2]=='R'&&line[3]=='O'&&line[4]=='R'&&line[5]=='\0') return -1; - if (line[0]=='E'&&line[1]=='R'&&line[2]=='R'&&line[3]=='O'&&line[4]=='R'&&line[5]=='\r') return -1; - return 0; -} - - -int toPachube(int key, char * value) { - uint8_t n,index=0; - int retval; - char databuffer[36]; - char cid[4]="0"; - bool gotResponse=false; - enum {CONNECT, ERROR, DISASSOCIATED} status=ERROR;//statii; - uint8_t ch='0'; - radio.discard(); - radio.printf("\r\n"); - radio.discard(); - radio.printf("\r\nAT+NCTCP=216.52.233.122,80\r\n"); - while (!radio.available()); // and some timeout. - - // ERROR - // CONNECT - // DISASSOCIATED - digitalWrite(ORN_LED,LOW); - - while (!gotResponse){ // this needs to catch errors. - while (radio.available()) { - databuffer[index]=ch=(char) radio.read(); - if (index<36) index++; - console.putChar(ch); - if ((ch=='\n')||(ch=='\r')) { - databuffer[index]='\0'; - if (strncmp("CONNECT", databuffer,6)==0) { - if (index>7) { - for (index=0, n=8; index<3 && databuffer[n];) { - cid[index++]=databuffer[n++]; // if isdigit???? - } - cid[index]='\0'; - } - status=CONNECT; - gotResponse=true; - console.printf("DBG: Connect CID=%s\r\n",cid); - } else if (strcmp("ERROR", databuffer)==0) { - gotResponse=true; - status=ERROR; - - } else if (strncmp("DISASSOCIATED",databuffer,index)==0) { - gotResponse=true; - status=DISASSOCIATED; - } - index=0; - } - } - - } - digitalWrite(ORN_LED,HIGH); - - if (status!=CONNECT) { - console.printf("DBG: NOT CONNECTED! (%d) Exiting\r\n", status); - return(0); - } - radio.discard(); - snprintf(databuffer, 36, "%d,%s",key,value); - radio.printf("\033S%dPUT /v2/feeds/%s.csv HTTP/1.1\r\n",atoi(cid),pachubeFeed); - radio.printf("User-Agent: SuspectDevices/Baco-matic5000 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15\r\n"); - radio.printf("Host: api.pachube.com\r\nAccept: */*\r\nConnection: close\r\n"); - radio.printf("X-PachubeApiKey: %s\r\n",pachubeKey); - radio.printf("Content-Length: %d\r\n\r\n%s\r\n\033E",strlen(databuffer),databuffer); - console.printf("DBG: Sending to feed %s: (%d)%s \r\n",pachubeFeed,strlen(databuffer),databuffer); - - // - // sent data then wait for an OK - // - while (!radio.gotLine()); - while (!(retval=isErrorOrOK(radio.line()))){ - //console.printf("DBG: %s\r\n",radio.line()); - while (!radio.gotLine()) { - ; - } - } - - if (retval<1) { - console.printf("DBG: NOT OK! %s\r\n",radio.line()); - radio.discard(); - return(0); - } - // - // should get an escaped stream followed by a disconnect - // - index=0; - gotResponse=false; - digitalWrite(ORN_LED,LOW); - - while (!radio.gotLine()); - sprintf(databuffer,"%c%c%c%c%cS%dHTTP",0x1b,0x4f,0x1b,0x4f,0x1b,atoi(cid)); - if(!strncmp(databuffer, radio.line(),strlen(databuffer)) ) { - databuffer[0]=radio.line()[16]; - databuffer[1]=radio.line()[17]; - databuffer[2]=radio.line()[18]; - databuffer[3]='\0'; - console.printf("DBG:[%d] %s\r\n",retval=atoi(databuffer),radio.line()+7); - } - while (!radio.gotLine()); - radio.discard(); - delay(500); - digitalWrite(ORN_LED,HIGH); - return(retval); -} - -int networkJoin(char *ssid) { - - int retval=0; - - strcpy(networkSSID, ssid); - - radio.discard(); - radio.printf("\r\nATE0\r\nAT+WA=%s\r\n",ssid); - while (!radio.gotLine()); // and some timeout. - while (!(retval=isErrorOrOK(radio.line()))){ - //console.puts(radio.line()); - while (!radio.gotLine()) { // timeout? - ; - } - } - radio.printf("\r\nAT+ndhcp=1\r\n"); - delay(1000); // this should be an idle. - while (!radio.gotLine()); // and some timeout. - while (!(isErrorOrOK(radio.line()))){ - console.printf("DBG: %s",radio.line()); - while (!radio.gotLine()) { - ; - } - } - //console.printf("\r\nDBG: join %s (%d)\r\n",networkSSID,retval=networkStatus()); - return(networkStatus()); -} - - -int networkSetPassword(char *pwd) { - int retval=0; - // strncpy(networkPassword, pwd, MAX_NETWORK_PASSWORD_LENGTH-1); - strcpy(networkPassword, pwd); - radio.discard(); - radio.printf("\r\nAT+WWPA=%s\r\n",pwd); - while (!radio.gotLine()); // and some timeout. - while (!(retval=isErrorOrOK(radio.line()))){ - //console.puts(radio.line()); - while (!radio.gotLine()) { - ; - } - - } - //console.printf("\r\nDBG: Password shoudld be: %s (%d)\r\n",networkPassword,retval); - return(retval>=1); - -} - -int networkStatus() { - int retval=0; - radio.discard(); - radio.printf("\r\n"); - radio.discard(); - radio.printf("\r\nAT+WSTATUS\r\n"); - while (!radio.gotLine()); // and some timeout. - while (!(retval=isErrorOrOK(radio.line()))){ - if ((radio.line()[0]=='N') && (radio.line()[1] == 'O') && (radio.line()[2] == 'T')) { - //if (strcmp("NOT ASSOCIATED",radio.line()) ==0){ //wtf???? - console.printf("DBG: NOT ASSOCIATED\r\n"); - return(0); - } else { -// console.printf("DBG:%s",radio.line()); - } - while (!radio.gotLine()) { - // and some timeout!!! - ; - } - } - //console.puts(radio.line()); - return(retval>=1); - -} - -void handleConsoleInput() { - uint8_t retval; - uint8_t index=0; - uint8_t ch='0'; - SdFile finger; - - switch (console.keyValue()) { - case _DIR_: - console.printf("SOD:\r\n"); - root.ls(LS_DATE | LS_SIZE); - console.printf("EOD:\r\n"); - break; - case _LSV_: - console.printf("LSV:" BOM_VERSION "\r\n"); - break; - case _TYP_: - typeFile(console.arguments()); - break; - case _NSC_: - console.printf("SOD:\r\n"); - retval=networkScan(); - console.printf("EOD:\r\n"); - console.printf("\nDBG: found=%d\r\n",retval); - break; - case _NJN_: - //console.printf("SOD:\r\n"); - retval=networkJoin(console.arguments()); - //console.printf("EOD:\r\n"); - console.printf("\nDBG: joined=%s\r\n",retval?"TRUE":"FALSE"); - break; - case _NPW_: - //console.printf("SOD:\r\n"); - retval=networkSetPassword(console.arguments()); - //console.printf("EOD:\r\n"); - console.printf("\nDBG: pwd set=%s\r\n",retval?"TRUE":"FALSE"); - break; - case _NST_: - retval=networkStatus(); - console.printf("NST: %s\r\n",retval?"CONNECTED":"NOT CONNECTED"); - break; - case _FMT_: // there really should be some REALLY do you mean this here but..... - root.openRoot(&volume); - if (finger.open(&root, ".", O_WRITE|O_READ)) { - console.printf("\nDBG: Opened / \r\n"); - finger.rmRfStar(); - } else { - console.printf("\nDBG: FAIL \r\n"); - } - break; - - case _TPT_: - toPachube(1, console.arguments()); - break; - case _TX2_: - radio.printf("%s",console.arguments()); - index=0; - // delay(1000); - while (radio.available()) { - inBuffer[index++]=ch=radio.read(); - if( index>= 99 || ((ch== '\n') || ch !='\r')) { - inBuffer[index]='\0'; - console.puts(inBuffer); - index=0; - delay(100); - } - } - inBuffer[index]='\0'; - console.puts(inBuffer); - console.puts((char *) "\r\n"); - break; -// set to one to test output for. -#if 1 - case _TS1_: toPachube(0, console.arguments()); break; - case _TS2_: toPachube(1, console.arguments()); break; - case _TS3_: toPachube(2, console.arguments()); break; - case _TS4_: toPachube(3, console.arguments()); break; - case _TS5_: toPachube(4, console.arguments()); break; - case _FAN_: toPachube(5, console.arguments()); break; - case _CHL_: toPachube(6, console.arguments()); break; - case _STC_: toPachube(7, console.arguments()); break; -#endif - - case _PKY_: - strncpy(pachubeKey, console.arguments(), MAX_PATCHUBE_KEY_LENGHT-1); - stripcrlf(pachubeKey); - break; - case _PFD_: - strncpy(pachubeFeed, console.arguments(), MAX_PATCHUBE_FEED_LENGHT-1); - stripcrlf(pachubeFeed); - break; - case _SGT_ : - readSettings(); - break; - case _SSV_ : - writeSettings(); - break; - - default: - console.printf("DBG: forwarding (%s) to device\r\n",console.key()); - device.puts(console.line()); - //device.puts("\r\n"); - break; - } - - -} - -void readSettings() { - int n,cc; - char ch, buff[24]; - char buff2[80]; - unsigned int ndx=0; - int read=0; - if (!settingsFile.open(&root, settingsFileName, O_READ)) { - console.printf("DBG: Creating New Settings File\r\n"); console.flush(); - writeSettings(); - return; - } - console.printf("DBG: Opened Settings File: %s\r\n",settingsFileName); - settingsFile.seekSet(0); - while ((read=settingsFile.read(buff, sizeof(buff))) > 0) { - //console.printf("DBG: READ %d\r\n",read); console.flush(); - for (cc=0; cc < read ; cc++) { - - ch=buff[cc]; - //console.putChar(ch); console.flush(); - buff2[ndx]=ch; - if (ndx4) && buff2[3]=='!') {//fix this when the files are better - buff2[3]='\0'; - n=lookupIndex(buff2); - switch (n) { - case _NPW_: - networkSetPassword(buff2+4); - break; - case _NJN_: - Watchdog_Reset(); - networkJoin(buff2 +4); - break; - case _PKY_: - strncpy(pachubeKey, buff2+4, MAX_PATCHUBE_KEY_LENGHT-1); - break; - case _PFD_: - strncpy(pachubeFeed, buff2+4, MAX_PATCHUBE_FEED_LENGHT-1); - break; - default: - break; - } - - } - - ndx=0; - - } - } - } - - console.printf("DBG: Finished with Settings File: %s\r\n",settingsFileName); - - settingsFile.close(); -} - -void writeSettings() { - - char wrtBuffer[80]; - - if (!settingsFile.open(&root, settingsFileName, O_WRITE|O_CREAT)) { - // bitch.... (); - return; - } - console.printf("DBG: Opened Settings File: %s\r\n",settingsFileName); - snprintf(wrtBuffer,80,"NPW!%s\n",networkPassword); - settingsFile.write(wrtBuffer,strlen(wrtBuffer)); - snprintf(wrtBuffer,80,"NJN!%s\n",networkSSID); - settingsFile.write(wrtBuffer,strlen(wrtBuffer)); - snprintf(wrtBuffer,80,"PKY!%s\n",pachubeKey); - settingsFile.write(wrtBuffer,strlen(wrtBuffer)); - snprintf(wrtBuffer,80,"PFD!%s\n",pachubeFeed); - settingsFile.write(wrtBuffer,strlen(wrtBuffer)); - settingsFile.close(); - console.printf("DBG: Closing Settings File: %s\r\n",settingsFileName); - - -} - -int lookupIndex(char *key) { - int ndx=0; - int ptr=0; - while (ndx 3000) { - - if (networkStatus()) { - digitalWrite(RED_LED,LED_OFF); - disconnected=0; - } else { - digitalWrite(RED_LED,LED_ON); - if (++disconnected > 10) { - char tempssid[40]; - strcpy(tempssid,networkSSID); - digitalWrite(RED_LED,networkJoin(tempssid)?LED_OFF:LED_ON); - } - } - digitalWrite(GRN_LED,SerialUSB.isConnected()?HIGH:LOW); - lastCheck=millis(); - } - - while (device.gotLine()) { - handleDeviceInput(); - } - while (console.gotLine()) { - digitalWrite(GRN_LED,LOW); - handleConsoleInput(); - digitalWrite(GRN_LED,HIGH); - } - - Watchdog_Reset(); - -} - -// Force init to be called *first*, i.e. before static object allocation. -// Otherwise, statically allocated objects that need libmaple may fail. -__attribute__((constructor)) void premain() { - init(); -} - -int main(void) { - setup(); - - while (true) { - loop(); - } - - return 0; -} -- cgit v1.2.3