├── README.md
├── REST example
├── README.md
├── client.py
├── client.sh
└── server.js
├── RTK
├── NTRIP connection strings.txt
├── README.md
├── mission_planner_NTRIP_setup.png
└── mission_planner_connection.png
├── arduino_opta
└── relay_toggle.ino
├── cpp_threads
├── CMakeLists.txt
└── serial_polling.cpp
├── cv_demo
├── CMakeLists.txt
├── cv_capture_example.cpp
└── cv_color_detector.cpp
├── documentation
├── Requirements Gathering Worksheet.xlsx
├── architectural design specification latex
│ ├── architectural_design_specification.pdf
│ ├── architectural_design_specification.tex
│ ├── images
│ │ ├── data_flow.png
│ │ ├── layers.png
│ │ ├── subsystem.png
│ │ └── test_image.jpg
│ ├── reference
│ │ ├── IEEEtran.bst
│ │ ├── IEEEtran_custom.bst
│ │ └── refs.bib
│ └── tex
│ │ ├── data_flow.tex
│ │ ├── introduction.tex
│ │ ├── system_overview.tex
│ │ ├── x_layer_subsystems.tex
│ │ ├── y_layer_subsystems.tex
│ │ └── z_layer_subsystems.tex
├── detailed design specification latex
│ ├── detailed_design_specification.pdf
│ ├── detailed_design_specification.tex
│ ├── images
│ │ ├── data_flow.png
│ │ ├── layers.png
│ │ ├── subsystem.png
│ │ └── test_image.jpg
│ ├── reference
│ │ ├── IEEEtran.bst
│ │ ├── IEEEtran_custom.bst
│ │ └── refs.bib
│ └── tex
│ │ ├── appendix_a.tex
│ │ ├── data_flow.tex
│ │ ├── introduction.tex
│ │ ├── system_overview.tex
│ │ ├── x_layer_subsystems.tex
│ │ ├── y_layer_subsystems.tex
│ │ └── z_layer_subsystems.tex
├── individual sprint report LaTeX.zip
├── individual sprint report LaTeX
│ ├── burndown.png
│ ├── example.pdf
│ └── sprint report.tex
├── project charter latex
│ ├── images
│ │ └── test_image.jpg
│ ├── project_charter.tex
│ ├── project_charter_latex.pdf
│ ├── reference
│ │ ├── IEEEtran.bst
│ │ ├── IEEEtran_custom.bst
│ │ └── refs.bib
│ └── tex
│ │ ├── assumptions.tex
│ │ ├── background.tex
│ │ ├── constraints.tex
│ │ ├── cost_proposal.tex
│ │ ├── documentation_reporting.tex
│ │ ├── facilities_equipment.tex
│ │ ├── methodology.tex
│ │ ├── milestones.tex
│ │ ├── problem.tex
│ │ ├── related_work.tex
│ │ ├── risks.tex
│ │ ├── roles_responsibilities.tex
│ │ ├── system_overview.tex
│ │ └── value_proposition.tex
├── sprint presentations
│ ├── Sprint Plan Template.pptx
│ ├── Sprint Review Template.pptx
│ └── burndown chart template.xls
├── system requirements specification LaTeX.zip
├── system requirements specification LaTeX
│ └── tex
│ │ └── security_requirements.tex
├── system requirements specification latex
│ ├── images
│ │ └── test_image.jpg
│ ├── reference
│ │ ├── IEEEtran.bst
│ │ ├── IEEEtran_custom.bst
│ │ └── refs.bib
│ ├── system_requirements_specification.pdf
│ ├── system_requirements_specification.tex
│ └── tex
│ │ ├── customer_requirements.tex
│ │ ├── future_items.tex
│ │ ├── maintenance_support_requirements.tex
│ │ ├── other_requirements.tex
│ │ ├── packaging_requirements.tex
│ │ ├── performance_requirements.tex
│ │ ├── product_concept.tex
│ │ ├── product_description.tex
│ │ └── safety_requirements.tex
└── test plan
│ ├── STP Guide.doc
│ └── ieee829mtp.pdf
├── drones
├── 3D print
│ ├── Here3 straddle mount.stl
│ ├── S550 CubeOrange vibration mount - BOTTOM.stl
│ └── S550 CubeOrange vibration mount - TOP.stl
└── README.md
├── esp8266
└── access_point_http_server
│ └── access_point_http_server.ino
├── lab storage card
├── README.md
├── storage reservation card.docx
└── storage reservation card.pdf
├── mitsubishi PLC
└── SimpleLibrarySlmpFx5
│ ├── .vs
│ └── SimpleLibrarySlmpFx5
│ │ ├── FileContentIndex
│ │ ├── 37879a3a-372a-420f-a687-849b2a63f15d.vsidx
│ │ ├── 8a4abcec-d0b3-4d25-8a0d-2267f4e71647.vsidx
│ │ └── read.lock
│ │ └── v17
│ │ └── .suo
│ ├── SimpleLibrarySlmpFx5.sln
│ ├── SimpleLibrarySlmpFx5.v12.suo
│ └── SimpleLibrarySlmpFx5
│ ├── App.config
│ ├── Program.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── SimpleLibrarySlmpFx5.csproj
│ ├── bin
│ ├── Debug
│ │ ├── SLMP_EDC_LIB.dll
│ │ ├── SimpleLibSlmpFx5.dll
│ │ ├── SimpleLibSlmpFx5.pdb
│ │ ├── SimpleLibrarySlmpFx5.exe
│ │ ├── SimpleLibrarySlmpFx5.exe.config
│ │ ├── SimpleLibrarySlmpFx5.pdb
│ │ ├── SimpleLibrarySlmpFx5.vshost.exe
│ │ ├── SimpleLibrarySlmpFx5.vshost.exe.config
│ │ └── SimpleLibrarySlmpFx5.vshost.exe.manifest
│ └── Release
│ │ ├── SLMP_EDC_LIB.dll
│ │ ├── SimpleLibSlmpFx5.dll
│ │ ├── SimpleLibSlmpFx5.pdb
│ │ ├── SimpleLibrarySlmpFx5.exe
│ │ ├── SimpleLibrarySlmpFx5.exe.config
│ │ ├── SimpleLibrarySlmpFx5.pdb
│ │ ├── SimpleLibrarySlmpFx5.vshost.exe
│ │ ├── SimpleLibrarySlmpFx5.vshost.exe.config
│ │ └── SimpleLibrarySlmpFx5.vshost.exe.manifest
│ └── obj
│ ├── Debug
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── SimpleLibrarySlmpFx5.csproj.FileListAbsolute.txt
│ ├── SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
│ ├── SimpleLibrarySlmpFx5.exe
│ ├── SimpleLibrarySlmpFx5.pdb
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
│ └── Release
│ ├── .NETFramework,Version=v4.8.AssemblyAttributes.cs
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── SimpleLibrarySlmpFx5.csproj.AssemblyReference.cache
│ ├── SimpleLibrarySlmpFx5.csproj.CoreCompileInputs.cache
│ ├── SimpleLibrarySlmpFx5.csproj.FileListAbsolute.txt
│ ├── SimpleLibrarySlmpFx5.csproj.SuggestedBindingRedirects.cache
│ ├── SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
│ ├── SimpleLibrarySlmpFx5.exe
│ ├── SimpleLibrarySlmpFx5.pdb
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
├── nodejs
├── child_process.js
├── hello.js
├── requestImage
│ ├── TEST_URL.txt
│ ├── server.js
│ └── user
│ │ └── 1234
│ │ └── album
│ │ └── test.jpg
└── server.js
├── openlayers
├── index.html
├── main.js
├── map.geojson
└── styles.css
├── pcb
└── BLE demo
│ ├── RN4020_BLE.brd
│ └── RN4020_BLE.sch
├── pcl_demo
├── CMakeLists.txt
├── CloudVisualizer.cpp
├── CloudVisualizer.h
├── load_pcd.cpp
└── openni2_snapper.cpp
├── pupil_tracker
├── CMakeLists.txt
├── PupilTracker.cpp
├── PupilTracker.h
├── pupil_demo.cpp
└── pupil_test.mp4
├── raspi_notes
├── openCV 2.4.10 raspbian install.txt
└── v4l2 raspicam install.txt
├── scikit-learn
├── MLPClassifier_deploy.py
├── MLPClassifier_train.py
└── README.md
├── sparkfun artemis
├── BLE_stepper
│ ├── BLE_example.h
│ ├── BLE_example_funcs.cpp
│ ├── BLE_stepper.ino
│ ├── nus_api.h
│ └── nus_main.c
└── ULN2003
│ └── ULN2003.ino
├── teensy_demo
├── demo applications
│ ├── teensy_accelstepper_demo
│ │ ├── Form1.Designer.cs
│ │ ├── Form1.cs
│ │ ├── Form1.resx
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ └── teensy_accelstepper_demo.csproj
│ ├── teensy_demo.sln
│ ├── teensy_demo.suo
│ ├── teensy_demo.v12.suo
│ ├── teensy_hbridge_demo
│ │ ├── Form1.Designer.cs
│ │ ├── Form1.cs
│ │ ├── Form1.resx
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ └── teensy_hbridge_demo.csproj
│ ├── teensy_serial_demo
│ │ ├── Form1.Designer.cs
│ │ ├── Form1.cs
│ │ ├── Form1.resx
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ └── teensy_serial_demo.csproj
│ ├── teensy_servo_demo
│ │ ├── Form1.Designer.cs
│ │ ├── Form1.cs
│ │ ├── Form1.resx
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ └── teensy_servo_demo.csproj
│ └── teensy_stepper_demo
│ │ ├── Form1.Designer.cs
│ │ ├── Form1.cs
│ │ ├── Form1.resx
│ │ ├── Program.cs
│ │ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ │ ├── obj
│ │ └── x86
│ │ │ └── Release
│ │ │ └── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── teensy_stepper_demo.csproj
└── firmware
│ ├── iHSS57
│ └── iHSS57.ino
│ ├── serial_accelstepper_control
│ └── serial_accelstepper_control.ino
│ ├── serial_communication_variable
│ └── serial_communication_variable.ino
│ ├── serial_hbridge_control
│ └── serial_hbridge_control.ino
│ ├── serial_servo_control
│ └── serial_servo_control.ino
│ └── serial_stepper_control
│ └── serial_stepper_control.ino
└── zmq demo
├── CMakeLists.txt
├── zmq_cv_request.cpp
└── zmq_cv_server.cpp
/README.md:
--------------------------------------------------------------------------------
1 | CSE 4316: Senior Design
2 | ========
3 |
4 | Repository containing files related to CSE senior design
5 |
--------------------------------------------------------------------------------
/REST example/README.md:
--------------------------------------------------------------------------------
1 | REST example
2 | ========
3 |
4 | Example of simple RESTful server API written using the express Node.js framework.
5 |
6 | Simple test clients in python and pure bash scripting using cURL are provided.
7 |
8 | ### REST server example (Node.js)
9 |
10 | install dependencies
11 | ```
12 | sudo apt-get install nodejs npm
13 | npm install express
14 | ```
15 | Run the server
16 | ```
17 | node server.js
18 | ```
19 |
20 | ### Client example (python)
21 | Run the python client
22 | ```
23 | python3 client.py
24 | ```
25 | ### Client example (bash)
26 | Run the bash client
27 | ```
28 | sh client.sh
29 | ```
30 |
--------------------------------------------------------------------------------
/REST example/client.py:
--------------------------------------------------------------------------------
1 | import requests
2 |
3 | # test HTTP GET method
4 | response = requests.get('http://localhost:3000/')
5 | print("response status code: " + str(response.status_code))
6 | print("response body: " + response.text)
7 |
8 | # test HTTP PUT method
9 | response = requests.put('http://localhost:3000/', data={"param": "value"})
10 | print("response status code: " + str(response.status_code))
11 | print("response body: " + response.text)
12 |
13 | # test HTTP POST method
14 | response = requests.post('http://localhost:3000/', data={"param": "value"})
15 | print("response status code: " + str(response.status_code))
16 | print("response body: " + response.text)
17 |
18 | # test HTTP GET method with JSON endpoint
19 | response = requests.get('http://localhost:3000/json')
20 | json_response = response.json()
21 | print("response status code: " + str(response.status_code))
22 | print("response body: " + str(json_response))
23 |
24 | # test HTTP POST method with JSON endpoint
25 | postJSON={'key':'value'}
26 | response = requests.post('http://localhost:3000/json', json=postJSON)
27 | print("response status code: " + str(response.status_code))
28 | print("response body: " + response.text)
29 |
30 | # test HTTP POST method with INVALID JSON data
31 | # this should return an error message, as the JSON data is improperly formatted
32 | response = requests.post('http://localhost:3000/json', json="invalid JSON data")
33 | print("response status code: " + str(response.status_code))
34 | print("response body: " + response.text)
35 |
--------------------------------------------------------------------------------
/REST example/client.sh:
--------------------------------------------------------------------------------
1 | # send HTTP GET request to endpoint "/"
2 | curl -X GET http://127.0.0.1:3000/ -i
3 |
4 | # send HTTP PUT request to endpoint "/"
5 | curl -d "param1=value1¶m2=value2" -X PUT http://localhost:3000/ -i
6 |
7 | # send HTTP POST request to endpoint "/"
8 | curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/ -i
9 |
10 | # POST JSON data to the /json endpoint
11 | curl -d '"key1":"value1", "key2":"value2' -H "Content-Type: application/json}" -X POST http://localhost:3000/json -i
12 |
13 | # GET JSON data from the /json endpoint
14 | curl -X GET http://localhost:3000/json -i
15 |
--------------------------------------------------------------------------------
/REST example/server.js:
--------------------------------------------------------------------------------
1 | const express = require('express')
2 | const app = express()
3 | const port = 3000
4 |
5 | app.use(express.json()) // for parsing application/json
6 | app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded
7 |
8 | // define the default error handler
9 | app.use (function (error, request, response, next){
10 | console.error("WARNING: error detected...")
11 | console.error(error.stack)
12 | response.status(500).send("Error handling request: " + error.message)
13 | });
14 |
15 | // handler for a receved HTTP GET request
16 | app.get('/', (request, response) => {
17 | console.log('request body:', request.body);
18 | return response.send('Received a GET HTTP request');
19 | });
20 |
21 | // handler for a receved HTTP POST request
22 | app.post('/', (request, response) => {
23 | console.log('request body:', request.body);
24 | return response.send('Received a POST HTTP request');
25 | });
26 |
27 | // handler for a receved HTTP POST request at endpoint /json
28 | app.post('/json', (request, response) => {
29 | console.log('request body:', request.body);
30 | // echo back the received JSON data
31 | response.json(request.body)
32 | });
33 |
34 | // handler for a receved HTTP GET request at endpoint /json
35 | app.get('/json', (request, response) => {
36 | console.log('request body:', request.body);
37 | // create a JSON message to send
38 | data = {timestamp: Date.now(), message: "Hello world!" }
39 | response.json(data)
40 | });
41 |
42 | // handler for a receved HTTP PUT request
43 | app.put('/', (request, response) => {
44 | console.log('request body:', request.body)
45 | return response.send('Received a PUT HTTP request');
46 | });
47 |
48 | // handler for a receved HTTP DELETE request
49 | app.delete('/', (request, response) => {
50 | console.log('request body:', request.body)
51 | return response.send('Received a DELETE HTTP request');
52 | });
53 |
54 | // handler for application start
55 | app.listen(port, () =>
56 | console.log("Example app listening on port " + port)
57 | );
58 |
59 |
--------------------------------------------------------------------------------
/RTK/NTRIP connection strings.txt:
--------------------------------------------------------------------------------
1 | Connecting to RTK2GO from mission planner...
2 |
3 | DEPRECATED - will not work after November 2022
4 | http://rtk2go.com:2101/ARLINGTON-76017
5 | http://rtk2go.com:2101/ARLINGTON_76010
6 |
7 | PROPER FORMAT: user:password@host:port/mountport
8 | user - a valid email address
9 | password - the string "none"
10 | host - rtk2go.com
11 | port - 2101
12 | mountpoint - name of the NTRIP caster you with to connect to
13 |
14 | WORKING EXAMPLES:
15 | http://email@domain.com:none@rtk2go.com:2101/ARLINGTON-76017
16 | http://email@domain.com:none@rtk2go.com:2101/ARLINGTON_76010
17 |
18 | TO CHECK BASE STATION STATUS:
19 | http://rtk2go.com:2101/SNIP::MOUNTPT?baseName=ARLINGTON-76017
20 | http://rtk2go.com:2101/SNIP::MOUNTPT?baseName=ARLINGTON_76010
21 |
22 | TO VIEW OTHER RTK2GO ACTIVE STREAMS:
23 | http://new.rtk2go.com:2101/SNIP::STATUS
24 |
--------------------------------------------------------------------------------
/RTK/README.md:
--------------------------------------------------------------------------------
1 | # Connecting to the UTA RTK base station in Mission Planner
2 |
3 | The UTA RTK base station broadcasts RTCM correction data using RTK2GO.com. An NTRIP client can connect to the base station using the appropriate connection string, which generally includes username, password, port, and endpoint fields. For NTRIP connections in Mission Planner using RTK2GO.com, the connection strings have the following format:
4 |
5 | ## NTRIP connection format
6 | user:password@host:port/mountport
7 |
8 | ## NTRIP connection fields
9 | user - a valid email address (your email address)
10 |
11 | password - the string "none"
12 |
13 | host - rtk2go.com
14 |
15 | port - 2101
16 |
17 | mountpoint - name of the NTRIP caster you with to connect to
18 |
19 |
20 | In the case of the UTA RTK base station mounted on the roof of Nedderman Hall, the mountpoint is "ARLINGTON_76010". Thus, the proper connection string is:
21 |
22 | ## UTA Mission Planner NTRIP connection string
23 | http://email@domain.com:none@rtk2go.com:2101/ARLINGTON_76010
24 |
25 | ## To enter the NTRIP connection information
26 |
27 | navigate to SETUP > Optional Hardware > RTK/GPS Inject
28 |
29 | 
30 |
31 | Select "NTRIP" and click "Connect". Enter the connection string in the popup after replacing the email address with your own.
32 |
33 | 
34 |
35 | After clicking "OK", the client should connect and show link status information as packets are received.
36 |
37 | # Checking base station status
38 | Real-time status information of the UTA base stations can be checked from a browser:
39 |
40 | http://rtk2go.com:2101/SNIP::MOUNTPT?baseName=ARLINGTON_76010
41 |
42 | # View other active streams on RTK2GO
43 | A list of all active RTK2GO base stations can be found here:
44 |
45 | http://new.rtk2go.com:2101/SNIP::STATUS
46 |
--------------------------------------------------------------------------------
/RTK/mission_planner_NTRIP_setup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/RTK/mission_planner_NTRIP_setup.png
--------------------------------------------------------------------------------
/RTK/mission_planner_connection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/RTK/mission_planner_connection.png
--------------------------------------------------------------------------------
/arduino_opta/relay_toggle.ino:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2024 Christopher D. McMurrough
3 | //
4 | // This program is free software: you can redistribute it and/or modify
5 | // it under the terms of the GNU General Public License as published by
6 | // the Free Software Foundation, either version 3 of the License, or
7 | // (at your option) any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful,
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | // GNU General Public License for more details.
13 | //
14 | // You should have received a copy of the GNU General Public License
15 | // along with this program. If not, see .
16 | //
17 |
18 | int buttonState = 0;
19 | int counter = 0;
20 |
21 | /***********************************************************************************************************************
22 | * @BRIEF perform initial setup of the microcontroller
23 | * @AUTHOR Christoper D. McMurrough
24 | **********************************************************************************************************************/
25 | void setup()
26 | {
27 | // initialize LEDs
28 | pinMode(LED_USER, OUTPUT);
29 | pinMode(LED_D0, OUTPUT);
30 | pinMode(LED_D1, OUTPUT);
31 | pinMode(LED_D2, OUTPUT);
32 | pinMode(LED_D3, OUTPUT);
33 |
34 | // initialize relays
35 | pinMode(D0, OUTPUT);
36 | pinMode(D1, OUTPUT);
37 | pinMode(D2, OUTPUT);
38 | pinMode(D3, OUTPUT);
39 |
40 | // initialize button
41 | pinMode(BTN_USER, INPUT);
42 | }
43 |
44 | /***********************************************************************************************************************
45 | * @BRIEF main program loop
46 | * @AUTHOR Christoper D. McMurrough
47 | **********************************************************************************************************************/
48 | void loop()
49 | {
50 | digitalWrite(LED_USER, HIGH);
51 | buttonState = digitalRead(BTN_USER);
52 | if(buttonState == LOW)
53 | {
54 | if(counter < 4)
55 | {
56 | counter++;
57 | }
58 | else
59 | {
60 | counter = 0;
61 | }
62 | delay(100);
63 | }
64 | toggleRelays();
65 | }
66 |
67 | /***********************************************************************************************************************
68 | * @BRIEF toggle LEDs and relays
69 | * @AUTHOR Christoper D. McMurrough
70 | **********************************************************************************************************************/
71 | void toggleRelays()
72 | {
73 | switch(counter)
74 | {
75 | case 0:
76 | digitalWrite(LED_D0, LOW);
77 | digitalWrite(LED_D1, LOW);
78 | digitalWrite(LED_D2, LOW);
79 | digitalWrite(LED_D3, LOW);
80 | digitalWrite(D0, LOW);
81 | digitalWrite(D1, LOW);
82 | digitalWrite(D2, LOW);
83 | digitalWrite(D3, LOW);
84 | break;
85 | case 1:
86 | digitalWrite(LED_D0, HIGH);
87 | digitalWrite(LED_D1, LOW);
88 | digitalWrite(LED_D2, LOW);
89 | digitalWrite(LED_D3, LOW);
90 | digitalWrite(D0, HIGH);
91 | digitalWrite(D1, LOW);
92 | digitalWrite(D2, LOW);
93 | digitalWrite(D3, LOW);
94 | break;
95 | case 2:
96 | digitalWrite(LED_D0, LOW);
97 | digitalWrite(LED_D1, HIGH);
98 | digitalWrite(LED_D2, LOW);
99 | digitalWrite(LED_D3, LOW);
100 | digitalWrite(D0, LOW);
101 | digitalWrite(D1, HIGH);
102 | digitalWrite(D2, LOW);
103 | digitalWrite(D3, LOW);
104 | break;
105 | case 3:
106 | digitalWrite(LED_D0, LOW);
107 | digitalWrite(LED_D1, LOW);
108 | digitalWrite(LED_D2, HIGH);
109 | digitalWrite(LED_D3, LOW);
110 | digitalWrite(D0, LOW);
111 | digitalWrite(D1, LOW);
112 | digitalWrite(D2, HIGH);
113 | digitalWrite(D3, LOW);
114 | break;
115 | case 4:
116 | digitalWrite(LED_D0, LOW);
117 | digitalWrite(LED_D1, LOW);
118 | digitalWrite(LED_D2, LOW);
119 | digitalWrite(LED_D3, HIGH);
120 | digitalWrite(D0, LOW);
121 | digitalWrite(D1, LOW);
122 | digitalWrite(D2, LOW);
123 | digitalWrite(D3, HIGH);
124 | break;
125 | }
126 | delay(100);
127 | }
128 |
--------------------------------------------------------------------------------
/cpp_threads/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | project (threads)
2 | cmake_minimum_required(VERSION 3.1)
3 |
4 | # explicitly set c++11
5 | set(CMAKE_CXX_STANDARD 11)
6 |
7 | # find thread packages
8 | find_package(Threads)
9 |
10 | # find boost
11 | find_package(Boost 1.55.0 REQUIRED system thread)
12 | include_directories(${Boost_INCLUDE_DIR})
13 | link_directories(${Boost_LIBRARY_DIRS})
14 | IF(WIN32)
15 | set(Boost_USE_STATIC_LIBS OFF)
16 | set(Boost_USE_MULTITHREADED ON)
17 | set(Boost_USE_STATIC_RUNTIME OFF)
18 | set(BOOST_ALL_DYN_LINK ON)
19 | ENDIF(WIN32)
20 |
21 | # create individual projects
22 | add_executable(serial_polling serial_polling.cpp)
23 | target_link_libraries(serial_polling ${Boost_LIBRARIES})
24 |
25 |
26 |
--------------------------------------------------------------------------------
/cv_demo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | project (cv_capture_example)
2 | cmake_minimum_required(VERSION 2.8)
3 |
4 | # configure OpenCV
5 | IF(WIN32)
6 | # set the opencv directories manually
7 | message("Windows platform detected, setting OpenCV configuration manually...")
8 | set(OPENCV_ROOT_DIR "C:/OpenCV")
9 | set(OPENCV_BUILD_DIR ${OPENCV_ROOT_DIR}/build/x64/vc12)
10 | set(OPENCV_INCLUDE_DIRS ${OPENCV_ROOT_DIR}/build/include; ${OPENCV_ROOT_DIR}/build/include/opencv; ${OPENCV_ROOT_DIR}/build/include/opencv2)
11 | set(OPENCV_LIB_DIRS ${OPENCV_BUILD_DIR}/lib)
12 |
13 | # set the include and link directories
14 | include_directories(${OPENCV_INCLUDE_DIRS})
15 | link_directories(${OPENCV_LIB_DIRS})
16 |
17 | # find all of the libs in OPENCV_LIB_DIRS
18 | file(GLOB OpenCV_LIBS RELATIVE ${OPENCV_LIB_DIRS} ${OPENCV_LIB_DIRS}/*.lib)
19 | message("Found OpenCV libs...")
20 | message(${OpenCV_LIBS})
21 | ELSE(WIN32)
22 | # workaround for -lopencv_dep_cudart linker error when using CUDA
23 | # NOTE: if linker error above occurs, run cmake again with existing cache before build
24 | set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
25 |
26 | set(OpenCV_DIR "/usr/local/share/OpenCV")
27 | find_package(OpenCV REQUIRED)
28 | ENDIF(WIN32)
29 |
30 | # create create individual projects
31 | add_executable (cv_capture_example cv_capture_example.cpp)
32 | target_link_libraries(cv_capture_example ${OpenCV_LIBS})
33 |
34 | add_executable (cv_color_detector cv_color_detector.cpp)
35 | target_link_libraries(cv_color_detector ${OpenCV_LIBS})
36 |
--------------------------------------------------------------------------------
/documentation/Requirements Gathering Worksheet.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/Requirements Gathering Worksheet.xlsx
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/architectural_design_specification.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/architectural design specification latex/architectural_design_specification.pdf
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/architectural_design_specification.tex:
--------------------------------------------------------------------------------
1 | %%% LaTeX Template: Article/Thesis/etc. with colored headings and special fonts
2 | %%%
3 | %%% Source: http://www.howtotex.com/
4 | %%% Feel free to distribute this template, but please keep to referal to http://www.howtotex.com/ here.
5 | %%% February 2011
6 | %%%
7 | %%% Modified January 2016 by CDM
8 |
9 | %%% Preamble
10 | \documentclass[11pt,letterpaper]{article}
11 | \usepackage[margin=1.0in]{geometry}
12 | \usepackage[T1]{fontenc}
13 | \usepackage[bitstream-charter]{mathdesign}
14 | \usepackage[latin1]{inputenc}
15 | \usepackage{amsmath}
16 | \usepackage{xcolor}
17 | \usepackage{cite}
18 | \usepackage{hyphenat}
19 | \usepackage{graphicx}
20 | \usepackage{float}
21 | \usepackage{subfigure}
22 | \usepackage{sectsty}
23 | \usepackage[compact]{titlesec}
24 | \usepackage[tablegrid]{vhistory}
25 | \usepackage{pbox}
26 | \allsectionsfont{\color{accentcolor}\scshape\selectfont}
27 |
28 | %%% Definitions
29 | \definecolor{accentcolor}{rgb}{0.0,0.0,0.5}
30 | \newcommand{\teamname}{Team Name}
31 | \newcommand{\productname}{Product Name}
32 | \newcommand{\coursename}{CSE 4316: Senior Design I}
33 | \newcommand{\semester}{Fall 2015}
34 | \newcommand{\docname}{Architectural Design Specification}
35 | \newcommand{\department}{Department of Computer Science \& Engineering}
36 | \newcommand{\university}{The University of Texas at Arlington}
37 | \newcommand{\authors}{Alan Turing \\ Grace Hopper \\ John Von Neumann \\ Ada Lovelace \\ Charles Babbage}
38 |
39 | %%% Headers and footers
40 | \usepackage{fancyhdr}
41 | \pagestyle{fancy} % Enabling the custom headers/footers
42 | \usepackage{lastpage}
43 | % Header (empty)
44 | \lhead{}
45 | \chead{}
46 | \rhead{}
47 | % Footer
48 | \lfoot{\footnotesize \teamname \ - \semester}
49 | \cfoot{}
50 | \rfoot{\footnotesize page \thepage\ of \pageref{LastPage}} % "Page 1 of 2"
51 | \renewcommand{\headrulewidth}{0.0pt}
52 | \renewcommand{\footrulewidth}{0.4pt}
53 |
54 | %%% Change the abstract environment
55 | \usepackage[runin]{abstract} % runin option for a run-in title
56 | %\setlength\absleftindent{30pt} % left margin
57 | %\setlength\absrightindent{30pt} % right margin
58 | \abslabeldelim{\quad}
59 | \setlength{\abstitleskip}{-10pt}
60 | \renewcommand{\abstractname}{}
61 | \renewcommand{\abstracttextfont}{\color{accentcolor} \small \slshape} % slanted text
62 |
63 | %%% Start of the document
64 | \begin{document}
65 |
66 | %%% Cover sheet
67 | {\centering \huge \color{accentcolor} \sc \textbf{\department \\ \university} \par}
68 | \vspace{1 in}
69 | {\centering \huge \color{accentcolor} \sc \textbf{\docname \\ \coursename \\ \semester} \par}
70 | \vspace{0.5 in}
71 | \begin{figure}[h!]
72 | \centering
73 | \includegraphics[width=0.60\textwidth]{images/test_image}
74 | \end{figure}
75 | \vspace{0.5 in}
76 | {\centering \huge \color{accentcolor} \sc \textbf{\teamname \\ \productname} \par}
77 | \vspace{0.5 in}
78 | {\centering \large \sc \textbf{\authors} \par}
79 | \newpage
80 |
81 |
82 | %\vspace{1 in}
83 | %\centerline{January 13th, 2012}
84 | %\newpage
85 |
86 | %%% Revision History
87 | \begin{versionhistory}
88 | \vhEntry{0.1}{10.01.2015}{GH}{document creation}
89 | \vhEntry{0.2}{10.05.2015}{AT|GH}{complete draft}
90 | \vhEntry{0.3}{10.12.2015}{AT|GH}{release candidate 1}
91 | \vhEntry{1.0}{10.20.2015}{AT|GH|CB}{official release}
92 | \vhEntry{1.1}{10.31.2015}{AL}{added design review requests}
93 | \end{versionhistory}
94 | \newpage
95 |
96 | %%% Table of contents
97 | \setcounter{tocdepth}{2}
98 | \tableofcontents
99 | \newpage
100 |
101 | %%% List of figures and tables (optional)
102 | \listoffigures
103 | \listoftables
104 | \newpage
105 |
106 | %%% Document sections
107 | \section{Introduction}
108 | \input{tex/introduction.tex}
109 | \newpage
110 | \section{System Overview}
111 | \input{tex/system_overview.tex}
112 | \newpage
113 | \section{Subsystem Definitions \& Data Flow}
114 | \input{tex/data_flow.tex}
115 | \newpage
116 | \section{X Layer Subsystems}
117 | \input{tex/x_layer_subsystems.tex}
118 | \newpage
119 | \section{Y Layer Subsystems}
120 | \input{tex/y_layer_subsystems.tex}
121 | \newpage
122 | \section{Z Layer Subsystems}
123 | \input{tex/z_layer_subsystems.tex}
124 | \newpage
125 |
126 | %%% References
127 | \bibliographystyle{plain}
128 | \bibliographystyle{reference/IEEEtran_custom}
129 | \bibliography{reference/refs}{}
130 |
131 | \end{document}
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/images/data_flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/architectural design specification latex/images/data_flow.png
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/images/layers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/architectural design specification latex/images/layers.png
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/images/subsystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/architectural design specification latex/images/subsystem.png
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/images/test_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/architectural design specification latex/images/test_image.jpg
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/reference/refs.bib:
--------------------------------------------------------------------------------
1 | @book{Rubin2012,
2 | author = {Rubin, Kenneth S},
3 | edition = {1st},
4 | isbn = {0137043295, 9780137043293},
5 | publisher = {Addison-Wesley Professional},
6 | title = {{Essential Scrum: A Practical Guide to the Most Popular Agile Process}},
7 | year = {2012}
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/data_flow.tex:
--------------------------------------------------------------------------------
1 | This section breaks down your layer abstraction to another level of detail. Here you grapically represent the logical subsytems that compose each layer and show the interactions/interfaces between those subsystems. A subsystem can be thought of as a programming unit that implements one of the major functions of the layer. It, therefore, has data elements that serve as source/sinks for other subsystems. The logical data elements that flow between subsystems need to be explicitly defined at this point, beginning with a data flow-like diagram based on the block diagram.
2 |
3 | \begin{figure}[h!]
4 | \centering
5 | \includegraphics[width=\textwidth]{images/data_flow}
6 | \caption{A simple data flow diagram}
7 | \end{figure}
8 |
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/introduction.tex:
--------------------------------------------------------------------------------
1 | Your introduction should describe your product concept in sufficient detail that the architectural design will be easy to follow. The introduction may include information used in the first sections of your SRS for this purpose. At a minimum, ensure that the product concept, scope and key requirements are described.
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/system_overview.tex:
--------------------------------------------------------------------------------
1 | This section should describe the overall structure of your software system. Think of it as the strategy for how you will build the system. An architectural "layer" is the top-level logical view, or an abstraction, of your design. Layers should be composed of related elements of similar capabilities, and should be highly independent of other layers, but should have very clearly defined interfaces and interactions with other layers. Each layer should be identified individually and should be unique as to its function and purpose within the system. This section should also contain the high-level block diagram of the layers, as shown in the example below, as well as detailed descriptions of the functions of each layer.
2 |
3 | \begin{figure}[h!]
4 | \centering
5 | \includegraphics[width=0.60\textwidth]{images/layers}
6 | \caption{A simple architectural layer diagram}
7 | \end{figure}
8 |
9 | \subsection{Layer X Description}
10 | Each layer should be described separately in detail. Descriptions should include the features, functions, critical interfaces and interactions of the layer. The description should clearly define the services that the layer provides. Also include any conventions that your team will use in describing the structure: naming conventions for layers, subsystems, modules, and data flows; interface specifications; how layers and subsystems are defined; etc.
11 |
12 | \subsection{Layer Y Description}
13 | Each layer should be described separately in detail. Descriptions should include the features, functions, critical interfaces and interactions of the layer. The description should clearly define the services that the layer provides. Also include any conventions that your team will use in describing the structure: naming conventions for layers, subsystems, modules, and data flows; interface specifications; how layers and subsystems are defined; etc.
14 |
15 | \subsection{Layer Z Description}
16 | Each layer should be described separately in detail. Descriptions should include the features, functions, critical interfaces and interactions of the layer. The description should clearly define the services that the layer provides. Also include any conventions that your team will use in describing the structure: naming conventions for layers, subsystems, modules, and data flows; interface specifications; how layers and subsystems are defined; etc.
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/x_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in some detail in terms of its specific subsystems. Describe each of the layers and its subsystems in a separate chapter/major subsection of this document. The content of each subsystem description should be similar. Include in this section any special considerations and/or trade-offs considered for the approach you have chosen.
2 |
3 | \subsection{Subsystem 1}
4 | This section should be a general description of a particular subsystem for the given layer. For most subsystems, an extract of the architectural block diagram with data flows is useful. This should consist of the subsystem being described and those subsystems with which it communicates.
5 |
6 | \begin{figure}[h!]
7 | \centering
8 | \includegraphics[width=0.60\textwidth]{images/subsystem}
9 | \caption{Example subsystem description diagram}
10 | \end{figure}
11 |
12 | \subsubsection{Assumptions}
13 | Any assumptions made in the definition of the subsystem should be listed and described. Pay particular attention to assumptions concerning interfaces and interactions with other layers.
14 |
15 | \subsubsection{Responsibilities}
16 | Each of the responsibilities/features/functions/services of the subsystem as identified in the architectural summary must be expanded to more detailed responsibilities. These responsibilities form the basis for the identification of the finer-grained responsibilities of the layer's internal subsystems. Clearly describe what each subsystem does.
17 |
18 | \subsubsection{Subsystem Interfaces}
19 | Each of the inputs and outputs for the subsystem are defined here. Create a table with an entry for each labelled interface that connects to this subsystem. For each entry, describe any incoming and outgoing data elements will pass through this interface.
20 |
21 | \begin {table}[H]
22 | \caption {Subsystem interfaces}
23 | \begin{center}
24 | \begin{tabular}{ | p{1cm} | p{6cm} | p{3cm} | p{3cm} |}
25 | \hline
26 | ID & Description & Inputs & Outputs \\ \hline
27 | \#xx & Description of the interface/bus & \pbox{3cm}{input 1 \\ input 2} & \pbox{3cm}{output 1} \\ \hline
28 | \#xx & Description of the interface/bus & \pbox{3cm}{N/A} & \pbox{3cm}{output 1} \\ \hline
29 | \end{tabular}
30 | \end{center}
31 | \end{table}
32 |
33 | \subsection{Subsystem 2}
34 | Repeat for each subsystem
35 |
36 | \subsection{Subsystem 3}
37 | Repeat for each subsystem
38 |
39 |
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/y_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in some detail in terms of its specific subsystems. Describe each of the layers and its subsystems in a separate chapter/major subsection of this document. The content of each subsystem description should be similar. Include in this section any special considerations and/or trade-offs considered for the approach you have chosen.
2 |
3 | \subsection{Subsystem 1}
4 | This section should be a general description of a particular subsystem for the given layer. For most subsystems, an extract of the architectural block diagram with data flows is useful. This should consist of the subsystem being described and those subsystems with which it communicates.
5 |
6 | \begin{figure}[h!]
7 | \centering
8 | \includegraphics[width=0.60\textwidth]{images/subsystem}
9 | \caption{Example subsystem description diagram}
10 | \end{figure}
11 |
12 | \subsubsection{Assumptions}
13 | Any assumptions made in the definition of the subsystem should be listed and described. Pay particular attention to assumptions concerning interfaces and interactions with other layers.
14 |
15 | \subsubsection{Responsibilities}
16 | Each of the responsibilities/features/functions/services of the subsystem as identified in the architectural summary must be expanded to more detailed responsibilities. These responsibilities form the basis for the identification of the finer-grained responsibilities of the layer's internal subsystems. Clearly describe what each subsystem does.
17 |
18 | \subsubsection{Subsystem Interfaces}
19 | Each of the inputs and outputs for the subsystem are defined here. Create a table with an entry for each labelled interface that connects to this subsystem. For each entry, describe any incoming and outgoing data elements will pass through this interface.
20 |
21 | \begin {table}[H]
22 | \caption {Subsystem interfaces}
23 | \begin{center}
24 | \begin{tabular}{ | p{1cm} | p{6cm} | p{3cm} | p{3cm} |}
25 | \hline
26 | ID & Description & Inputs & Outputs \\ \hline
27 | \#xx & Description of the interface/bus & \pbox{3cm}{input 1 \\ input 2} & \pbox{3cm}{output 1} \\ \hline
28 | \#xx & Description of the interface/bus & \pbox{3cm}{N/A} & \pbox{3cm}{output 1} \\ \hline
29 | \end{tabular}
30 | \end{center}
31 | \end{table}
32 |
33 | \subsection{Subsystem 2}
34 | Repeat for each subsystem
35 |
36 | \subsection{Subsystem 3}
37 | Repeat for each subsystem
38 |
39 |
--------------------------------------------------------------------------------
/documentation/architectural design specification latex/tex/z_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in some detail in terms of its specific subsystems. Describe each of the layers and its subsystems in a separate chapter/major subsection of this document. The content of each subsystem description should be similar. Include in this section any special considerations and/or trade-offs considered for the approach you have chosen.
2 |
3 | \subsection{Subsystem 1}
4 | This section should be a general description of a particular subsystem for the given layer. For most subsystems, an extract of the architectural block diagram with data flows is useful. This should consist of the subsystem being described and those subsystems with which it communicates.
5 |
6 | \begin{figure}[h!]
7 | \centering
8 | \includegraphics[width=0.60\textwidth]{images/subsystem}
9 | \caption{Example subsystem description diagram}
10 | \end{figure}
11 |
12 | \subsubsection{Assumptions}
13 | Any assumptions made in the definition of the subsystem should be listed and described. Pay particular attention to assumptions concerning interfaces and interactions with other layers.
14 |
15 | \subsubsection{Responsibilities}
16 | Each of the responsibilities/features/functions/services of the subsystem as identified in the architectural summary must be expanded to more detailed responsibilities. These responsibilities form the basis for the identification of the finer-grained responsibilities of the layer's internal subsystems. Clearly describe what each subsystem does.
17 |
18 | \subsubsection{Subsystem Interfaces}
19 | Each of the inputs and outputs for the subsystem are defined here. Create a table with an entry for each labelled interface that connects to this subsystem. For each entry, describe any incoming and outgoing data elements will pass through this interface.
20 |
21 | \begin {table}[H]
22 | \caption {Subsystem interfaces}
23 | \begin{center}
24 | \begin{tabular}{ | p{1cm} | p{6cm} | p{3cm} | p{3cm} |}
25 | \hline
26 | ID & Description & Inputs & Outputs \\ \hline
27 | \#xx & Description of the interface/bus & \pbox{3cm}{input 1 \\ input 2} & \pbox{3cm}{output 1} \\ \hline
28 | \#xx & Description of the interface/bus & \pbox{3cm}{N/A} & \pbox{3cm}{output 1} \\ \hline
29 | \end{tabular}
30 | \end{center}
31 | \end{table}
32 |
33 | \subsection{Subsystem 2}
34 | Repeat for each subsystem
35 |
36 | \subsection{Subsystem 3}
37 | Repeat for each subsystem
38 |
39 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/detailed_design_specification.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/detailed design specification latex/detailed_design_specification.pdf
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/detailed_design_specification.tex:
--------------------------------------------------------------------------------
1 | %%% LaTeX Template: Article/Thesis/etc. with colored headings and special fonts
2 | %%%
3 | %%% Source: http://www.howtotex.com/
4 | %%% Feel free to distribute this template, but please keep to referal to http://www.howtotex.com/ here.
5 | %%% February 2011
6 | %%%
7 | %%% Modified January 2016 by CDM
8 |
9 | %%% Preamble
10 | \documentclass[11pt,letterpaper]{article}
11 | \usepackage[margin=1.0in]{geometry}
12 | \usepackage[T1]{fontenc}
13 | \usepackage[bitstream-charter]{mathdesign}
14 | \usepackage[latin1]{inputenc}
15 | \usepackage{amsmath}
16 | \usepackage{xcolor}
17 | \usepackage{cite}
18 | \usepackage{hyphenat}
19 | \usepackage{graphicx}
20 | \usepackage{float}
21 | \usepackage{subfigure}
22 | \usepackage{sectsty}
23 | \usepackage[compact]{titlesec}
24 | \usepackage[tablegrid]{vhistory}
25 | \usepackage{pbox}
26 | \allsectionsfont{\color{accentcolor}\scshape\selectfont}
27 |
28 | %%% Definitions
29 | \definecolor{accentcolor}{rgb}{0.0,0.0,0.5}
30 | \newcommand{\teamname}{Team Name}
31 | \newcommand{\productname}{Product Name}
32 | \newcommand{\coursename}{CSE 4317: Senior Design II}
33 | \newcommand{\semester}{Spring 2016}
34 | \newcommand{\docname}{Detailed Design Specification}
35 | \newcommand{\department}{Department of Computer Science \& Engineering}
36 | \newcommand{\university}{The University of Texas at Arlington}
37 | \newcommand{\authors}{Alan Turing \\ Grace Hopper \\ John Von Neumann \\ Ada Lovelace \\ Charles Babbage}
38 |
39 | %%% Headers and footers
40 | \usepackage{fancyhdr}
41 | \pagestyle{fancy} % Enabling the custom headers/footers
42 | \usepackage{lastpage}
43 | % Header (empty)
44 | \lhead{}
45 | \chead{}
46 | \rhead{}
47 | % Footer
48 | \lfoot{\footnotesize \teamname \ - \semester}
49 | \cfoot{}
50 | \rfoot{\footnotesize page \thepage\ of \pageref{LastPage}} % "Page 1 of 2"
51 | \renewcommand{\headrulewidth}{0.0pt}
52 | \renewcommand{\footrulewidth}{0.4pt}
53 |
54 | %%% Change the abstract environment
55 | \usepackage[runin]{abstract} % runin option for a run-in title
56 | %\setlength\absleftindent{30pt} % left margin
57 | %\setlength\absrightindent{30pt} % right margin
58 | \abslabeldelim{\quad}
59 | \setlength{\abstitleskip}{-10pt}
60 | \renewcommand{\abstractname}{}
61 | \renewcommand{\abstracttextfont}{\color{accentcolor} \small \slshape} % slanted text
62 |
63 | %%% Start of the document
64 | \begin{document}
65 |
66 | %%% Cover sheet
67 | {\centering \huge \color{accentcolor} \sc \textbf{\department \\ \university} \par}
68 | \vspace{1 in}
69 | {\centering \huge \color{accentcolor} \sc \textbf{\docname \\ \coursename \\ \semester} \par}
70 | \vspace{0.5 in}
71 | \begin{figure}[h!]
72 | \centering
73 | \includegraphics[width=0.60\textwidth]{images/test_image}
74 | \end{figure}
75 | \vspace{0.5 in}
76 | {\centering \huge \color{accentcolor} \sc \textbf{\teamname \\ \productname} \par}
77 | \vspace{0.5 in}
78 | {\centering \large \sc \textbf{\authors} \par}
79 | \newpage
80 |
81 |
82 | %\vspace{1 in}
83 | %\centerline{January 13th, 2012}
84 | %\newpage
85 |
86 | %%% Revision History
87 | \begin{versionhistory}
88 | \vhEntry{0.1}{1.01.2016}{GH}{document creation}
89 | \vhEntry{0.2}{1.05.2016}{AT|GH}{complete draft}
90 | \vhEntry{0.3}{1.12.2016}{AT|GH}{release candidate 1}
91 | \vhEntry{1.0}{1.20.2016}{AT|GH|CB}{official release}
92 | \vhEntry{1.1}{1.31.2016}{AL}{added design review requests}
93 | \end{versionhistory}
94 | \newpage
95 |
96 | %%% Table of contents
97 | \setcounter{tocdepth}{2}
98 | \tableofcontents
99 | \newpage
100 |
101 | %%% List of figures and tables (optional)
102 | \listoffigures
103 | \listoftables
104 | \newpage
105 |
106 | %%% Document sections
107 | \section{Introduction}
108 | \input{tex/introduction.tex}
109 | \section{System Overview}
110 | \input{tex/system_overview.tex}
111 | \newpage
112 | %\section{Subsystem Definitions \& Data Flow}
113 | %\input{tex/data_flow.tex}
114 | \newpage
115 | \section{X Layer Subsystems}
116 | \input{tex/x_layer_subsystems.tex}
117 | \newpage
118 | \section{Y Layer Subsystems}
119 | \input{tex/y_layer_subsystems.tex}
120 | \newpage
121 | \section{Z Layer Subsystems}
122 | \input{tex/z_layer_subsystems.tex}
123 | \newpage
124 | \section{Appendix A}
125 | \input{tex/appendix_a.tex}
126 | \newpage
127 |
128 | %%% References
129 | \bibliographystyle{plain}
130 | \bibliographystyle{reference/IEEEtran_custom}
131 | \bibliography{reference/refs}{}
132 |
133 | \end{document}
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/images/data_flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/detailed design specification latex/images/data_flow.png
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/images/layers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/detailed design specification latex/images/layers.png
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/images/subsystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/detailed design specification latex/images/subsystem.png
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/images/test_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/detailed design specification latex/images/test_image.jpg
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/reference/refs.bib:
--------------------------------------------------------------------------------
1 | @book{Rubin2012,
2 | author = {Rubin, Kenneth S},
3 | edition = {1st},
4 | isbn = {0137043295, 9780137043293},
5 | publisher = {Addison-Wesley Professional},
6 | title = {{Essential Scrum: A Practical Guide to the Most Popular Agile Process}},
7 | year = {2012}
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/appendix_a.tex:
--------------------------------------------------------------------------------
1 | Include any additional documents (CAD design, circuit schematics, etc) as an appendix as necessary.
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/data_flow.tex:
--------------------------------------------------------------------------------
1 | This section breaks down your layer abstraction to another level of detail. Here you grapically represent the logical subsytems that compose each layer and show the interactions/interfaces between those subsystems. A subsystem can be thought of as a programming unit that implements one of the major functions of the layer. It, therefore, has data elements that serve as source/sinks for other subsystems. The logical data elements that flow between subsystems need to be explicitly defined at this point, beginning with a data flow-like diagram based on the block diagram.
2 |
3 | \begin{figure}[h!]
4 | \centering
5 | \includegraphics[width=\textwidth]{images/data_flow}
6 | \caption{A simple data flow diagram}
7 | \end{figure}
8 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/introduction.tex:
--------------------------------------------------------------------------------
1 | Your introduction should provide a brief overview of the product concept and a reference to the requirement specification and architectural design documents in 1 or 2 paragraphs. The purpose is to provide the reader with the location of relevant background material that lead to the design details presented in this document.
2 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/system_overview.tex:
--------------------------------------------------------------------------------
1 | This section should reintroduce the full data flow diagram from the architectural specification, and discuss at a high level the purpose of each layer. You do not need to include a subsection for each layer, a 1 - 2 paragraph recap is sufficient.
2 |
3 | \begin{figure}[h!]
4 | \centering
5 | \includegraphics[width=0.90\textwidth]{images/data_flow}
6 | \caption{System architecture}
7 | \end{figure}
8 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/x_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in terms of the hardware and software design. Specific implementation details, such as hardware components, programming languages, software dependencies, operating systems, etc. should be discussed. Any unnecessary items can be ommitted (for example, a pure software module without any specific hardware should not include a hardware subsection). The organization, titles, and content of the sections below can be modified as necessary for the project.
2 |
3 | \subsection{Layer Hardware}
4 | A description of any involved hardware components for the layer. For example, if each subsystem is a software process running on an embedded computer, discuss the specifics of that device here. Do not list a hardware component that only exists at the subsystem level (include it in the following sections).
5 |
6 | \subsection{Layer Operating System}
7 | A description of any operating systems required by the layer.
8 |
9 | \subsection{Layer Software Dependencies}
10 | A description of any software dependencies (libraries, frameworks, etc) required by the layer.
11 |
12 | \subsection{Subsystem 1}
13 | Descibe at a high level the purpose and basic design of this subsystem. Is it a piece of hardware, a class, a web service, or something else? Note that each of the subsystem items below are meant to be specific to that subystem and not a repeat of anything discussed above for the overall layer.
14 |
15 | \begin{figure}[h!]
16 | \centering
17 | \includegraphics[width=0.60\textwidth]{images/subsystem}
18 | \caption{Example subsystem description diagram}
19 | \end{figure}
20 |
21 | \subsubsection{Subsystem Hardware}
22 | A description of any involved hardware components for the subsystem.
23 |
24 | \subsubsection{Subsystem Operating System}
25 | A description of any operating systems required by the subsystem.
26 |
27 | \subsubsection{Subsystem Software Dependencies}
28 | A description of any software dependencies (libraries, frameworks, design software for mechanical parts or circuits, etc) required by the subsystem.
29 |
30 | \subsubsection{Subsystem Programming Languages}
31 | A description of any programming languages used by the subsystem.
32 |
33 | \subsubsection{Subsystem Data Structures}
34 | A description of any classes or other data structures that are worth discussing for the subsystem. For example, data being transmitted from a microcontroller to a PC via USB should be first be assembled into packets. What is the structure of the packets?
35 |
36 | \subsubsection{Subsystem Data Processing}
37 | A description of any algorithms or processing strategies that are worth discussing for the subsystem. If you are implementing a well-known algorithm, list it. If it is something unique to this project, discuss it in greater detail.
38 |
39 |
40 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/y_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in terms of the hardware and software design. Specific implementation details, such as hardware components, programming languages, software dependencies, operating systems, etc. should be discussed. Any unnecessary items can be ommitted (for example, a pure software module without any specific hardware should not include a hardware subsection). The organization, titles, and content of the sections below can be modified as necessary for the project.
2 |
3 | \subsection{Layer Hardware}
4 | A description of any involved hardware components for the layer. For example, if each subsystem is a software process running on an embedded computer, discuss the specifics of that device here. Do not list a hardware component that only exists at the subsystem level (include it in the following sections).
5 |
6 | \subsection{Layer Operating System}
7 | A description of any operating systems required by the layer.
8 |
9 | \subsection{Layer Software Dependencies}
10 | A description of any software dependencies (libraries, frameworks, etc) required by the layer.
11 |
12 | \subsection{Subsystem 1}
13 | Descibe at a high level the purpose and basic design of this subsystem. Is it a piece of hardware, a class, a web service, or something else? Note that each of the subsystem items below are meant to be specific to that subystem and not a repeat of anything discussed above for the overall layer.
14 |
15 | \begin{figure}[h!]
16 | \centering
17 | \includegraphics[width=0.60\textwidth]{images/subsystem}
18 | \caption{Example subsystem description diagram}
19 | \end{figure}
20 |
21 | \subsubsection{Subsystem Hardware}
22 | A description of any involved hardware components for the subsystem.
23 |
24 | \subsubsection{Subsystem Operating System}
25 | A description of any operating systems required by the subsystem.
26 |
27 | \subsubsection{Subsystem Software Dependencies}
28 | A description of any software dependencies (libraries, frameworks, design software for mechanical parts or circuits, etc) required by the subsystem.
29 |
30 | \subsubsection{Subsystem Programming Languages}
31 | A description of any programming languages used by the subsystem.
32 |
33 | \subsubsection{Subsystem Data Structures}
34 | A description of any classes or other data structures that are worth discussing for the subsystem. For example, data being transmitted from a microcontroller to a PC via USB should be first be assembled into packets. What is the structure of the packets?
35 |
36 | \subsubsection{Subsystem Data Processing}
37 | A description of any algorithms or processing strategies that are worth discussing for the subsystem. If you are implementing a well-known algorithm, list it. If it is something unique to this project, discuss it in greater detail.
38 |
39 |
40 |
--------------------------------------------------------------------------------
/documentation/detailed design specification latex/tex/z_layer_subsystems.tex:
--------------------------------------------------------------------------------
1 | In this section, the layer is described in terms of the hardware and software design. Specific implementation details, such as hardware components, programming languages, software dependencies, operating systems, etc. should be discussed. Any unnecessary items can be ommitted (for example, a pure software module without any specific hardware should not include a hardware subsection). The organization, titles, and content of the sections below can be modified as necessary for the project.
2 |
3 | \subsection{Layer Hardware}
4 | A description of any involved hardware components for the layer. For example, if each subsystem is a software process running on an embedded computer, discuss the specifics of that device here. Do not list a hardware component that only exists at the subsystem level (include it in the following sections).
5 |
6 | \subsection{Layer Operating System}
7 | A description of any operating systems required by the layer.
8 |
9 | \subsection{Layer Software Dependencies}
10 | A description of any software dependencies (libraries, frameworks, etc) required by the layer.
11 |
12 | \subsection{Subsystem 1}
13 | Descibe at a high level the purpose and basic design of this subsystem. Is it a piece of hardware, a class, a web service, or something else? Note that each of the subsystem items below are meant to be specific to that subystem and not a repeat of anything discussed above for the overall layer.
14 |
15 | \begin{figure}[h!]
16 | \centering
17 | \includegraphics[width=0.60\textwidth]{images/subsystem}
18 | \caption{Example subsystem description diagram}
19 | \end{figure}
20 |
21 | \subsubsection{Subsystem Hardware}
22 | A description of any involved hardware components for the subsystem.
23 |
24 | \subsubsection{Subsystem Operating System}
25 | A description of any operating systems required by the subsystem.
26 |
27 | \subsubsection{Subsystem Software Dependencies}
28 | A description of any software dependencies (libraries, frameworks, design software for mechanical parts or circuits, etc) required by the subsystem.
29 |
30 | \subsubsection{Subsystem Programming Languages}
31 | A description of any programming languages used by the subsystem.
32 |
33 | \subsubsection{Subsystem Data Structures}
34 | A description of any classes or other data structures that are worth discussing for the subsystem. For example, data being transmitted from a microcontroller to a PC via USB should be first be assembled into packets. What is the structure of the packets?
35 |
36 | \subsubsection{Subsystem Data Processing}
37 | A description of any algorithms or processing strategies that are worth discussing for the subsystem. If you are implementing a well-known algorithm, list it. If it is something unique to this project, discuss it in greater detail.
38 |
39 |
40 |
--------------------------------------------------------------------------------
/documentation/individual sprint report LaTeX.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/individual sprint report LaTeX.zip
--------------------------------------------------------------------------------
/documentation/individual sprint report LaTeX/burndown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/individual sprint report LaTeX/burndown.png
--------------------------------------------------------------------------------
/documentation/individual sprint report LaTeX/example.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/individual sprint report LaTeX/example.pdf
--------------------------------------------------------------------------------
/documentation/project charter latex/images/test_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/project charter latex/images/test_image.jpg
--------------------------------------------------------------------------------
/documentation/project charter latex/project_charter_latex.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/project charter latex/project_charter_latex.pdf
--------------------------------------------------------------------------------
/documentation/project charter latex/reference/refs.bib:
--------------------------------------------------------------------------------
1 | @misc{Lant2010,
2 | author = {Lant, Michael},
3 | booktitle = {Software Development, Agile Methods and the Intersection of People Process and Technology},
4 | title = {{How To Make Your Project Not Suck by Using an Agile Project Charter}},
5 | url = {http://michaellant.com/2010/05/18/how-to-make-your-project-not-suck/},
6 | year = {2010}
7 | }
8 | @book{Rubin2012,
9 | author = {Rubin, Kenneth S},
10 | edition = {1st},
11 | isbn = {0137043295, 9780137043293},
12 | publisher = {Addison-Wesley Professional},
13 | title = {{Essential Scrum: A Practical Guide to the Most Popular Agile Process}},
14 | year = {2012}
15 | }
16 | @techreport{,
17 | institution = {U.S. Department of Defense},
18 | pages = {2--7},
19 | title = {{DOD Sample Phase I Proposal}},
20 | url = {http://www.acq.osd.mil/osbp/sbir/sb/resources/sample-proposals.shtml},
21 | year = {2011}
22 | }
23 |
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/assumptions.tex:
--------------------------------------------------------------------------------
1 | An assumption is a belief of what you assume to be true in the future. You make assumptions based on your knowledge, experience or the information available on hand. These are anticipated events or circumstances that are expected to occur during your project's life cycle.
2 |
3 | Assumptions are supposed to be true but do not necessarily end up being true. Sometimes they may turn out to be false, which can affect your project significantly. They add risks to the project because they may or may not be true. For example, if you are working on an outdoor unmanned vehicle, are you assuming that testing space will be available when needed? Are you relying on an external team or contractor to provide a certain subsystem on time? If you are working at a customer facility or deploying on their computing infrastructure, are you assuming you will be granted physical access or network credentials?
4 |
5 | This section should contain a list of at least 5 of the most critical assumptions related to your project. For example:
6 |
7 | The following list contains critical assumptions related to the implementation and testing of the project.
8 |
9 | \begin{itemize}
10 | \item A suitable outdoor testing location will be available by the 3rd sprint cycle
11 | \item The X sensing system developed by Sensor Consulting Company will be delivered according to specifications by the 4th sprint cycle
12 | \item Access to the customer installation site will be provided by the 5th sprint cycle
13 | \item The customer will provide ample power and network connectivity at the installation site
14 | \item The installation site network infrastructure will allow TCP network traffic on port 8080
15 | \end{itemize}
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/background.tex:
--------------------------------------------------------------------------------
1 | An in-depth explanation of the problem, including the "business case". What is wrong with the status-quo or what opportunity exists that justifies undertaking this project (expanding upon the problem statement)? If you have a clear customer or sponsor, why do they want you to work on this? What is the existing relationship, if any, between the development team and the customer? This section should occupy 1/2 - 1 full page.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/constraints.tex:
--------------------------------------------------------------------------------
1 | Constraints are limitations imposed on the project, such as the limitation of cost, schedule, or resources, and you have to work within the boundaries restricted by these constraints. All projects have constraints, which are defined and identified at the beginning of the project.
2 |
3 | Constraints are outside of your control. They are imposed upon you by your client, organization, government regulations, availability of resources, etc. Occasionally, identified constraints turn out to be false. This is often beneficial to the development team, since it removes items that could potentially affect progress.
4 |
5 | This section should contain a list of at least 5 of the most critical constraints related to your project. For example:
6 |
7 | The following list contains key constraints related to the implementation and testing of the project.
8 |
9 | \begin{itemize}
10 | \item Final prototype demonstration must be completed by May 1st, 20XX
11 | \item The customer will provide no more than two maintenance personnel to assist in on-site installation
12 | \item Customer installation site will only be accessible by development team during normal business hours
13 | \item Total development costs must not exceed \$800
14 | \item All data obtained from customer site must be reviewed and approved for release by the Information Security Office prior to being copied to any internet connected storage medium
15 | \end{itemize}
16 |
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/cost_proposal.tex:
--------------------------------------------------------------------------------
1 | This section contains the approximate budget for the project, where that money will come from, and any other support. This text should be replaced with a discussion and justification of major expenses, but not the actual monetary amounts (that will go in the preliminary budget section below).
2 |
3 | \subsection{Preliminary Budget}
4 | Include a high level budget table for components, fabrication, software licensees, development hardware, etc. This should be in a tabular format broken up into appropriate line items.
5 |
6 | \subsection{Current \& Pending Support}
7 | What are all of the funding sources for the project, and are there any potential funding sources that haven't been secured yet? List all funding sources (including the default funding amount provided by the CSE department) and their dollar amounts.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/facilities_equipment.tex:
--------------------------------------------------------------------------------
1 | What lab space, testing grounds, makerspaces, etc. will you need to complete the project? Will you require any specific equipment, and if so, where will you get it (borrow, lease, purchase, outsource, already present in the lab, etc.). This section should occupy 1/2 page.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/methodology.tex:
--------------------------------------------------------------------------------
1 | This is the "What" of the project and it states what will be done to address the problem statement. This section should focus mostly on what your solution is going to be and what it is going to do (i.e., we are going to build an app, robot, device, etc. to perform some task which mitigates the problem). If someone were to ask you \textit{"What are you doing for your senior design project?"}, this is section is basically what you would tell them.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/milestones.tex:
--------------------------------------------------------------------------------
1 | This list of core project milestones should include all major documents, demonstration of major project features, and associated deadlines. Any date that has not yet been officially scheduled at the time of preparing this document may be listed by month.
2 | \\
3 | \\
4 | Provide a list of milestones and completion dates in the following format:
5 | \begin{itemize}
6 | \item Project Charter first draft - Month Year
7 | \item System Requirements Specification - Month Year
8 | \item Architectural Design Specification - Month Year
9 | \item Demonstration of - Month Year
10 | \item Detailed Design Specification - Month Year
11 | \item Demonstration of - Month Year
12 | \item Demonstration of - Month Year
13 | \item CoE Innovation Day poster presentation - Month Year
14 | \item Demonstration of - Month Year
15 | \item Demonstration of - Month Year
16 | \item Demonstration of - Month Year
17 | \item Final Project Demonstration - Month Year
18 | \end{itemize}
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/problem.tex:
--------------------------------------------------------------------------------
1 | The problem statement defines the "Why" of the project. This is the higher purpose, or the reason for the project's existence. This section should avoid mentioning implementation details, and focus more on what the current problem is and what would be gained if the problem were to be solved. In short, the is the reason that you are going to be working on something, not the method(s) that you will be employing.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/related_work.tex:
--------------------------------------------------------------------------------
1 | Discuss the state-of-the-art with respect to your product. What solutions currently exist, and in what form (academic research, enthusiast prototype, commercially available, etc.)? Include references and citations as necessary using the \textit{cite} command, like this \cite{Rubin2012}. If there are existing solutions, why won't they work for your customer (too expensive, not fast enough, not reliable enough, etc.). This section should occupy 1/2 - 1 full page, and should include at least 5 references to related work. All references should be added to the \textit{.bib} file, fully documented in IEEE format, and should appear in the \textit{references} section at the end of this document (the IEEE citation style will automatically be applied if your reference is properly added to the \textit{.bib} file).
2 |
3 | ProTip: Consider using a citation manager such as Mendeley, Zotero, or EndNote to generate your \textit{.bib} file and maintain documentation references throughout the life cycle of the project.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/risks.tex:
--------------------------------------------------------------------------------
1 | This section should contain a list of at least 5 of the most critical risks related to your project. Additionally, the probability of occurrence, size of loss, and risk exposure should be listed. For size of loss, express units as the number of days by which the project schedule would be delayed. For risk exposure, multiply the size of loss by the probability of occurrence to obtain the exposure in days. For example:
2 |
3 | The following high-level risk census contains identified project risks with the highest exposure. Mitigation strategies will be discussed in future planning sessions.
4 |
5 | \begin{table}[h]
6 | \resizebox{\textwidth}{!}{
7 | \begin{tabular}{|l|l|l|l|}
8 | \hline
9 | \textbf{Risk description} & \textbf{Probability} & \textbf{Loss (days)} & \textbf{Exposure (days)} \\ \hline
10 | Availability of X sensor module due to contractor delay & 0.50 & 20 & 10 \\ \hline
11 | Outdoor testing grounds are not available & 0.20 & 14 & 2.8 \\ \hline
12 | Internet access not available at installation site & 0.30 & 9 & 2.7 \\ \hline
13 | Delays in shipping from overseas vendors & 0.10 & 20 & 2.0 \\ \hline
14 | Certification delays at compliance testing facility & 0.15 & 10 & 1.5 \\ \hline
15 | \end{tabular}}
16 | \caption{Overview of highest exposure project risks}
17 | \end{table}
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/roles_responsibilities.tex:
--------------------------------------------------------------------------------
1 | Who are the stakeholders of the project? Who will be the point of contact from the sponsor or customer side? Who are the team members, and what will be their areas of responsibility? Will your team maintain the product owner and scrum master for the whole project, or will that role change periodically? This section should occupy 1/2 - 1 full page.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/system_overview.tex:
--------------------------------------------------------------------------------
1 | Explain, at a high level, how you will implement a solution to the problem. Include a diagram of major components to the system (not a full architectural design, but a high level overview of the major system components and how a user or external system might interface). Avoid specific implementation details (operating system, programming languages, etc.). This section should occupy at least 1 full page.
--------------------------------------------------------------------------------
/documentation/project charter latex/tex/value_proposition.tex:
--------------------------------------------------------------------------------
1 | The Value Proposition explains how the sponsors will benefit from your work, and why they should invest funding, time, and expertise in supporting your team. Here, you are essentially making a case for the project. There are many ways in which value can be returned to your stakeholders (industrial sponsors, instructors, the university, etc.), list any that may help you convince them to "buy in".
--------------------------------------------------------------------------------
/documentation/sprint presentations/Sprint Plan Template.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/sprint presentations/Sprint Plan Template.pptx
--------------------------------------------------------------------------------
/documentation/sprint presentations/Sprint Review Template.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/sprint presentations/Sprint Review Template.pptx
--------------------------------------------------------------------------------
/documentation/sprint presentations/burndown chart template.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/sprint presentations/burndown chart template.xls
--------------------------------------------------------------------------------
/documentation/system requirements specification LaTeX.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/system requirements specification LaTeX.zip
--------------------------------------------------------------------------------
/documentation/system requirements specification LaTeX/tex/security_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. In this section specify any requirements related to information security or privacy. This may include items such as encryption standards, data storage procedures, authentication, password strength, etc.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/images/test_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/system requirements specification latex/images/test_image.jpg
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/reference/refs.bib:
--------------------------------------------------------------------------------
1 | @book{Rubin2012,
2 | author = {Rubin, Kenneth S},
3 | edition = {1st},
4 | isbn = {0137043295, 9780137043293},
5 | publisher = {Addison-Wesley Professional},
6 | title = {{Essential Scrum: A Practical Guide to the Most Popular Agile Process}},
7 | year = {2012}
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/system_requirements_specification.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/system requirements specification latex/system_requirements_specification.pdf
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/customer_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. Customer requirements are those required features and functions specified for and by the intended audience for this product. This section establishes, clearly and concisely, the "look and feel" of the product, what each potential end-user should expect the product do and/or not do. Each requirement specified in this section is associated with a specific customer need that will be satisfied. In general Customer Requirements are the directly observable features and functions of the product that will be encountered by its users. Requirements specified in this section are created with, and must not be changed without, specific agreement of the intended customer/user/sponsor.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | A detailed description of the feature/function that satisfies the requirement. For example: \textit{The GUI background will be slate blue. This specific color is required in order to ensure that the GUI matches other similar software products offered by the customer. Slate blue is specified as \#007FFF, using six-digit hexadecimal color specification.} It is acceptable and advisable to include drawings/graphics in the description if it aids understanding of the requirement.
6 | \subsubsection{Source}
7 | The source of the requirement (e.g. customer, sponsor, specified team member (by name), federal regulation, local laws, CSE Senior Design project specifications, etc.)
8 | \subsubsection{Constraints}
9 | A detailed description of realistic constraints relevant to this requirement. Economic, environmental, social, political, ethical, health \& safety, manufacturability, and sustainability should be discussed as appropriate.
10 | \subsubsection{Standards}
11 | A detailed description of any specific standards that apply to this requirement (e.g. \textit{NSTM standard xx.xxx.x. color specifications \cite{Rubin2012}}. Standards exist for practically everything (ATC standard fuses, IEEE 802.15.4 embedded wireless, TLS 1.3 encryption, etc.), so be sure that you research and document which ones will be followed in meeting this requirement.
12 | \subsubsection{Priority}
13 | The priority of this requirement relative to other specified requirements. Use the following priorities:
14 | \begin{itemize}
15 | \item Critical (must have or product is a failure)
16 | \item High (very important to customer acceptance, desirability)
17 | \item Moderate (should have for proper product functionality);
18 | \item Low (nice to have, will include if time/resource permits)
19 | \item Future (not feasible in this version of the product, but should be considered for a future release).
20 | \end{itemize}
21 |
22 | \subsection{Requirement Name}
23 | \subsubsection{Description}
24 | Detailed requirement description...
25 | \subsubsection{Source}
26 | Source
27 | \subsubsection{Constraints}
28 | Detailed description of applicable constraints...
29 | \subsubsection{Standards}
30 | List of applicable standards
31 | \subsubsection{Priority}
32 | Priority
33 |
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/future_items.tex:
--------------------------------------------------------------------------------
1 | In this last section, you will reiterate all requirements that are listed as priority 5. This is repetitive, but necessary as a concise statement of features/functions that were considered/discussed and documented herein, but will NOT be addressed in the prototype version of the product due to constraints of budget, time, skills, technology, feasibility analysis, etc. Use the following format for this section.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/maintenance_support_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. Maintenance and support requirements address items specific to the ongoing maintenance and support of your product after delivery. Think of these requirements as if you were the ones who would be responsible for caring for customers/end user after the product is delivered in its final form and in use "in the field". What would you require to do this job? Specify items such as: where, how and who must be able to maintain the product to correct errors, hardware failures, etc.; required support/troubleshooting manuals/guides; availability/documentation of source code; related technical documentation that must be available for maintainers; specific/unique tools required for maintenance; specific software/environment required for maintenance; etc.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/other_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. In this section specify anything else that is required for the product to be deemed complete. Include requirements related to customer setup and configuration if not specified in a previous requirement. Add any known requirements related to product architecture/design, such as modularity, extensibility (for future enhancements), or adaptation for a specific programming language. Consider requirements such as portability of your source code to various platforms (Windows, Linux, Unix Mac OS, etc.).
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/packaging_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph here. Packaging requirements are those requirements that identify how the delivered product will be packaged for delivery to the end-user; or how it will "look" when finished and delivered. For example, you might specify that the software required for operation will be pre-loaded on the hard drive, delivered on CD/DVD, or available via download. Software might be customer installable, or not, etc. Hardware components could be all in a single package, provided as a "bag of parts" to be assembled/installed by the user, painted a certain color, logos affixed, etc. Care should be taken not to duplicate requirements found in other sections of this document.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/performance_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. Performance requirements address items such as: how fast specific critical operations must complete; how long it takes to start/stop activities; how long the battery must last; maximum time it must take to set up; etc.
2 |
3 | \subsection{Requirement Name}
4 | \subsubsection{Description}
5 | Detailed requirement description...
6 | \subsubsection{Source}
7 | Source
8 | \subsubsection{Constraints}
9 | Detailed description of applicable constraints...
10 | \subsubsection{Standards}
11 | List of applicable standards
12 | \subsubsection{Priority}
13 | Priority
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/product_concept.tex:
--------------------------------------------------------------------------------
1 | This section provides a high-level statement of your product concept - what it is intended to do and how it is intended to be used. Include in this header paragraph, a brief synopsis of what is described here. For example, this header paragraph might say something like: "This section describes the purpose, use and intended user audience for the X product. X is a system that performs Y. Users of X will be able to Z..."
2 |
3 | \subsection{Purpose and Use}
4 | This is where you describe in a brief, yet clear and concise, manner what your product should do and how you expect it should be used.
5 |
6 | \subsection{Intended Audience}
7 | This is where you describe the intended audience(s) of your product. If this product were to be made available publicly or commercially, who would purchase or use it? Is the product designed for a particular customer, or an overall class of customers? Is it intended for general use, or is it a specific component of a more complex system?
8 |
9 | \begin{figure}[h!]
10 | \centering
11 | \includegraphics[width=0.60\textwidth]{images/test_image}
12 | \caption{X conceptual drawing}
13 | \end{figure}
14 |
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/product_description.tex:
--------------------------------------------------------------------------------
1 | This section provides a description of your product and defines it's primary features and functions. The purpose is to give the document reader/reviewer enough information about the product to allow them to easily follow the specification of requirements found in the remainder of the document. Your header for this section should introduce the section with a brief statement such as: "This section provides the reader with an overview of X. The primary operational aspects of the product, from the perspective of end users, maintainers and administrators, are defined here. The key features and functions found in the product, as well as critical user interactions and user interfaces are described in detail." Using words, and pictures or graphics where possible, specify the following:
2 |
3 | \subsection{Features \& Functions}
4 | What the product does and does not do. Specify in words what it looks like, referring to a conceptual diagram/graphic (Figure X). Define the principle parts/components of the product. Specify the elements in the diagram/graphic that are part(s) of this product as well as any associated external elements (e.g., the Internet, an external web server, a GPS satellite, etc.)
5 |
6 | \subsection{External Inputs \& Outputs}
7 | Describe critical external data flows. What does your product require/expect to receive from end users or external systems (inputs), and what is expected to be created by your product for consumption by end users or external systems (outputs)? In other words, specify here all data/information to flow into and out of your systems. A table works best here, with rows for each critical data element, and columns for name, description and use.
8 |
9 | \subsection{Product Interfaces}
10 | Specify what all operational (visible) interfaces look like to your end-user, administrator, maintainer, etc. Show sample/mocked-up screen shots, graphics of buttons, panels, etc. Refer to the critical external inputs and outputs described in the paragraph above.
11 |
--------------------------------------------------------------------------------
/documentation/system requirements specification latex/tex/safety_requirements.tex:
--------------------------------------------------------------------------------
1 | Include a header paragraph specific to your product here. Safety requirements might address items specific to your product such as: no exposure to toxic chemicals; lack of sharp edges that could harm a user; no breakable glass in the enclosure; no direct eye exposure to infrared/laser beams; packaging/grounding of electrical connections to avoid shock; etc.
2 |
3 | \subsection{Laboratory equipment lockout/tagout (LOTO) procedures}
4 | \subsubsection{Description}
5 | Any fabrication equipment provided used in the development of the project shall be used in accordance with OSHA standard LOTO procedures. Locks and tags are installed on all equipment items that present use hazards, and ONLY the course instructor or designated teaching assistants may remove a lock. All locks will be immediately replaced once the equipment is no longer in use.
6 | \subsubsection{Source}
7 | CSE Senior Design laboratory policy
8 | \subsubsection{Constraints}
9 | Equipment usage, due to lock removal policies, will be limited to availability of the course instructor and designed teaching assistants.
10 | \subsubsection{Standards}
11 | Occupational Safety and Health Standards 1910.147 - The control of hazardous energy (lockout/tagout).
12 | \subsubsection{Priority}
13 | Critical
14 |
15 | \subsection{National Electric Code (NEC) wiring compliance}
16 | \subsubsection{Description}
17 | Any electrical wiring must be completed in compliance with all requirements specified in the National Electric Code. This includes wire runs, insulation, grounding, enclosures, over-current protection, and all other specifications.
18 | \subsubsection{Source}
19 | CSE Senior Design laboratory policy
20 | \subsubsection{Constraints}
21 | High voltage power sources, as defined in NFPA 70, will be avoided as much as possible in order to minimize potential hazards.
22 | \subsubsection{Standards}
23 | NFPA 70
24 | \subsubsection{Priority}
25 | Critical
26 |
27 | \subsection{RIA robotic manipulator safety standards}
28 | \subsubsection{Description}
29 | Robotic manipulators, if used, will either housed in a compliant lockout cell with all required safety interlocks, or certified as a "collaborative" unit from the manufacturer.
30 | \subsubsection{Source}
31 | CSE Senior Design laboratory policy
32 | \subsubsection{Constraints}
33 | Collaborative robotic manipulators will be preferred over non-collaborative units in order to minimize potential hazards. Sourcing and use of any required safety interlock mechanisms will be the responsibility of the engineering team.
34 | \subsubsection{Standards}
35 | ANSI/RIA R15.06-2012 American National Standard for Industrial Robots and Robot Systems, RIA TR15.606-2016 Collaborative Robots
36 | \subsubsection{Priority}
37 | Critical
38 |
--------------------------------------------------------------------------------
/documentation/test plan/STP Guide.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/test plan/STP Guide.doc
--------------------------------------------------------------------------------
/documentation/test plan/ieee829mtp.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/documentation/test plan/ieee829mtp.pdf
--------------------------------------------------------------------------------
/drones/3D print/Here3 straddle mount.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/drones/3D print/Here3 straddle mount.stl
--------------------------------------------------------------------------------
/drones/3D print/S550 CubeOrange vibration mount - BOTTOM.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/drones/3D print/S550 CubeOrange vibration mount - BOTTOM.stl
--------------------------------------------------------------------------------
/drones/3D print/S550 CubeOrange vibration mount - TOP.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/drones/3D print/S550 CubeOrange vibration mount - TOP.stl
--------------------------------------------------------------------------------
/esp8266/access_point_http_server/access_point_http_server.ino:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 |
7 | // create a webserver running on port 80
8 | ESP8266WebServer server(80);
9 |
10 | // define pin settings
11 | const int LED_PIN = 16;
12 |
13 | // define access point settings
14 | const char * ssid = "ESP8266 Access Point";
15 | const char * password = "esp8266arduino";
16 |
17 | // define function prototypes for HTTP handlers
18 | void handleRoot();
19 | void handleLED();
20 | void handleNotFound();
21 |
22 | void setup()
23 | {
24 | // initialize the debugging serial port
25 | Serial.begin(115200);
26 | delay(10);
27 | Serial.println('\n');
28 |
29 | // setup LED pin
30 | pinMode(LED_PIN, OUTPUT);
31 |
32 | // start the access point
33 | WiFi.softAP(ssid, password);
34 | Serial.print("Access Point \"");
35 | Serial.print(ssid);
36 | Serial.println("\" started");
37 |
38 | // print the IP address
39 | Serial.print("IP address:\t");
40 | Serial.println(WiFi.softAPIP());
41 |
42 | // start handlers for HTTP requests
43 | server.on("/", handleRoot);
44 | server.on("/LED", HTTP_POST, handleLED);
45 | server.onNotFound(handleNotFound);
46 |
47 | // start the server
48 | server.begin();
49 | Serial.println("HTTP server started");
50 | }
51 |
52 | // program main
53 | void loop(void)
54 | {
55 | // listen for HTTP requests from clients
56 | server.handleClient();
57 | }
58 |
59 | // handler for requests at root path
60 | void handleRoot()
61 | {
62 | // send response message with 200 HTTP status code
63 | server.send(200, "text/plain", "Hello world!");
64 | }
65 |
66 | // handler for requests at LED path
67 | void handleLED()
68 | {
69 | // change LED state
70 | digitalWrite(LED_PIN,!digitalRead(LED_PIN));
71 |
72 | // send the response
73 | server.send(200, "text/plain", "LED state changed!");
74 | }
75 |
76 | // handler for undefined paths
77 | void handleNotFound()
78 | {
79 | // send response message with 404 HTTP status code
80 | server.send(404, "text/plain", "404: Not found");
81 | }
82 |
--------------------------------------------------------------------------------
/lab storage card/README.md:
--------------------------------------------------------------------------------
1 | Lab storage reservation card
2 | ========
3 |
4 | 1. Enter your project information in the fillable PDF, replacing all default fields with appropriate values.
5 | 2. Print out the sheet and cut out the 3x5 rectangular card.
6 | 3. Place the card in the plastic sleeve on your storage container
--------------------------------------------------------------------------------
/lab storage card/storage reservation card.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/lab storage card/storage reservation card.docx
--------------------------------------------------------------------------------
/lab storage card/storage reservation card.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/lab storage card/storage reservation card.pdf
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/37879a3a-372a-420f-a687-849b2a63f15d.vsidx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/37879a3a-372a-420f-a687-849b2a63f15d.vsidx
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/8a4abcec-d0b3-4d25-8a0d-2267f4e71647.vsidx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/8a4abcec-d0b3-4d25-8a0d-2267f4e71647.vsidx
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/read.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/FileContentIndex/read.lock
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/v17/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/.vs/SimpleLibrarySlmpFx5/v17/.suo
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2013
4 | VisualStudioVersion = 12.0.40629.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleLibrarySlmpFx5", "SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5.csproj", "{622395AE-A242-40E0-9E95-EAE57863F0AD}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {622395AE-A242-40E0-9E95-EAE57863F0AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {622395AE-A242-40E0-9E95-EAE57863F0AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {622395AE-A242-40E0-9E95-EAE57863F0AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {622395AE-A242-40E0-9E95-EAE57863F0AD}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5.v12.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5.v12.suo
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SimpleLibrarySlmpFx5
8 | {
9 | class Program
10 | {
11 | static void Main(string[] args)
12 | {
13 | SimpleLibSlmpFx5.SimpleSlmp connection1 = new SimpleLibSlmpFx5.SimpleSlmp();
14 | byte[] newIpAdress = new byte[4];
15 | newIpAdress[0] = 192; newIpAdress[1] = 168; newIpAdress[2] = 0; newIpAdress[3] = 250;
16 | string ans = connection1.Open(newIpAdress, 2000);
17 | Console.WriteLine("Result from opening connection: " + ans);
18 | if (ans == string.Empty)
19 | {
20 | /*
21 | bool m10Value = false;
22 | ans = connection1.ReadBit("M", 10, ref m10Value);
23 | Console.WriteLine("Ans: " + ans + ", Read bit of M10 before invert: " + m10Value.ToString());
24 | //Console.ReadKey();
25 | bool m10ValueSet = !m10Value;
26 | ans = connection1.WriteBit("M", 10, m10ValueSet);
27 | Console.WriteLine("Write bit M10 Ans: " + ans);
28 | //Console.ReadKey();
29 | ans = connection1.ReadBit("M", 10, ref m10Value);
30 | Console.WriteLine("Ans: " + ans + ",Read bit of M10 after invert: " + m10Value.ToString());
31 | //Console.ReadKey();
32 | */
33 | Int16 d10Value = 0;
34 | ans = connection1.ReadWord("D", 200, ref d10Value);
35 | Console.WriteLine("Ans: " + ans + ",Read value of D10 before increment: " + d10Value.ToString());
36 | Console.ReadKey();
37 | d10Value++;
38 | ans = connection1.WriteWord("D", 10, d10Value);
39 | Console.WriteLine("Write value D10 Ans: " + ans);
40 | Console.ReadKey();
41 | ans = connection1.ReadWord("D", 10, ref d10Value);
42 | Console.WriteLine("Ans: " + ans + ",Read value of D10 after increment: " + d10Value.ToString());
43 | Console.ReadKey();
44 | }
45 | connection1.Close();
46 | Console.ReadKey();
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SimpleLibrarySlmpFx5")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Mitsubishi Electric")]
12 | [assembly: AssemblyProduct("SimpleLibrarySlmpFx5")]
13 | [assembly: AssemblyCopyright("Copyright © Mitsubishi Electric 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("f8ca796b-3529-47be-95c7-adc3ecc24576")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {622395AE-A242-40E0-9E95-EAE57863F0AD}
8 | Exe
9 | Properties
10 | SimpleLibrarySlmpFx5
11 | SimpleLibrarySlmpFx5
12 | v4.8
13 | 512
14 |
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 | ..\..\SimpleLibSlmpFx5\SimpleLibSlmpFx5\bin\Release\SimpleLibSlmpFx5.dll
38 |
39 |
40 | False
41 | ..\..\..\SLMP_Communication IQF_IQR\SLMP_EDC_LIB.dll
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
66 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SLMP_EDC_LIB.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SLMP_EDC_LIB.dll
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibSlmpFx5.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibSlmpFx5.dll
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibSlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibSlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.vshost.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.vshost.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Debug/SimpleLibrarySlmpFx5.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SLMP_EDC_LIB.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SLMP_EDC_LIB.dll
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibSlmpFx5.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibSlmpFx5.dll
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibSlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibSlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.vshost.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.vshost.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/bin/Release/SimpleLibrarySlmpFx5.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SimpleLibrarySlmpFx5.exe.config
2 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Debug\SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
3 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SimpleLibrarySlmpFx5.exe
4 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SimpleLibrarySlmpFx5.pdb
5 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SimpleLibSlmpFx5.dll
6 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SLMP_EDC_LIB.dll
7 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Debug\SimpleLibSlmpFx5.pdb
8 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Debug\SimpleLibrarySlmpFx5.exe
9 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Debug\SimpleLibrarySlmpFx5.pdb
10 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/SimpleLibrarySlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs:
--------------------------------------------------------------------------------
1 | //
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
5 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.AssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.AssemblyReference.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.CoreCompileInputs.cache:
--------------------------------------------------------------------------------
1 | 5cc1af3eca5223f3cb2ab2ee3e65ab8a67218497
2 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.exe.config
2 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.exe
3 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.pdb
4 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibSlmpFx5.dll
5 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SLMP_EDC_LIB.dll
6 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibSlmpFx5.pdb
7 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
8 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.exe
9 | C:\!DaneBG\Sieci\Slmp\SimpleSlmpDll\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.pdb
10 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.exe.config
11 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.exe
12 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibrarySlmpFx5.pdb
13 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\bin\Release\SimpleLibSlmpFx5.pdb
14 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.csproj.AssemblyReference.cache
15 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.csproj.SuggestedBindingRedirects.cache
16 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.csproj.CoreCompileInputs.cache
17 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.csproj.CopyComplete
18 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.exe
19 | C:\Users\murr\Documents\GitHub\cse4316\mitsubishi PLC\SimpleLibrarySlmpFx5\SimpleLibrarySlmpFx5\obj\Release\SimpleLibrarySlmpFx5.pdb
20 |
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.SuggestedBindingRedirects.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csproj.SuggestedBindingRedirects.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.exe
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/SimpleLibrarySlmpFx5.pdb
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/mitsubishi PLC/SimpleLibrarySlmpFx5/SimpleLibrarySlmpFx5/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/nodejs/child_process.js:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************************************//**
2 | * HTTP Client for posting messages
3 | ***********************************************************************************************************************/
4 |
5 | // import http module for requests
6 | var http = require('http');
7 |
8 | // create the request header and endpoint configuration
9 | var httpPostOptions = {
10 | host: "127.0.0.1",
11 | port: 8080,
12 | path: "/",
13 | method: "POST",
14 | headers: {"content-type": "text/plain"},
15 | };
16 |
17 | // define a function to handle outgoing HTTP POST messages
18 | function httpPost(string)
19 | {
20 | // set up the request
21 | var request = http.request(httpPostOptions);
22 |
23 | // fill the message body and send the request
24 | request.write(string);
25 | request.end();
26 |
27 | // handle a transmission failure
28 | request.on('error', function (res, socket, head) {
29 | console.log("WARNING: HTTP POST failed!");
30 | });
31 | }
32 |
33 | /*******************************************************************************************************************//**
34 | * Child process spawning and event handling
35 | ***********************************************************************************************************************/
36 |
37 | // define a function to handle child process stdout events
38 | function childHandleStdout(data)
39 | {
40 | // handle individual lines or full text blocks
41 | var separateLines = false;
42 | if(separateLines)
43 | {
44 | // separate full lines of text
45 | var strings = data.toString().split("\n");
46 |
47 | // iteratively handle each received line of text
48 | for(var i = 0; i < strings.length; i++)
49 | {
50 | // post the data
51 | httpPost(strings[i]);
52 | }
53 | }
54 | else
55 | {
56 | // post the data
57 | httpPost(data);
58 | }
59 | }
60 |
61 | // define a function to handle child process stderr events
62 | function childHandleStderr(data)
63 | {
64 | console.log('Child process STDERR: %s \n', data.toString());
65 | }
66 |
67 | // define a function to handle child process close events
68 | function childHandleClose(code)
69 | {
70 | console.log('Child process CLOSE: %s \n', code.toString());
71 | }
72 |
73 | // import the child_process module for syscalls
74 | var spawn = require('child_process').spawn;
75 |
76 | // spawn the child process
77 | var child_command = "ipconfig";
78 | var child = spawn(child_command);
79 | console.log("Child process launched with process ID %d \n", child.pid);
80 |
81 | // link output events to the proper handlers
82 | child.stdout.on('data', childHandleStdout);
83 | child.stderr.on('data', childHandleStderr);
84 | child.on('close', childHandleClose);
85 |
--------------------------------------------------------------------------------
/nodejs/hello.js:
--------------------------------------------------------------------------------
1 | console.log('Hello World');
--------------------------------------------------------------------------------
/nodejs/requestImage/TEST_URL.txt:
--------------------------------------------------------------------------------
1 | Enter in browser...
2 |
3 | http://127.0.0.1:8080/user/1234/album/test.jpg
4 |
5 |
6 |
--------------------------------------------------------------------------------
/nodejs/requestImage/server.js:
--------------------------------------------------------------------------------
1 | var express = require('express')
2 | var fs = require('fs');
3 | var app = express()
4 |
5 | app.get('/', function (req, res) {
6 | console.log('received a request!')
7 | res.send('Hello World!')
8 | })
9 |
10 | app.listen(8080, function () {
11 | console.log('Example app listening on port 8080!')
12 | })
13 |
14 |
15 | // based on example: http://expressjs.com/en/api.html#res.sendFile
16 | app.get('/user/:uid/album/:file', function(request, response){
17 | var uid = request.params.uid;
18 | var file = request.params.file;
19 | var path = __dirname + '/user/' + uid + '/album/' + file;
20 |
21 | var isAllowed = true; // replace with a function that checks to see if the user is authenticated and has permission to access the file
22 | var fileExists = fs.existsSync(path);
23 |
24 | if (!isAllowed) {
25 | console.log('forbidden')
26 | response.status(403).send("Forbidden");
27 | } else if (!fileExists) {
28 | console.log('file not found')
29 | response.status(404).send("File not found");
30 | } else {
31 | console.log('send file')
32 | response.sendFile(__dirname + '/user/' + uid + '/album/' + file);
33 | }
34 | });
35 |
36 |
37 |
--------------------------------------------------------------------------------
/nodejs/requestImage/user/1234/album/test.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/nodejs/requestImage/user/1234/album/test.jpg
--------------------------------------------------------------------------------
/nodejs/server.js:
--------------------------------------------------------------------------------
1 | // import HTTP module
2 | var http = require('http');
3 |
4 | // define the listening port
5 | const PORT=8080;
6 |
7 | // define a function to handle requests and send a response
8 | function handleRequest(request, response)
9 | {
10 | // handle all of the chunks of incoming data
11 | console.log('Receiving message...')
12 | var body = [];
13 | request.on('data', function(chunk) {
14 | body.push(chunk);
15 | }).on('end', function() {
16 | // assemble the entire message from all of the received chunks
17 | body = Buffer.concat(body).toString();
18 | console.log(body)
19 |
20 | // send message response
21 | response.end('Responding to request at path: ' + request.url);
22 | console.log('Response sent');
23 | });
24 | }
25 |
26 | // define a function to handle server launch
27 | function serverStart()
28 | {
29 | // callback triggered when server is successfully listening
30 | console.log("Server listening on: http://localhost:%s", PORT);
31 | }
32 |
33 | // create a server
34 | var server = http.createServer(handleRequest);
35 |
36 | // start the server
37 | server.listen(PORT, serverStart);
38 |
--------------------------------------------------------------------------------
/openlayers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | OpenLayers web map
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/openlayers/main.js:
--------------------------------------------------------------------------------
1 |
2 | window.onload = init;
3 |
4 | // initialization function to be called on page load
5 | function init(){
6 | const map = new ol.Map({
7 | view: new ol.View({
8 | projection: 'EPSG:4326', // sets map coordinate system to lon/lat (default is EPSG:3857)
9 | center: [-97.11325733587586, 32.73282849481263],
10 | zoom: 16,
11 | maxZoom: 20,
12 | minZoom: 4,
13 | rotation: 0.0,
14 | }),
15 | layers: [
16 | new ol.layer.Tile({
17 | source: new ol.source.OSM()
18 | })
19 | ],
20 | target: 'js-map'
21 | })
22 |
23 | // handler for map clicks
24 | map.on('click', function(e){
25 | console.log(e.coordinate);
26 | })
27 |
28 | // styles for map annotations
29 | const fillStyle = new ol.style.Fill({
30 | color: [0, 0, 255, 0.25]
31 | })
32 | const strokeStyle = new ol.style.Stroke({
33 | color: [0, 255, 0, 1.0],
34 | width: 1.2
35 | })
36 | const circleStyle = new ol.style.Circle({
37 | fill: new ol.style.Fill({
38 | color: [255, 0, 0, 1.0]
39 | }),
40 | radius: 5,
41 | stroke: strokeStyle
42 | })
43 |
44 | // vector layers
45 | const geoJSON = new ol.layer.VectorImage({
46 | source: new ol.source.Vector({
47 | url: './map.geojson', // geojson map can be created at https://geojson.io/
48 | format: new ol.format.GeoJSON()
49 | }),
50 | visible: true,
51 | title: 'GeoJSON',
52 | style: new ol.style.Style({
53 | fill: fillStyle,
54 | stroke: strokeStyle,
55 | image: circleStyle
56 | })
57 | })
58 | map.addLayer(geoJSON);
59 | }
--------------------------------------------------------------------------------
/openlayers/map.geojson:
--------------------------------------------------------------------------------
1 | {"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-97.11451649665831,32.73373617055212],[-97.1144950389862,32.73189956070322],[-97.11325585842133,32.73191761110699],[-97.11326658725737,32.73115046572302],[-97.11221516132355,32.73112790252354],[-97.11215615272522,32.733679764179016],[-97.11451649665831,32.73373617055212]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-97.11382985115051,32.73258096091035]}},{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-97.1125853061676,32.73330748122123]}},{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-97.11264967918396,32.732404970627314]}},{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-97.11260676383972,32.731660392508076]}}]}
--------------------------------------------------------------------------------
/openlayers/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/openlayers/styles.css
--------------------------------------------------------------------------------
/pcl_demo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
2 | project(PCL_demo)
3 |
4 | # set build type to release
5 | set(CMAKE_BUILD_TYPE "Release")
6 |
7 | # explicitly set c++11
8 | set(CMAKE_CXX_STANDARD 11)
9 |
10 | # configure PCL
11 | find_package(PCL 1.8.0 REQUIRED)
12 | include_directories(${PCL_INCLUDE_DIRS})
13 | link_directories(${PCL_LIBRARY_DIRS})
14 | add_definitions(${PCL_DEFINITIONS})
15 |
16 | add_executable (load_pcd load_pcd.cpp CloudVisualizer.cpp)
17 | target_link_libraries (load_pcd ${PCL_LIBRARIES})
18 |
19 | add_executable (openni2_snapper openni2_snapper.cpp)
20 | target_link_libraries (openni2_snapper ${PCL_LIBRARIES})
21 |
22 |
--------------------------------------------------------------------------------
/pupil_tracker/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | project (pupil_tracker)
2 | cmake_minimum_required(VERSION 2.8)
3 |
4 | # explicitly set c++11
5 | set(CMAKE_CXX_STANDARD 11)
6 |
7 | # configure OpenCV
8 | IF(WIN32)
9 | # set the opencv directories manually
10 | message("Windows platform detected, setting OpenCV configuration manually...")
11 | set(OPENCV_ROOT_DIR "C:/OpenCV")
12 | set(OPENCV_BUILD_DIR ${OPENCV_ROOT_DIR}/build/x64/vc12)
13 | set(OPENCV_INCLUDE_DIRS ${OPENCV_ROOT_DIR}/build/include; ${OPENCV_ROOT_DIR}/build/include/opencv; ${OPENCV_ROOT_DIR}/build/include/opencv2)
14 | set(OPENCV_LIB_DIRS ${OPENCV_BUILD_DIR}/lib)
15 |
16 | # set the include and link directories
17 | include_directories(${OPENCV_INCLUDE_DIRS})
18 | link_directories(${OPENCV_LIB_DIRS})
19 |
20 | # find all of the libs in OPENCV_LIB_DIRS
21 | file(GLOB OpenCV_LIBS RELATIVE ${OPENCV_LIB_DIRS} ${OPENCV_LIB_DIRS}/*.lib)
22 | message("Found OpenCV libs...")
23 | message(${OpenCV_LIBS})
24 | ELSE(WIN32)
25 | find_package(OpenCV REQUIRED)
26 | ENDIF(WIN32)
27 |
28 | add_executable(pupil_demo pupil_demo.cpp PupilTracker.cpp)
29 | target_link_libraries(pupil_demo ${OpenCV_LIBS})
30 |
31 |
--------------------------------------------------------------------------------
/pupil_tracker/PupilTracker.h:
--------------------------------------------------------------------------------
1 | /**********************************************************************************************************************
2 | * @file PupilTracker.cpp
3 | * @brief Header for the PupilTracker class
4 | *
5 | * This class encapsulates the canny edge based pupil tracking algorithm
6 | *
7 | * @author Christopher D. McMurrough
8 | ***********************************************************************************************************************/
9 |
10 | #ifndef PUPIL_TRACKER_H
11 | #define PUPIL_TRACKER_H
12 |
13 | #include "opencv2/opencv.hpp"
14 |
15 | /**********************************************************************************************************************
16 | * @class PupilTracker
17 | *
18 | * @brief Class for tracking pupils in an occulography image using canny edges
19 | *
20 | * @author Christopher D. McMurrough
21 | ***********************************************************************************************************************/
22 | class PupilTracker
23 | {
24 | private:
25 |
26 | // result data structures
27 | cv::RotatedRect m_ellipseRectangle;
28 |
29 | // algorithm settings
30 | int m_blur;
31 | int m_canny_thresh;
32 | int m_canny_ratio;
33 | int m_canny_aperture;
34 | int m_bin_thresh;
35 | int m_pupilIntensityOffset;
36 | int m_glintIntensityOffset;
37 | int m_min_contour_size;
38 | float m_confidence;
39 |
40 | // debug settings
41 | bool m_display;
42 |
43 | public:
44 |
45 | // constructors
46 | PupilTracker();
47 |
48 | // accessors
49 | cv::Point2f getEllipseCentroid();
50 | cv::RotatedRect getEllipseRectangle();
51 |
52 | // utility functions
53 | bool findPupil(const cv::Mat& imageIn);
54 | void setDisplay(bool display);
55 | };
56 |
57 | #endif // PUPIL_TRACKER_H
58 |
--------------------------------------------------------------------------------
/pupil_tracker/pupil_test.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/pupil_tracker/pupil_test.mp4
--------------------------------------------------------------------------------
/raspi_notes/openCV 2.4.10 raspbian install.txt:
--------------------------------------------------------------------------------
1 | sudo apt-get update
2 | sudo apt-get upgrade
3 |
4 | # INSTALL DEPENDENCIES
5 | sudo apt-get -y install build-essential cmake cmake-curses-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libeigen3-dev libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev
6 |
7 | # DOWNLOAD OPENCV SOURCE
8 | cd ~
9 | wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip
10 | unzip opencv-2.4.10.zip
11 | cd opencv-2.4.10
12 |
13 | # DOWNLOAD TBB
14 | cd 3rdparty/tbb
15 | sudo wget http://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_20130116oss_src.tgz
16 | sudo tar -xvzf tbb41_20130116oss_src.tgz
17 | cd ../..
18 |
19 | # CONFIGURE OPENCV BUILD
20 | mkdir build
21 | cd build
22 | sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D WITH_V4L=ON -D ENABLE_VFPV3=ON -D ENABLE_NEON=ON ..
23 |
24 | # BUILD AND INSTALL OPENCV
25 | sudo make -j4
26 | sudo make install
27 |
28 | # INSTALL TBB
29 | cd ~/opencv-2.4.10/build/3rdparty/tbb/tbb41_20130116oss/build
30 | sudo sh generate_tbbvars.sh
31 |
32 | sudo echo export TBB_INSTALL_DIR="~/opencv-2.4.10/build/3rdparty/tbb/tbb41_20130116oss" | sudo tee -a ~/opencv-2.4.10/build/3rdparty/tbb/tbb41_20130116oss/build/tbbvars.sh
33 | echo source ~/opencv-2.4.10/build/3rdparty/tbb/tbb41_20130116oss/build/tbbvars.sh >> .bashrc
34 | sudo cp -r ~/opencv-2.4.10/build/3rdparty/tbb/tbb41_20130116oss/include/tbb /usr/include
35 | sudo cp ~/opencv-2.4.10/build/lib/libtbb.so /usr/lib
36 |
37 | # INSTALL BOOST
38 | sudo apt-get install libboost-dev
39 |
40 | # ENABLE CAMERA
41 | sudo modprobe bcm2835-v4l2
42 |
--------------------------------------------------------------------------------
/raspi_notes/v4l2 raspicam install.txt:
--------------------------------------------------------------------------------
1 | ---------------- METHOD 1: USING PREBUILD BINARIES ---------------
2 |
3 | http://www.raspberrypi.org/camera-board-available-for-sale/
4 |
5 | http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=50639&start=100
6 |
7 | The latest release of the Raspbian Wheezy image has V4L2 drivers for the Camera Board. This means that you can use V4L2 Video Capture block to capture images from the Raspberry Pi Camera Board. To enable this, first upgrade your Raspbian:
8 |
9 | sudo apt-get update
10 | sudo apt-get dist-upgrade
11 | sudo rpi-update
12 | sudo reboot
13 |
14 | After reboot, execute the following command to load the V4L2 driver for the Raspberry Pi Camera:
15 |
16 | sudo modprobe bcm2835-v4l2
17 |
18 | After this step, you should see a /dev/video0 device (check by "ls -al /dev/vid*") that corresponds to the Camera Board. Now use the V4L2 Video Capture Block to capture images from this video device.
19 |
20 |
21 | ---------------- METHOD 2: BUILDING V4L-UTILITIES ---------------
22 |
23 | http://www.ics.com/blog/raspberry-pi-camera-module
24 |
25 | # Get the latest Raspbian packages
26 | sudo apt-get update
27 | sudo apt-get upgrade
28 |
29 | # Get the latest firmware
30 | sudo rpi-update
31 |
32 | # Get the source code for the V4L utilities
33 | git clone git://git.linuxtv.org/v4l-utils.git
34 | cd v4l-utils
35 |
36 | # Install some packages needed to build it
37 | sudo apt-get install autoconf gettext libtool libjpeg62-dev
38 |
39 | # Configure and build it.
40 | ./bootstrap.sh
41 | ./configure
42 | make
43 | sudo make install
44 |
45 | Building the software should take about fifteen minutes. You need to have the camera enabled and sufficient Graphics Processing Unit (GPU) memory configured. Here are some example commands to get started:
46 |
47 | # Load the module
48 | sudo modprobe bcm2835-v4l2
49 |
50 | # Control the viewfinder
51 | v4l2-ctl --overlay=1 # enable viewfinder
52 | v4l2-ctl --overlay=0 # disable viewfinder
53 |
54 | # Record a video
55 | v4l2-ctl --set-fmt-video=width=1920,height=1088,pixelformat=4
56 | v4l2-ctl --stream-mmap=3 --stream-count=100 --stream-to=somefile.264
57 |
58 | # Capture a JPEG image
59 | v4l2-ctl --set-fmt-video=width=2592,height=1944,pixelformat=3
60 | v4l2-ctl --stream-mmap=3 --stream-count=1 --stream-to=somefile.jpg
61 |
62 | # Set the video bitrate
63 | v4l2-ctl --set-ctrl video_bitrate=10000000
64 |
65 | # List the supported formats
66 | v4l2-ctl --list-formats
--------------------------------------------------------------------------------
/scikit-learn/MLPClassifier_deploy.py:
--------------------------------------------------------------------------------
1 | from joblib import load
2 | from sklearn.preprocessing import StandardScaler
3 | import numpy as np
4 |
5 | # load the saved model and scaler
6 | model = load('mnist.model')
7 | scaler = load('mnist.scaler')
8 |
9 | # create a test sample (result should be 7)
10 | test_sample = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,249,254,254,254,245,167,167,136,25,80,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,254,254,254,254,254,254,254,254,249,254,252,197,113,71,39,0,0,0,0,0,0,0,0,0,0,0,0,5,99,135,105,105,114,192,192,192,233,254,254,254,254,254,246,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,114,114,203,254,254,254,240,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,35,155,254,254,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,254,241,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,254,254,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,243,254,240,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,254,254,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,243,254,244,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,176,254,254,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,254,254,220,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,253,254,243,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,241,254,254,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,243,254,254,147,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,111,254,254,203,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,254,254,254,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,237,254,255,194,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,254,254,194,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,230,193,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
11 | x = np.array([test_sample])
12 |
13 | # compute the classification result
14 | result = int(model.predict(scaler.transform(x)))
15 | print("Single test sample result: " + str(result))
16 |
17 | # display the digit using matplotlib
18 | import matplotlib.pyplot as plt
19 | img = x.reshape((28,28))
20 | plt.imshow(img, cmap="Greys")
21 | plt.show()
22 |
--------------------------------------------------------------------------------
/scikit-learn/MLPClassifier_train.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | from sklearn.neural_network import MLPClassifier
4 | from sklearn.metrics import accuracy_score
5 | import pandas as pd
6 |
7 | # load the input train/test datasets from CSV
8 | train_data = pd.read_csv("mnist_train.csv")
9 | test_data = pd.read_csv("mnist_test.csv")
10 |
11 | # get the input parameters of the samples (everything but the first column in the MNIST dataset)
12 | X_train = train_data.drop(train_data.columns[0], axis=1)
13 | X_test = test_data.drop(test_data.columns[0], axis=1)
14 |
15 | # get the classification labels of the samples (the first column in the MNIST dataset)
16 | y_train = train_data.iloc[:, 0]
17 | y_test = test_data.iloc[:, 0]
18 |
19 | # # alternatively, split a single data set into test / training sets
20 | # from sklearn.model_selection import train_test_split
21 | # X_train, X_test, y_train, y_test = train_test_split(X_train, y_train, test_size= 0.25, shuffle=True, random_state=1)
22 |
23 | # print for debugging purposes
24 | print("train_data")
25 | print(train_data.head(5))
26 | print("test_data")
27 | print(test_data.head(5))
28 | print("X_train")
29 | print(X_train.head(5))
30 | print("X_test")
31 | print(X_test.head(5))
32 | print("y_train")
33 | print(y_train.head(5))
34 | print("y_test")
35 | print(y_test.head(5))
36 |
37 | # scale the training and testing data
38 | from sklearn.preprocessing import StandardScaler
39 | scaler = StandardScaler()
40 | scaler.fit(X_train.values)
41 | X_train = scaler.transform(X_train.values)
42 | X_test = scaler.transform(X_test.values)
43 |
44 | # perform the training
45 | model = MLPClassifier(hidden_layer_sizes=(20, 10), max_iter=5000, alpha=0.0001, solver='lbfgs', verbose=10, random_state=1)
46 | model.fit(X_train, y_train)
47 |
48 | # compute testing results
49 | y_pred = model.predict(X_test)
50 | accuracy = accuracy_score(y_test, y_pred)
51 |
52 | # print results for debugging
53 | print("TRAINING SAMPLES: " + str(len(X_train)))
54 | print("TESTING SAMPLES: " + str(len(X_test)))
55 | print("TESTING ACCURACY: " + str(accuracy))
56 |
57 | # save the model and scaler
58 | from joblib import dump
59 | dump(model, 'mnist.model')
60 | dump(scaler, 'mnist.scaler')
61 |
--------------------------------------------------------------------------------
/scikit-learn/README.md:
--------------------------------------------------------------------------------
1 | scikit-learn examples
2 | ========
3 |
4 | Machine learning examples using scikit-learn.
5 |
6 | MNIST in CSV dataset located here: https://pjreddie.com/projects/mnist-in-csv/
7 |
8 | Download the following two files:
9 | https://pjreddie.com/media/files/mnist_train.csv
10 | https://pjreddie.com/media/files/mnist_test.csv
11 |
12 | MLPClassifier_train.py will train and test using the MNIST datasets. After the training and testing, scaler and model files will be exported for deployment use.
13 |
14 | MLPClassifier_deploy.py will load the previously saved scaler and model files, perform one classification operation with a single test sample, display results, and terminate. This file is intented to demonstrate how to deploy a trained model to a generic python application.
15 |
16 |
--------------------------------------------------------------------------------
/sparkfun artemis/BLE_stepper/BLE_example.h:
--------------------------------------------------------------------------------
1 | #ifndef _BLE_EXAMPLE_H_
2 | #define _BLE_EXAMPLE_H_
3 |
4 | #include "Arduino.h"
5 |
6 | #define DEBUG
7 | #define SERIAL_PORT Serial
8 |
9 | #include
10 | #include
11 |
12 | #ifdef __cplusplus
13 | extern "C"
14 | {
15 | #endif
16 |
17 | #include "wsf_types.h"
18 | #include "wsf_trace.h"
19 | #include "wsf_buf.h"
20 |
21 | #include "hci_handler.h"
22 | #include "dm_handler.h"
23 | #include "l2c_handler.h"
24 | #include "att_handler.h"
25 | #include "smp_handler.h"
26 | #include "l2c_api.h"
27 | #include "att_api.h"
28 | #include "smp_api.h"
29 | #include "app_api.h"
30 | #include "hci_core.h"
31 | #include "hci_drv.h"
32 | #include "hci_drv_apollo.h"
33 | #include "hci_drv_apollo3.h"
34 |
35 | #include "am_mcu_apollo.h"
36 | #include "am_util.h"
37 |
38 | #include "nus_api.h"
39 | #include "app_ui.h"
40 |
41 | #include "wsf_msg.h"
42 |
43 | #ifdef __cplusplus
44 | }
45 | #endif
46 |
47 |
48 | //*****************************************************************************
49 | //
50 | // Forward declarations.
51 | //
52 | //*****************************************************************************
53 | void exactle_stack_init(void);
54 | void scheduler_timer_init(void);
55 | void update_scheduler_timers(void);
56 | void set_next_wakeup(void);
57 | void button_handler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
58 | extern void AppUiBtnTest(uint8_t btn);
59 |
60 | void setAdvName(const char* str);
61 |
62 | #endif // _BLE_EXAMPLE_H_
63 |
--------------------------------------------------------------------------------
/sparkfun artemis/BLE_stepper/BLE_stepper.ino:
--------------------------------------------------------------------------------
1 | /*
2 | Analog to digital conversion
3 | By: Owen Lyke
4 | SparkFun Electronics
5 | Date: Aug 27, 2019
6 | License: MIT. See license file for more information but you can
7 | basically do whatever you want with this code.
8 |
9 | This example demonstrates basic BLE server (peripheral) functionality for the Apollo3 boards.
10 |
11 | How to use this example:
12 | - Install the nRF Connect app on your mobile device (must support BLE bluetooth)
13 | - Make sure you select the correct board definition from Tools-->Board
14 | (it is used to determine which pin controls the LED)
15 | - Compile and upload the example to your board with the Arduino "Upload" button
16 | - In the nRF Connect app look for the device in the "scan" tab.
17 | (By default it is called "Artemis BLE" but you can change that below)
18 | - Once the device is found click "connect"
19 | - The GATT server will load with 5 services:
20 | - Generic Access
21 | - Generic Attribute
22 | - Link Loss
23 | - Immediate Alert
24 | - Tx Power
25 | - For this example we've hooked into the 'Immediate Alert' service.
26 | You can click on that pane and it will expand to show an "upload" button.
27 | Use the upload button to write one of three values (0x00, 0x01, or 0x02)
28 | - When you send '0x00' (aka 'No alert') the LED will be set to off
29 | - When you send either '0x01' or '0x02' the LED will be set to on
30 | */
31 | #include "BLE_example.h"
32 |
33 | #define BLE_PERIPHERAL_NAME "Artemis BLE" // Up to 29 characters
34 |
35 | void setup() {
36 |
37 | #ifdef DEBUG
38 | SERIAL_PORT.begin(115200);
39 | delay(1000);
40 | SERIAL_PORT.printf("Apollo3 Arduino BLE Example. Compiled: %s\n", __TIME__);
41 | #endif
42 |
43 | pinMode(LED_BUILTIN, OUTPUT);
44 | set_led_low();
45 |
46 | //
47 | // Configure the peripheral's advertised name:
48 | setAdvName(BLE_PERIPHERAL_NAME);
49 |
50 | //
51 | // Boot the radio.
52 | //
53 | HciDrvRadioBoot(0);
54 |
55 | //
56 | // Initialize the main ExactLE stack.
57 | //
58 | exactle_stack_init();
59 |
60 | //
61 | // Start the "Nus" profile.
62 | //
63 | NusStart();
64 | }
65 |
66 | void loop() {
67 |
68 | //
69 | // Calculate the elapsed time from our free-running timer, and update
70 | // the software timers in the WSF scheduler.
71 | //
72 | update_scheduler_timers();
73 | wsfOsDispatcher();
74 |
75 | //
76 | // Enable an interrupt to wake us up next time we have a scheduled event.
77 | //
78 | set_next_wakeup();
79 |
80 | am_hal_interrupt_master_disable();
81 |
82 | //
83 | // Check to see if the WSF routines are ready to go to sleep.
84 | //
85 | if ( wsfOsReadyToSleep() )
86 | {
87 | am_hal_sysctrl_sleep(AM_HAL_SYSCTRL_SLEEP_DEEP);
88 | }
89 | am_hal_interrupt_master_enable();
90 | }
91 |
--------------------------------------------------------------------------------
/sparkfun artemis/BLE_stepper/nus_api.h:
--------------------------------------------------------------------------------
1 | /*************************************************************************************************/
2 | /*!
3 | * \file tag_api.h
4 | *
5 | * \brief Tag sample application interface.
6 | *
7 | * $Date: 2016-12-28 16:12:14 -0600 (Wed, 28 Dec 2016) $
8 | * $Revision: 10805 $
9 | *
10 | * Copyright (c) 2011-2017 ARM Ltd., all rights reserved.
11 | * ARM Ltd. confidential and proprietary.
12 | *
13 | * IMPORTANT. Your use of this file is governed by a Software License Agreement
14 | * ("Agreement") that must be accepted in order to download or otherwise receive a
15 | * copy of this file. You may not use or copy this file for any purpose other than
16 | * as described in the Agreement. If you do not agree to all of the terms of the
17 | * Agreement do not use this file and delete all copies in your possession or control;
18 | * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior
19 | * to any use, copying or further distribution of this software.
20 | */
21 | /*************************************************************************************************/
22 | #ifndef TAG_API_H
23 | #define TAG_API_H
24 |
25 | #include "wsf_os.h"
26 |
27 | extern void debug_print(const char* f, const char* F, uint16_t L);
28 | extern void debug_printf(char* fmt, ...);
29 | extern void set_led_high( void );
30 | extern void set_led_low( void );
31 | extern void set_stepper_command(uint8_t cmd);
32 |
33 | #ifdef __cplusplus
34 | extern "C" {
35 | #endif
36 |
37 | /**************************************************************************************************
38 | Function Declarations
39 | **************************************************************************************************/
40 | /*************************************************************************************************/
41 | /*!
42 | * \fn TagStart
43 | *
44 | * \brief Start the proximity profile reporter application.
45 | *
46 | * \return None.
47 | */
48 | /*************************************************************************************************/
49 | void NusStart(void);
50 |
51 | /*************************************************************************************************/
52 | /*!
53 | * \fn NusHandlerInit
54 | *
55 | * \brief Proximity reporter handler init function called during system initialization.
56 | *
57 | * \param handlerID WSF handler ID for App.
58 | *
59 | * \return None.
60 | */
61 | /*************************************************************************************************/
62 | void NusHandlerInit(wsfHandlerId_t handlerId);
63 |
64 |
65 | /*************************************************************************************************/
66 | /*!
67 | * \fn NusHandler
68 | *
69 | * \brief WSF event handler for proximity reporter.
70 | *
71 | * \param event WSF event mask.
72 | * \param pMsg WSF message.
73 | *
74 | * \return None.
75 | */
76 | /*************************************************************************************************/
77 | void NusHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
78 |
79 | #ifdef __cplusplus
80 | };
81 | #endif
82 |
83 | #endif /* TAG_API_H */
84 |
--------------------------------------------------------------------------------
/sparkfun artemis/ULN2003/ULN2003.ino:
--------------------------------------------------------------------------------
1 | // include AccelStepper library
2 | #include
3 |
4 | // define motor controller pins
5 | #define motorPin1 9 // IN1 on the ULN2003 driver
6 | #define motorPin2 10 // IN2 on the ULN2003 driver
7 | #define motorPin3 11 // IN3 on the ULN2003 driver
8 | #define motorPin4 12 // IN4 on the ULN2003 driver
9 |
10 | // define the AccelStepper interface type; 4 wire motor in half step mode:
11 | #define MotorInterfaceType 8
12 |
13 | // initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper library with 28BYJ-48 stepper motor:
14 | AccelStepper stepper = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);
15 | void setup() {
16 | // set the motor speed / acceleration values
17 | stepper.setMaxSpeed(1000);
18 | stepper.setAcceleration(200);
19 | }
20 |
21 | void loop() {
22 | // Set the current position to 0:
23 | stepper.setCurrentPosition(0);
24 |
25 | while (true)
26 | {
27 | // move the motor in the forward direction until desired position is reached
28 | stepper.moveTo(4096);
29 | stepper.runToPosition();
30 |
31 | // pause for 1 second
32 | delay(1000);
33 |
34 | // move the motor in the reverse direction until the initial position is reached
35 | stepper.moveTo(0);
36 | stepper.runToPosition();
37 |
38 | // pause for 1 second
39 | delay(1000);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace teensy_serial_demo
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("teensy_serial_demo")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("teensy_serial_demo")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8a8e10af-1c15-4e82-b0e6-85bd47aec93b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("teensy_serial_demo.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_accelstepper_demo/teensy_accelstepper_demo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {6B6A2E90-E247-4682-9A5A-8202C97DA0A9}
9 | WinExe
10 | Properties
11 | teensy_serial_demo
12 | teensy_serial_demo
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | Form1.cs
54 |
55 |
56 |
57 |
58 | Form1.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
87 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_demo.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2013 for Windows Desktop
4 | VisualStudioVersion = 12.0.31101.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "teensy_serial_demo", "teensy_serial_demo\teensy_serial_demo.csproj", "{A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "teensy_servo_demo", "teensy_servo_demo\teensy_servo_demo.csproj", "{9FA42E2C-777E-4B83-976F-204335D2FE58}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "teensy_stepper_demo", "teensy_stepper_demo\teensy_stepper_demo.csproj", "{E7EC4555-F8BA-4724-8190-6850789365C1}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "teensy_accelstepper_demo", "teensy_accelstepper_demo\teensy_accelstepper_demo.csproj", "{6B6A2E90-E247-4682-9A5A-8202C97DA0A9}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "teensy_hbridge_demo", "teensy_hbridge_demo\teensy_hbridge_demo.csproj", "{44D95BF2-DB19-4359-ADF2-63355970C975}"
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|x86 = Debug|x86
19 | Release|x86 = Release|x86
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}.Debug|x86.ActiveCfg = Debug|x86
23 | {A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}.Debug|x86.Build.0 = Debug|x86
24 | {A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}.Release|x86.ActiveCfg = Release|x86
25 | {A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}.Release|x86.Build.0 = Release|x86
26 | {9FA42E2C-777E-4B83-976F-204335D2FE58}.Debug|x86.ActiveCfg = Debug|x86
27 | {9FA42E2C-777E-4B83-976F-204335D2FE58}.Debug|x86.Build.0 = Debug|x86
28 | {9FA42E2C-777E-4B83-976F-204335D2FE58}.Release|x86.ActiveCfg = Release|x86
29 | {9FA42E2C-777E-4B83-976F-204335D2FE58}.Release|x86.Build.0 = Release|x86
30 | {E7EC4555-F8BA-4724-8190-6850789365C1}.Debug|x86.ActiveCfg = Debug|x86
31 | {E7EC4555-F8BA-4724-8190-6850789365C1}.Debug|x86.Build.0 = Debug|x86
32 | {E7EC4555-F8BA-4724-8190-6850789365C1}.Release|x86.ActiveCfg = Release|x86
33 | {E7EC4555-F8BA-4724-8190-6850789365C1}.Release|x86.Build.0 = Release|x86
34 | {6B6A2E90-E247-4682-9A5A-8202C97DA0A9}.Debug|x86.ActiveCfg = Debug|x86
35 | {6B6A2E90-E247-4682-9A5A-8202C97DA0A9}.Debug|x86.Build.0 = Debug|x86
36 | {6B6A2E90-E247-4682-9A5A-8202C97DA0A9}.Release|x86.ActiveCfg = Release|x86
37 | {6B6A2E90-E247-4682-9A5A-8202C97DA0A9}.Release|x86.Build.0 = Release|x86
38 | {44D95BF2-DB19-4359-ADF2-63355970C975}.Debug|x86.ActiveCfg = Debug|x86
39 | {44D95BF2-DB19-4359-ADF2-63355970C975}.Debug|x86.Build.0 = Debug|x86
40 | {44D95BF2-DB19-4359-ADF2-63355970C975}.Release|x86.ActiveCfg = Release|x86
41 | {44D95BF2-DB19-4359-ADF2-63355970C975}.Release|x86.Build.0 = Release|x86
42 | EndGlobalSection
43 | GlobalSection(SolutionProperties) = preSolution
44 | HideSolutionNode = FALSE
45 | EndGlobalSection
46 | EndGlobal
47 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_demo.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/teensy_demo/demo applications/teensy_demo.suo
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_demo.v12.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/teensy_demo/demo applications/teensy_demo.v12.suo
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace teensy_serial_demo
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("teensy_serial_demo")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("teensy_serial_demo")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8a8e10af-1c15-4e82-b0e6-85bd47aec93b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("teensy_serial_demo.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_hbridge_demo/teensy_hbridge_demo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {44D95BF2-DB19-4359-ADF2-63355970C975}
9 | WinExe
10 | Properties
11 | teensy_serial_demo
12 | teensy_serial_demo
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | Form1.cs
54 |
55 |
56 |
57 |
58 | Form1.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
87 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace teensy_serial_demo
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("teensy_serial_demo")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("teensy_serial_demo")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8a8e10af-1c15-4e82-b0e6-85bd47aec93b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("teensy_serial_demo.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_serial_demo/teensy_serial_demo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {A06D460C-EA1B-4453-8FFD-BE7F2AE4E7F8}
9 | WinExe
10 | Properties
11 | teensy_serial_demo
12 | teensy_serial_demo
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | Form1.cs
54 |
55 |
56 |
57 |
58 | Form1.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
87 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace teensy_serial_demo
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("teensy_serial_demo")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("teensy_serial_demo")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8a8e10af-1c15-4e82-b0e6-85bd47aec93b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("teensy_serial_demo.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_servo_demo/teensy_servo_demo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {9FA42E2C-777E-4B83-976F-204335D2FE58}
9 | WinExe
10 | Properties
11 | teensy_serial_demo
12 | teensy_serial_demo
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | Form1.cs
54 |
55 |
56 |
57 |
58 | Form1.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
87 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace teensy_serial_demo
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("teensy_serial_demo")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("teensy_serial_demo")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8a8e10af-1c15-4e82-b0e6-85bd47aec93b")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("teensy_serial_demo.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace teensy_serial_demo.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cmcmurrough/cse4316/623f0b2ecd264e4a3d1e9ec6a06bddb1792593a5/teensy_demo/demo applications/teensy_stepper_demo/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/teensy_demo/demo applications/teensy_stepper_demo/teensy_stepper_demo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {E7EC4555-F8BA-4724-8190-6850789365C1}
9 | WinExe
10 | Properties
11 | teensy_serial_demo
12 | teensy_serial_demo
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | Form
51 |
52 |
53 | Form1.cs
54 |
55 |
56 |
57 |
58 | Form1.cs
59 |
60 |
61 | ResXFileCodeGenerator
62 | Resources.Designer.cs
63 | Designer
64 |
65 |
66 | True
67 | Resources.resx
68 |
69 |
70 | SettingsSingleFileGenerator
71 | Settings.Designer.cs
72 |
73 |
74 | True
75 | Settings.settings
76 | True
77 |
78 |
79 |
80 |
87 |
--------------------------------------------------------------------------------
/teensy_demo/firmware/iHSS57/iHSS57.ino:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************************************
2 | * @FILE iHSS57.ino
3 | * @BRIEF An example Arduino sketch for controlling the iHSS57 closed loop stepper
4 | * @AUTHOR Christopher D. McMurrough
5 | **********************************************************************************************************************/
6 |
7 | // inlcude necessary header files
8 | #include
9 |
10 | // define GPIO pins
11 | const int LED_PIN = 13;
12 | const int LED_ON = HIGH;
13 | const int LED_OFF = LOW;
14 | const int STEPPER_ENABLED = HIGH;
15 | const int STEPPER_DISABLED = LOW;
16 | const int STEPPER_COMMON_PIN = 19;
17 | const int STEPPER_1_STEP_PIN = 21;
18 | const int STEPPER_1_DIR_PIN = 20;
19 | const int STEPPER_1_ENABLE_PIN = 23;
20 |
21 | AccelStepper Stepper_1(1, STEPPER_1_STEP_PIN, STEPPER_1_DIR_PIN);
22 |
23 | void setup()
24 | {
25 | // initialize the LED
26 | pinMode(LED_PIN, OUTPUT);
27 | digitalWrite(LED_PIN, LED_OFF);
28 |
29 | // flash the LED
30 | for (int i = 0; i < 25; i++)
31 | {
32 | digitalWrite(LED_PIN, LED_ON);
33 | delay(50);
34 | digitalWrite(LED_PIN, LED_OFF);
35 | delay(50);
36 | }
37 |
38 | // initialize the motor
39 | pinMode(STEPPER_COMMON_PIN, OUTPUT);
40 | digitalWrite(STEPPER_COMMON_PIN, HIGH);
41 |
42 | // enable the motor
43 | Stepper_1.enableOutputs();
44 |
45 | // set the speed command
46 | Stepper_1.setMaxSpeed(50000);
47 | Stepper_1.setSpeed(1000);
48 | }
49 |
50 | void loop()
51 | {
52 | Stepper_1.runSpeed();
53 | }
54 |
--------------------------------------------------------------------------------
/zmq demo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | project (zeromq_example)
2 | cmake_minimum_required(VERSION 2.8)
3 |
4 | # configure ZeroMQ
5 | IF(WIN32)
6 | # set the zeromq directories manually
7 | message("Windows platform detected, setting ZeroMQ configuration manually...")
8 | set(ZeroMQ_ROOT_DIR "C:/Program Files/ZeroMQ 4.0.4")
9 | set(ZeroMQ_INCLUDE_DIR ${ZeroMQ_ROOT_DIR}/include)
10 | set(ZeroMQ_LIB_DIR ${ZeroMQ_ROOT_DIR}/lib)
11 |
12 | # set the include and link directories
13 | include_directories(${ZeroMQ_INCLUDE_DIR})
14 | link_directories(${ZeroMQ_LIB_DIR})
15 |
16 | # find all of the libs in ZEROMQ_LIB_DIR
17 | file(GLOB ZeroMQ_LIBS RELATIVE ${ZeroMQ_LIB_DIR} ${ZeroMQ_LIB_DIR}/*.lib)
18 | message("Found ZeroMQ libs...")
19 | message(${ZeroMQ_LIBS})
20 | ELSE(WIN32)
21 | #find_package (ZeroMQ REQUIRED)
22 | #set(ZeroMQ_LIBS ${ZeroMQ_LIBRARIES})
23 |
24 | # set the zeromq directories
25 | message("Linux platform detected, setting ZeroMQ configuration manually...")
26 | find_path(ZeroMQ_ROOT_DIR NAMES include/zmq.h)
27 | find_library(ZeroMQ_LIBS NAMES zmq libzmq HINTS ${ZeroMQ_ROOT_DIR}/lib)
28 | find_path(ZeroMQ_INCLUDE_DIR NAMES zmq.h HINTS ${ZeroMQ_ROOT_DIR}/include)
29 |
30 | # set the include and link directories
31 | include_directories(${ZeroMQ_INCLUDE_DIR})
32 | link_directories(${ZeroMQ_LIB_DIR})
33 | ENDIF(WIN32)
34 |
35 | # configure OpenCV
36 | IF(WIN32)
37 | # set the opencv directories manually
38 | message("Windows platform detected, setting OpenCV configuration manually...")
39 | set(OPENCV_ROOT_DIR "C:/OpenCV")
40 | set(OPENCV_BUILD_DIR ${OPENCV_ROOT_DIR}/build/x64/vc12)
41 | set(OPENCV_INCLUDE_DIRS ${OPENCV_ROOT_DIR}/build/include; ${OPENCV_ROOT_DIR}/build/include/opencv; ${OPENCV_ROOT_DIR}/build/include/opencv2)
42 | set(OPENCV_LIB_DIRS ${OPENCV_BUILD_DIR}/lib)
43 |
44 | # set the include and link directories
45 | include_directories(${OPENCV_INCLUDE_DIRS})
46 | link_directories(${OPENCV_LIB_DIRS})
47 |
48 | # find all of the libs in OPENCV_LIB_DIRS
49 | file(GLOB OpenCV_LIBS RELATIVE ${OPENCV_LIB_DIRS} ${OPENCV_LIB_DIRS}/*.lib)
50 | message("Found OpenCV libs...")
51 | message(${OpenCV_LIBS})
52 | ELSE(WIN32)
53 | find_package (OpenCV REQUIRED)
54 | ENDIF(WIN32)
55 |
56 | # create individual projects
57 | add_executable (zmq_cv_request zmq_cv_request.cpp)
58 | target_link_libraries(zmq_cv_request ${ZeroMQ_LIBS} ${OpenCV_LIBS})
59 |
60 | add_executable (zmq_cv_server zmq_cv_server.cpp)
61 | target_link_libraries(zmq_cv_server ${ZeroMQ_LIBS} ${OpenCV_LIBS})
62 |
--------------------------------------------------------------------------------
/zmq demo/zmq_cv_request.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2014 Christopher D. McMurrough
3 | //
4 | // This program is free software: you can redistribute it and/or modify
5 | // it under the terms of the GNU General Public License as published by
6 | // the Free Software Foundation, either version 3 of the License, or
7 | // (at your option) any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful,
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | // GNU General Public License for more details.
13 | //
14 | // You should have received a copy of the GNU General Public License
15 | // along with this program. If not, see .
16 | //
17 |
18 | /*******************************************************************************************************************//**
19 | * @file zmq_cv_request.cpp
20 | * @brief C++ example for receiving OpenCV image frames via a zmq request / response scheme.
21 | * @author Christopher D. McMurrough
22 | ***********************************************************************************************************************/
23 |
24 | #include
25 | #include
26 | #include
27 | #include "opencv2/opencv.hpp"
28 |
29 | // configuration parameters
30 | #define NUM_COMNMAND_LINE_ARGUMENTS 1
31 | #define DISPLAY_WINDOW_NAME "Received Image"
32 |
33 | /*******************************************************************************************************************//**
34 | * @brief program entry point
35 | * @param[in] argc number of command line arguments
36 | * @param[in] argv string array of command line arguments
37 | * @return return code (0 for normal termination)
38 | * @author Christoper D. McMurrough
39 | ***********************************************************************************************************************/
40 | int main(int argc, char **argv)
41 | {
42 | // store display parameters
43 | bool showFrames = false;
44 |
45 | // validate and parse the command line arguments
46 | if(argc != NUM_COMNMAND_LINE_ARGUMENTS + 1)
47 | {
48 | std::printf("USAGE: %s \n", argv[0]);
49 | std::printf("WARNING: Proceeding with default execution parameters... \n");
50 | showFrames = true;
51 | }
52 | else
53 | {
54 | showFrames = atoi(argv[1]) > 0;
55 | }
56 |
57 | // initialize the zmq context and socket
58 | zmq::context_t context(1);
59 | zmq::socket_t socket(context, ZMQ_REQ);
60 |
61 | // connect to the image server
62 | std::printf("Connecting to server... \n");
63 | socket.connect ("tcp://localhost:5555");
64 |
65 | // create a request object
66 | zmq::message_t request(5);
67 | memcpy(request.data(), "Hello", 5);
68 |
69 | // request new frames until the user presses the 'q' key
70 | bool requestFrames = true;
71 | while(requestFrames)
72 | {
73 | // send the request
74 | std::printf("Sending request... \n");
75 | socket.send(request);
76 |
77 | // get the reply
78 | zmq::message_t reply;
79 | socket.recv(&reply);
80 | std::vector buffer;
81 | std::printf("Received reply: %d bytes \n", static_cast(reply.size()));
82 |
83 | // store the reply data into an image structure
84 | cv::Mat image(480, 640, CV_8UC3, reply.data());
85 |
86 | // display the result
87 | if(showFrames)
88 | {
89 | cv::imshow(DISPLAY_WINDOW_NAME, image);
90 | }
91 |
92 | // check for program termination
93 | if(((char)) cv::waitKey(1)) == 'q')
94 | {
95 | requestFrames = false;
96 | }
97 | }
98 |
99 | // release program resources before returning
100 | socket.close();
101 | cv::destroyAllWindows();
102 | return 0;
103 | }
104 |
--------------------------------------------------------------------------------