Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
5ceb13e
Reworded/restructured code to fit JSON protocol
Luis729 Mar 13, 2019
5242b42
Removed vehicle refs from MapContainer and fixed propTypes
Luis729 Mar 13, 2019
71a4cd9
Added popup window
Luis729 Mar 15, 2019
7eeb598
Versioning overhaul
Luis729 Mar 15, 2019
4ff7f5c
Updated missionWindow to work as intended
Luis729 Mar 15, 2019
0a4f90a
Multi-window support for electron-webpack
Luis729 Mar 16, 2019
9f6ea49
Minimal changes
Luis729 Mar 17, 2019
a5d2456
Electron 4 does not support geolocation, reverted to Electron 3
Luis729 Mar 17, 2019
7f06534
Finished logic for MissionContainer
Luis729 Mar 18, 2019
38633c5
Update comments
Luis729 Mar 18, 2019
0be384c
Added hex/float converter functions to util
Luis729 Mar 18, 2019
6b55c6f
Reformatted files
Luis729 Mar 19, 2019
f9d8e1d
Update README.md
Luis729 Mar 19, 2019
771c8b6
Updated badges
Luis729 Mar 19, 2019
1cde54b
Added job UI
Luis729 Mar 22, 2019
1d12df4
Version bump
Luis729 Mar 23, 2019
6b1f263
Updated CSS structure
Luis729 Mar 23, 2019
322b646
Added logic and basic structure to mission window
Luis729 Mar 24, 2019
649b0f6
Forgot to bind next job to mission
Luis729 Mar 24, 2019
de216f9
Fixed logic
Luis729 Mar 24, 2019
56226c8
Forwarded mission index to mission windows to allow multiple missions…
Luis729 Mar 24, 2019
b0ec5e7
Added general Mission and Job classes.
Luis729 Mar 25, 2019
0b74483
Small change
Luis729 Mar 25, 2019
2b8929d
Modified some files for TypeScript support
Luis729 Mar 26, 2019
cd02c35
Added FOSSA to track dependencies as well as updated map container
Luis729 Mar 26, 2019
e78bb61
More TypeScript files changed
Luis729 Mar 27, 2019
b8b06e3
Finished map container
Luis729 Mar 27, 2019
8781027
Added comments to code
Luis729 Mar 30, 2019
39e74bd
Finished main window typescript conversion
Luis729 Mar 30, 2019
503ad14
Added job to types.
Luis729 Mar 30, 2019
744c703
Added FOSSA to Travis testing
Luis729 Mar 30, 2019
c815e44
Updated README and testing to have FOSSA
Luis729 Mar 30, 2019
08217d3
One more fix
Luis729 Mar 30, 2019
36495c8
Merge pull request #59 from NGCP/dev-2018-missionui-typescript
Luis729 Mar 30, 2019
c76c4ad
Version bump
Luis729 Apr 2, 2019
a2d9baf
Fixed bug with log container not updating filter
Luis729 Apr 2, 2019
e7aa590
Added basic file to ListDict (now called DictionaryList)
Luis729 Apr 3, 2019
ae378e7
Downgraded TypeScript version to support @typescript-eslint
Luis729 Apr 3, 2019
276eb46
Working to fix TravisCI since I'm not getting any of the errors on my…
Luis729 Apr 4, 2019
01ba9b9
Modified FOSSA badges to point to provided version of repo
Luis729 Apr 4, 2019
40200f4
Updating parser version allows my system to see the errors now
Luis729 Apr 4, 2019
1eb7b8f
Fixed all eslint errors
Luis729 Apr 4, 2019
290a3be
Version bump
Luis729 Apr 4, 2019
902177c
typescript-eslint fix
Luis729 Apr 4, 2019
7401948
Moved folders to make more sense
Luis729 Apr 4, 2019
cba58f6
Implemented DictionaryList
Luis729 Apr 4, 2019
e3a4e06
Added UpdateHandler
Luis729 Apr 4, 2019
be9a4d9
Added unit tests
Luis729 Apr 4, 2019
4b10a5a
Import node in hopes to fix Timeout issue
Luis729 Apr 4, 2019
0973dce
Minor changes
Luis729 Apr 4, 2019
eed6bf5
Modified some files to prepare for Vehicle class
Luis729 Apr 5, 2019
ad7f2a8
Change functions in objects to have arrow notation
Luis729 Apr 5, 2019
2a18d4c
Added Vehicle class
Luis729 Apr 6, 2019
bf07c5a
Added typings for XbeeAPI
Luis729 Apr 6, 2019
b39adf6
Added Xbee support
Luis729 Apr 6, 2019
667b000
Fixed jobs to tasks and finished Vehicle.ts
Luis729 Apr 7, 2019
fd2cd0c
Fixed job names on Jobs.ts
Luis729 Apr 7, 2019
01555a8
Reformatted configuration files and types
Luis729 Apr 7, 2019
37ea608
Version bump
Luis729 Apr 8, 2019
4e16d2b
Added type guards to messages
Luis729 Apr 8, 2019
40e35ca
Updated type guards
Luis729 Apr 8, 2019
dd994d4
Finished messages typings
Luis729 Apr 9, 2019
f965506
Reallocated type guard exports to a common variable
Luis729 Apr 9, 2019
5cec45c
Added receiveMessage function to MessageHandler
Luis729 Apr 10, 2019
2ea625b
Updated UpdateHandler
Luis729 Apr 10, 2019
542b8a2
Fixed UpdateHandler test
Luis729 Apr 10, 2019
78a6611
Changed eslint
Luis729 Apr 10, 2019
5a55596
Added JobType type
Luis729 Apr 11, 2019
abd6cd4
Fixed updateVehiclesFixtures to have proper jobTypes
Luis729 Apr 11, 2019
a9e71f2
Add mission types and current messaging system (#61)
Luis729 Apr 11, 2019
1003c88
Added mission parameters
Luis729 Apr 12, 2019
02c3286
Added options to PayloadDrop mission (and added PayloadDropMissionPar…
Luis729 Apr 12, 2019
412a747
Added Mission class (WIP)
Luis729 Apr 12, 2019
917f944
Version bump + updated MessageHandler
Luis729 Apr 12, 2019
1153484
Fixed vehicle assignJob handler
Luis729 Apr 12, 2019
821d143
Convert missionWindow
tnleang Apr 12, 2019
5342d89
Added support to successfully build package (npm run build)
Luis729 Apr 13, 2019
7cf99a7
Version bump
Luis729 Apr 13, 2019
5b3b906
FInished Mission class
Luis729 Apr 13, 2019
f00e8cb
Added more logic to Mission
Luis729 Apr 14, 2019
94a8aae
Small changes, no change in logic
Luis729 Apr 14, 2019
bdbb4ee
Added ipcRenderer typing support through util/ipc.ts
Luis729 Apr 14, 2019
0d10de2
Updated logic
Luis729 Apr 15, 2019
ed24d78
Added Orchestrator and fixed logic
Luis729 Apr 15, 2019
73f21a0
Forgot to include Orchestrator into last commit
Luis729 Apr 15, 2019
694bdd9
Added ISRSearch mission
Luis729 Apr 15, 2019
7ef85de
Added support to start Mission
Luis729 Apr 15, 2019
12bcb3b
Added "startNextMission" to Orchestrator
Luis729 Apr 15, 2019
1d193d5
Fixed comments in Orchestrator + logic
Luis729 Apr 15, 2019
54f25a8
Modified code structure + comments to improve readability
Luis729 Apr 15, 2019
37095b9
Fixed logic + comments
Luis729 Apr 16, 2019
aea50e7
Fixed ISRSearch's generateCompletionParameters function
Luis729 Apr 16, 2019
36d6d3f
(Re)added undefined as an option for generateTasks/generatedCompletio…
Luis729 Apr 16, 2019
567cb6e
Updated typings
Luis729 Apr 17, 2019
a091165
MessageHandler was not included in last commit
Luis729 Apr 17, 2019
81db431
Fixed typings
Luis729 Apr 17, 2019
6832825
Added msgpack support to Xbee
Luis729 Apr 17, 2019
78c39c1
Log container has timeout
Luis729 Apr 18, 2019
fc5ef7a
Finish ISR Search backend
Luis729 Apr 18, 2019
f4a34e1
Added all other missions
Luis729 Apr 18, 2019
88213bd
Update updateVehiclesFixtures.ts
Luis729 Apr 18, 2019
a17576d
Added boundingBox and waypoints variable to MapContainer
Luis729 Apr 19, 2019
e1d30c6
Version bump + update waypoint logic
Luis729 Apr 19, 2019
34f6876
Fixed waypoint logic
Luis729 Apr 19, 2019
c547c0d
Modified fixtures
Luis729 Apr 19, 2019
9cc6e97
Fixed Orchestrator vehicle disconnection
Luis729 Apr 19, 2019
579e86e
Small change to missions
Luis729 Apr 19, 2019
323f2b0
Updated for testing with UGV
Luis729 Apr 19, 2019
c006d4b
(Re)added logic to the Orchestrator to only acknowledge if the messag…
Luis729 Apr 20, 2019
6271c9a
Fixed broken ts tests
Luis729 Apr 20, 2019
5ea0abc
Update logic in Orchestrator's ping + ack/self change
Luis729 Apr 20, 2019
bf2de79
Fixed frame type in Xbee
Luis729 Apr 22, 2019
92183f7
Added bounding box
Luis729 Apr 23, 2019
70d8bd8
Added logic to MissionWindow
Luis729 Apr 24, 2019
d8b4300
Added slider to drag as well as styling
Luis729 Apr 24, 2019
f94f97d
Fixed eslint issue
Luis729 Apr 24, 2019
574f619
Added "tip" to scroll
Luis729 Apr 24, 2019
08a3fcd
Modified logic + styling
Luis729 Apr 24, 2019
d28f0a5
Added pause/resume logic + cache information
Luis729 Apr 24, 2019
7225b9a
Progress for the night
Luis729 Apr 24, 2019
3de9fcc
Finish Mission Window UI Logic
Luis729 Apr 25, 2019
e9fb102
Fixed logic for unknown disconnection
Luis729 Apr 25, 2019
8e68a77
Finished Mission UI
Luis729 Apr 26, 2019
2515fc8
Wrote ISRSearch parameter object
Luis729 Apr 26, 2019
95540bc
Fixed edge case when field is empty
Luis729 Apr 26, 2019
45368d9
implement PayloadDrop, VTOLSearch
tnleang Apr 26, 2019
e45d816
Updated mission parameters for UUVRescue
maquino123 Apr 27, 2019
2a3d958
Logic to Orchestrator/Mission + etc
Luis729 Apr 27, 2019
340e80d
Small changes to UI
Luis729 Apr 27, 2019
2caef43
Updated mission parameters for UGVRescue
maquino123 Apr 27, 2019
6d8bb59
Update on VTOLSearch
tnleang Apr 27, 2019
ab04e40
Final logic changes
Luis729 Apr 27, 2019
ec621da
Version bump
Luis729 Apr 27, 2019
e627fc2
Node 12 makes serialport crash
Luis729 Apr 27, 2019
96d2a14
Added comments for state
maquino123 Apr 27, 2019
21de86f
Delete fossa test as it is very inconsistent
Luis729 Apr 27, 2019
051b756
Added support to VTOL's guide job
Luis729 Apr 27, 2019
73a8714
Made JSONMessage case sensitive to type field
Luis729 Apr 27, 2019
eef5d61
Fixed logic in sending messages
Luis729 Apr 30, 2019
524ee0e
Added logic to support POI makers in VTOL Search mission
Luis729 Apr 30, 2019
14c5e55
Added cached tile layer successfully
Luis729 May 1, 2019
d7989f6
Changed isNaN to isInteger/isFinite
Luis729 May 1, 2019
1d44001
Version bump
Luis729 May 1, 2019
d3e35cd
missionWindow CSS
tnleang May 2, 2019
7ced376
Small changes
Luis729 May 3, 2019
020276f
Added light theme mission window
tnleang May 3, 2019
d8903c4
Fixed Buttons
maquino123 May 3, 2019
20bdcbb
Readded info
tnleang May 3, 2019
34054c2
update css
tnleang May 3, 2019
9593f74
Pre-test updates
Luis729 May 4, 2019
d0a49a0
No more FOSSA
Luis729 May 4, 2019
0124fae
Version bump
Luis729 May 4, 2019
1770340
Change in logic
Luis729 May 4, 2019
6046d40
Small update logic
Luis729 May 4, 2019
ce048e1
Fixed variable order (version update) + other updates
Luis729 May 5, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# Duplicate this file, rename it to .env, and replace your-access-token with your MapBox API token

MAPBOX_TOKEN=your-access-token
2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Directories for eslint to ignore
dist
old-src
12 changes: 0 additions & 12 deletions .eslintrc.json

This file was deleted.

92 changes: 92 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Use typescript-eslint to lint our TypeScript code
parser: "@typescript-eslint/parser"

# Use Airbnb rules to check code
extends:
- airbnb
- plugin:@typescript-eslint/recommended

plugins:
- import
- chai-friendly

env:
browser: true
node: true

settings:
# TypeScript compatibility
import/parsers:
"@typescript-eslint/parser":
- .ts
- .tsx

# TypeScript compatibility
import/resolver:
typescript: {}

# Modules that should be a devDependency and will be used in the application
import/core-modules:
- electron

# Additional rules
rules:
# Turn off linting about having wrong line ending, handled in .gitattributes
linebreak-style: off

# Have chai friendly no-unused-expressions rules, otherwise code can look nasty
no-unused-expressions: off
chai-friendly/no-unused-expressions: error

# Add strictness to type declarations in TypeScript
"@typescript-eslint/explicit-function-return-type": error
"@typescript-eslint/no-explicit-any": error

# Enforce commenting styles
multiline-comment-style: error

# Modifying react/jsx-filename-extension to support TypeScript React files
"react/jsx-filename-extension":
- error
- extensions:
- .jsx
- .tsx

# Move no-useless-constructor to @typescript-eslint/no-useless-constructor
no-useless-constructor: off
"@typescript-eslint/no-useless-constructor": error

# @typescript-eslint/no-use-before-define is already defined
no-use-before-define: off

# Re-adding changed Airbnb rules (removed most likely from @typescript-eslint/recommended)
"@typescript-eslint/camelcase":
- error
- properties: never

"@typescript-eslint/indent":
- error
- 2
- SwitchCase: 1
VariableDeclarator: 1
outerIIFEBody: 1
FunctionDeclaration:
parameters: 1
body: 1
FunctionExpression:
parameters: 1
body: 1
CallExpression:
arguments: 1
ArrayExpression: 1
ObjectExpression: 1
ImportDeclaration: 1
flatTernaryExpressions: false
ignoreComments: false


"@typescript-eslint/no-unused-vars":
- error
- vars: all
args: after-used
ignoreRestSiblings: true
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# prevent newline problems between macOS and Windows
# Prevent newline problems between different systems

* text=auto
*.sln text eol=lf
Expand Down
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# files
# Ignore system generated files/folders
.DS_Store
.env
package-lock.json

# folders
dist
node_modules

# Ignore .env file (should be set per system)
.env
2 changes: 2 additions & 0 deletions .stylelintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Directories for stylelint to ignore
dist
10 changes: 0 additions & 10 deletions .stylelintrc

This file was deleted.

12 changes: 12 additions & 0 deletions .stylelintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Rules to lint CSS

# Use stylelint preset rules to lint
extends: stylelint-config-standard

# Added rules
rules:
indentation: 2
declaration-block-no-duplicate-properties: true
no-empty-source: null
string-quotes: single
max-line-length: 100
19 changes: 14 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# testing with Travis CI, will run npm test
# Travis CI testing configuration

language: node_js

# Use latest version of Node.js
node_js:
- "node"
cache:
directories:
- "node_modules"
- lts/*

# Cache node_modules after testing
cache: npm

# Scripts to run to test application
script:
# Run each test manually instead of npm test so that it runs sequentially (and not in parallel)
- npm run test:lint
- npm run test:types
- npm run test:unit
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# NGCP Ground Control Station

[![Build Status](https://travis-ci.com/NGCP/GCS.svg?branch=dev-2018)](https://travis-ci.com/NGCP/GCS)
[![dependencies Status](https://david-dm.org/NGCP/GCS/status.svg)](https://david-dm.org/NGCP/GCS)
[![devDependencies Status](https://david-dm.org/NGCP/GCS/dev-status.svg)](https://david-dm.org/NGCP/GCS?type=dev)

The [Northrop Grumman Collaboration Project] presents the Ground Control Station. This project's objective is to view and set missions for all autonomous vehicle platforms in the project.

Expand All @@ -9,11 +11,12 @@ This is based on [Node.js], [React], [Webpack], and [Electron].
## Getting Started
**:pencil2: Setting Things Up**

Open up your command line application and clone this repository
Install [Node.js]. The program will not be able to run without it.

Open up your command line application and clone this repository:

```sh
# Command is accustomed to dev-2018 branch
git clone -b dev-2018 --single-branch https://github.com/NGCP/GCS.git
git clone https://github.com/NGCP/GCS.git
```

**:scroll: Running the Program**
Expand All @@ -31,6 +34,9 @@ npm install
npm start
```

## License
[MIT](https://github.com/NGCP/GCS/blob/dev-2018/LICENSE)

[Northrop Grumman Collaboration Project]: http://www.ngcpcalpoly.com/about.html
[Node.js]: https://github.com/nodejs/node
[React]: https://github.com/facebook/react
Expand Down
94 changes: 57 additions & 37 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,45 +1,75 @@
{
"name": "GCS",
"version": "0.5.1",
"version": "0.7.4",
"license": "MIT",
"author": "Northrop Grumman Collaboration Project",
"description": "Ground Control Station for autonomous vehicle platforms in NGCP",
"repository": "https://github.com/NGCP/GCS",
"scripts": {
"test": "npm run linttest",
"linttest": "eslint --ext .js,.jsx \".\" && stylelint \"**/*.css\"",
"postinstall": "electron-builder install-app-deps",
"lint": "eslint --fix --ext .js,.jsx \".\" && stylelint \"**/*.css\" --fix",
"postinstall": "electron-rebuild",
"test": "npm run test:lint && npm run test:types && npm run test:unit",
"test:lint": "eslint --ext .js,.jsx,.ts,.tsx \".\" & stylelint \"**/*.css\"",
"test:types": "tsc --project . --outDir dist --pretty",
"test:unit": "mocha --require ts-node/register test/**/*.test.ts",
"lint": "eslint --fix --ext .js,.jsx,.ts,.tsx \".\" & stylelint \"**/*.css\" --fix",
"start": "electron-webpack dev",
"build": "electron-webpack && electron-builder"
},
"dependencies": {
"leaflet": "^1.3.4",
"moment": "^2.22.2",
"pouchdb": "^7.0.0",
"prop-types": "^15.6.2",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-leaflet": "^2.1.0",
"react-leaflet-control": "^2.0.0",
"@fortawesome/fontawesome-free": "^5.8.1",
"leaflet": "^1.4.0",
"leaflet.offline": "^1.0.4",
"moment": "^2.24.0",
"msgpack-lite": "^0.1.26",
"prop-types": "^15.7.2",
"rc-slider": "^8.6.9",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-leaflet": "^2.2.1",
"react-leaflet-control": "^2.1.1",
"react-virtualized": "^9.21.0",
"serialport": "^6.2.2",
"source-map-support": "^0.5.9",
"serialport": "^7.1.5",
"source-map-support": "^0.5.12",
"xbee-api": "^0.6.0"
},
"devDependencies": {
"@babel/preset-react": "^7.0.0",
"@types/chai": "^4.1.7",
"@types/mocha": "^5.2.6",
"@types/msgpack-lite": "^0.1.6",
"@types/rc-slider": "^8.6.3",
"@types/react": "^16.8.16",
"@types/react-dom": "^16.8.4",
"@types/react-leaflet": "^2.2.1",
"@types/react-virtualized": "^9.21.1",
"@types/serialport": "^7.0.3",
"@typescript-eslint/eslint-plugin": "^1.7.0",
"@typescript-eslint/parser": "^1.7.0",
"babel-eslint": "^10.0.1",
"dotenv-webpack": "^1.5.7",
"electron": "^3.0.2",
"electron-builder": "^20.28.4",
"electron-webpack": "2.3.1",
"eslint": "^5.7.0",
"chai": "^4.2.0",
"dotenv-webpack": "^1.7.0",
"electron": "^3.1.9",
"electron-builder": "^20.40.2",
"electron-rebuild": "^1.8.4",
"electron-webpack": "^2.6.2",
"electron-webpack-ts": "^3.1.1",
"eslint": "^5.16.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-plugin-import": "^2.14.0",
"eslint-import-resolver-typescript": "^1.1.1",
"eslint-plugin-chai-friendly": "^0.4.1",
"eslint-plugin-import": "^2.17.2",
"eslint-plugin-jsx-a11y": "^6.2.1",
"eslint-plugin-react": "^7.11.1",
"stylelint": "^9.6.0",
"stylelint-config-standard": "^18.2.0",
"stylelint-order": "^1.0.0",
"webpack": "^4.22.0"
"eslint-plugin-react": "^7.13.0",
"mocha": "^6.1.4",
"stylelint": "^10.0.1",
"stylelint-config-standard": "^18.3.0",
"stylelint-order": "^3.0.0",
"ts-node": "^8.1.0",
"typescript": "^3.4.5",
"webpack": "^4.30.0"
},
"build": {
"npmRebuild": false
},
"electronWebpack": {
"main": {
Expand All @@ -48,15 +78,5 @@
"renderer": {
"webpackConfig": "webpack.config.js"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/NGCP/GCS.git"
},
"author": "Northrop Grumman Collaboration Project",
"license": "MIT",
"bugs": {
"url": "https://github.com/NGCP/GCS/issues"
},
"homepage": "https://github.com/NGCP/GCS"
}
}
5 changes: 0 additions & 5 deletions resources/config.json

This file was deleted.

Binary file removed resources/images/other/fullmoon.png
Binary file not shown.
Binary file removed resources/images/other/fullmoon_hover.png
Binary file not shown.
Binary file removed resources/images/other/geolocation.png
Binary file not shown.
Binary file removed resources/images/other/geolocation_hover.png
Binary file not shown.
Binary file removed resources/images/other/moon.png
Binary file not shown.
Binary file removed resources/images/other/moon_hover.png
Binary file not shown.
Binary file removed resources/images/pin.png
Binary file not shown.
Loading