diff --git a/app.js b/app.js index ed74d78..ba3be0c 100644 --- a/app.js +++ b/app.js @@ -29,6 +29,7 @@ const app = Vue.createApp( { // possible values: 'retreated', 'full' satbot_display: 'retreated', active_satellites_count: 0, + satellites_crossing_count: 0, } }, diff --git a/assets/join.png b/assets/roadmap.png similarity index 100% rename from assets/join.png rename to assets/roadmap.png diff --git a/assets/roadmap_github.png b/assets/roadmap_github.png new file mode 100644 index 0000000..f86a739 Binary files /dev/null and b/assets/roadmap_github.png differ diff --git a/assets/snap4.png b/assets/snap4.png new file mode 100644 index 0000000..1f02fd5 Binary files /dev/null and b/assets/snap4.png differ diff --git a/components/Interface/DataPanel/DataPanel.css b/components/Interface/DataPanel/DataPanel.css index dd88169..452b6d5 100644 --- a/components/Interface/DataPanel/DataPanel.css +++ b/components/Interface/DataPanel/DataPanel.css @@ -120,7 +120,7 @@ #data-display { height: 520px; - width: 300px; + width: 325px; display: flex; flex-wrap: no-wrap; diff --git a/components/Interface/DataPanel/DataPanel.js b/components/Interface/DataPanel/DataPanel.js index 90e2de5..fa1f327 100644 --- a/components/Interface/DataPanel/DataPanel.js +++ b/components/Interface/DataPanel/DataPanel.js @@ -10,11 +10,13 @@ app.component('data-panel', {
SOURCE
+
ORBIT
DATA
SETUP
+ @@ -45,6 +47,10 @@ app.component('data-panel', { type: Array, required: true }, + tle_string: { + type: String, + required: true + } }, methods: { selectTab(element){ diff --git a/components/Interface/DataPanel/components/ConfigTab.js b/components/Interface/DataPanel/components/ConfigTab.js index 0523c7e..eb1d9a9 100644 --- a/components/Interface/DataPanel/components/ConfigTab.js +++ b/components/Interface/DataPanel/components/ConfigTab.js @@ -54,9 +54,8 @@ app.component('config-tab', { - - - + +
@@ -133,7 +132,6 @@ app.component('config-tab', { if (id === 'line-level-detail'){ mountedApp.line_level_detail = value; updateMap([ - [mountedApp.object_path, mountedApp.line_level_detail], [mountedApp.predicted_path, 100] ]); } @@ -162,7 +160,6 @@ app.component('config-tab', { } updateMap([ - [mountedApp.object_path, mountedApp.line_level_detail], [mountedApp.predicted_path, 100] ]); diff --git a/components/Interface/DataPanel/components/SourceTab.js b/components/Interface/DataPanel/components/SourceTab.js index f4b201f..16f0f54 100644 --- a/components/Interface/DataPanel/components/SourceTab.js +++ b/components/Interface/DataPanel/components/SourceTab.js @@ -109,7 +109,6 @@ app.component('source-tab', { } updateMap([ - [mountedApp.object_path, mountedApp.line_level_detail], [mountedApp.predicted_path, 100] ]); diff --git a/components/Interface/ViewPanel/components/SpectsTab/SpecsTab.js b/components/Interface/DataPanel/components/SpecsTab/OrbitTab.js similarity index 83% rename from components/Interface/ViewPanel/components/SpectsTab/SpecsTab.js rename to components/Interface/DataPanel/components/SpecsTab/OrbitTab.js index da7b101..2a1fe14 100644 --- a/components/Interface/ViewPanel/components/SpectsTab/SpecsTab.js +++ b/components/Interface/DataPanel/components/SpecsTab/OrbitTab.js @@ -1,4 +1,5 @@ -app.component('specs-tab', { +app.component('orbit-tab', { + template: /*html*/ ` @@ -36,27 +37,27 @@ app.component('specs-tab', { data() { return { specs: [ - {id: 'name-spec', name:"NAME: ", info: ""}, - {id: 'norad-spec', name:'NORAD: ', info: "The NORAD Catalog Number, also known as the SATCAT, is a nine-digit sequential identifier assigned by the United States Space Command (USSPACECOM) to all artificial objects in Earth’s orbit and those that have left Earth’s orbit. It represents the order of launch or discovery and is used to track satellites and other space objects."}, - {id: 'classification-spec', name:'CLASSIFICATION: ', info: "U: Unclassified; C: Classified; S: Secret"}, - {id: 'launch-year-spec', name:'LAUNCH YEAR: ', info: "" }, - {id: 'launch-number-spec', name:'LAUNCH NUMBER: ', info: "Launch number of the year." }, - {id: 'piece-spec', name:'PIECE OF THE LAUNCH: ', info: "Piece of the launch."}, - {id: 'epoch-year-spec', name:'EPOCH YEAR: ', info: ""}, + {id: 'name-spec', name:"NAME ", info: ""}, + {id: 'norad-spec', name:'NORAD ', info: "The NORAD Catalog Number, also known as the SATCAT, is a nine-digit sequential identifier assigned by the United States Space Command (USSPACECOM) to all artificial objects in Earth’s orbit and those that have left Earth’s orbit. It represents the order of launch or discovery and is used to track satellites and other space objects."}, + {id: 'classification-spec', name:'CLASSIFICATION ', info: "U: Unclassified; C: Classified; S: Secret"}, + {id: 'launch-year-spec', name:'LAUNCH YEAR ', info: "" }, + {id: 'launch-number-spec', name:'LAUNCH NUMBER ', info: "Launch number of the year." }, + {id: 'piece-spec', name:'PIECE OF THE LAUNCH ', info: "Piece of the launch."}, + {id: 'epoch-year-spec', name:'EPOCH YEAR ', info: ""}, {id: 'epoch-spec', name:'EPOCH: ', info: "Day of the year and fractional portion of the day"}, - {id: 'first-derivative-spec', name:'1° DERIVATIVE: ', info: "Mean motion first derivative."}, - {id: 'second-derivative-spec', name:'2° DERIVATIVE: ', info: "Mean motion second derivative."}, - {id: 'bstar-spec', name:'BSTAR: ', info: "Bstar drag term (leading decimal point assumed)."}, - {id: 'ephemeris-spec', name:'EPHEMERIS TYPE: ', info: ""}, - {id: 'inclination-spec', name:'INCLINATION: ', info: "(degrees)"}, - {id: 'ascension-spec', name:'RAAN: ', info: "Right Ascension of the Ascending Node (degrees)"}, - {id: 'eccentricity-spec', name:'ECCENTRICITY: ', info: "Leading decimal point assumed."}, - {id: 'perigee-spec', name:'PERIGEE: ', info: "Argument of perigee. (degrees)"}, - {id: 'mean-anomaly-spec', name:'MEAN ANOMALY: ', info: "(degrees)"}, - {id: 'mean-motion-spec', name:'MEAN MOTION: ', info: "(revolutions per day)"}, - {id: 'revolution-number-spec', name:'REVOLUTION NUMBER: ', info: "Number of revolution at epoch this TLE refers to."}, - {id: 'checksum-line1-spec', name:'CHECKSUM (LINE 1): ', info: "Indicates TLE's line 1 data integrity."}, - {id: 'checksum-line2-spec', name:'CHECKSUM (LINE 2): ', info: "Indicates TLE's line 2 data integrity."}, + {id: 'first-derivative-spec', name:'1° DERIVATIVE ', info: "Mean motion first derivative."}, + {id: 'second-derivative-spec', name:'2° DERIVATIVE ', info: "Mean motion second derivative."}, + {id: 'bstar-spec', name:'BSTAR ', info: "Bstar drag term (leading decimal point assumed)."}, + {id: 'ephemeris-spec', name:'EPHEMERIS TYPE ', info: ""}, + {id: 'inclination-spec', name:'INCLINATION ', info: "(degrees)"}, + {id: 'ascension-spec', name:'RAAN ', info: "Right Ascension of the Ascending Node (degrees)"}, + {id: 'eccentricity-spec', name:'ECCENTRICITY ', info: "Leading decimal point assumed."}, + {id: 'perigee-spec', name:'PERIGEE ', info: "Argument of perigee. (degrees)"}, + {id: 'mean-anomaly-spec', name:'MEAN ANOMALY ', info: "(degrees)"}, + {id: 'mean-motion-spec', name:'MEAN MOTION ', info: "(revolutions per day)"}, + {id: 'revolution-number-spec', name:'REVOLUTION NUMBER ', info: "Number of revolution at epoch this TLE refers to."}, + {id: 'checksum-line1-spec', name:'CHECKSUM (LINE 1) ', info: "Indicates TLE's line 1 data integrity."}, + {id: 'checksum-line2-spec', name:'CHECKSUM (LINE 2) ', info: "Indicates TLE's line 2 data integrity."}, ] } }, @@ -264,4 +265,5 @@ app.component('specs-tab', { } } + }) \ No newline at end of file diff --git a/components/Interface/ViewPanel/components/SpectsTab/components/spec.js b/components/Interface/DataPanel/components/SpecsTab/components/spec.js similarity index 54% rename from components/Interface/ViewPanel/components/SpectsTab/components/spec.js rename to components/Interface/DataPanel/components/SpecsTab/components/spec.js index b19ada2..86dad05 100644 --- a/components/Interface/ViewPanel/components/SpectsTab/components/spec.js +++ b/components/Interface/DataPanel/components/SpecsTab/components/spec.js @@ -2,13 +2,17 @@ app.component('spec', { template: /*html*/ ` -
+
?
-
{{this.spec.name}}
+
{{this.spec.name}}
+
+
+ +
-
+ ` , props: { diff --git a/components/Interface/ViewPanel/ViewPanel.css b/components/Interface/ViewPanel/ViewPanel.css index c31ca69..7732a95 100644 --- a/components/Interface/ViewPanel/ViewPanel.css +++ b/components/Interface/ViewPanel/ViewPanel.css @@ -18,10 +18,11 @@ .tab { - position: sticky; + position: relative; + top: 0; width: 100%; - padding: 5px 10px; + padding: 7px 10px; margin: 0px; color: white; @@ -30,7 +31,7 @@ border-style: solid; border-color: rgb(255, 255, 255); - border-width: "0.1px 0.1px 3px 0.1px"; + border-width: 0.1px 0.1px 3px 0.1px; border-radius: 0px; font-family: courier; @@ -183,20 +184,11 @@ /* background-image: url(assets/mapmundi.png); background-size:cover; */ - width: 800px; + width: 100%; height: 400px; margin: 0; - padding: 2vw; - - display: grid; - grid-template-columns: 50% 50%; - align-items: center; - align-content: center; - justify-items: center; - justify-content: center; - - gap: 20px; + padding: 0; font-family: 'Courier New', Courier, monospace; @@ -300,7 +292,7 @@ padding: 10px; - font-size: 2vw; + font-size: 25px; font-weight: 100; backdrop-filter: blur(20px); diff --git a/components/Interface/ViewPanel/ViewPanel.js b/components/Interface/ViewPanel/ViewPanel.js index 49e4e8b..3ea3bf3 100644 --- a/components/Interface/ViewPanel/ViewPanel.js +++ b/components/Interface/ViewPanel/ViewPanel.js @@ -5,7 +5,6 @@ app.component('view-panel', {
-
TLE
2D VIEW
3D VIEW
@@ -17,7 +16,6 @@ app.component('view-panel', {
- diff --git a/components/Interface/ViewPanel/components/AltidudeTab.js b/components/Interface/ViewPanel/components/AltidudeTab.js index 0187d84..2738f16 100644 --- a/components/Interface/ViewPanel/components/AltidudeTab.js +++ b/components/Interface/ViewPanel/components/AltidudeTab.js @@ -8,7 +8,7 @@ app.component('altitude-tab', {
Buy Me A Coffee - Join the team + Join the team
diff --git a/components/Interface/ViewPanel/components/ForecastTab.js b/components/Interface/ViewPanel/components/ForecastTab.js index f449f5b..b2a4837 100644 --- a/components/Interface/ViewPanel/components/ForecastTab.js +++ b/components/Interface/ViewPanel/components/ForecastTab.js @@ -8,7 +8,7 @@ app.component('forecast-tab', {
Buy Me A Coffee - Join the team + Join the team
diff --git a/components/Interface/ViewPanel/components/Map2DTab/map.js b/components/Interface/ViewPanel/components/Map2DTab/map.js index 3fd6430..c50826d 100644 --- a/components/Interface/ViewPanel/components/Map2DTab/map.js +++ b/components/Interface/ViewPanel/components/Map2DTab/map.js @@ -42,7 +42,7 @@ function drawArray(path, detail_level, point_color = 'rgba(255, 255, 255, 1)', p } // updateMap([path_1, line_level_detail_1], ...) -function drawGradually(path, detail_level, point_color = 'rgba(255, 255, 255, 1)', point_size = 0.1, point_strength = 10, canvas_ctx, delay_miliseconds = 0){ +function drawActiveSatellites(path, detail_level, point_color = 'rgba(255, 255, 255, 1)', point_size = 0.1, point_strength = 10, canvas_ctx, delay_miliseconds = 0){ // console.log('path: ', path); @@ -61,11 +61,61 @@ function drawGradually(path, detail_level, point_color = 'rgba(255, 255, 255, 1) const drawPoint = async (path) => { for (let position of path) { - if (delay_miliseconds > 0) { - await sleep(delay_miliseconds); + await sleep(delay_miliseconds); + + mountedApp.active_satellites_count++; + + // console.log('satellite: ', path[index]); + + let latitude = position['latitude']; + let longitude = position['longitude']; + + // console.log(latitude); + // console.log(longitude); + // console.log('-----------------------------------'); + + //Unit conversions: + latitude = (Number(latitude) - 90)*(-2.2222); + longitude = (Number(longitude) + 180)*(2.2222); + + let scale_fix = 2.66; + + let lat = latitude/scale_fix; + let lon = longitude/scale_fix; + + for (let stroke = 0; stroke < point_strength; stroke++) { + canvas_ctx.fillRect(lon, lat, point_size, point_size); } + + + } + } - mountedApp.active_satellites_count++; + drawPoint(path); + + +} + +function drawSatellitesCrossing(path, detail_level, point_color = 'rgba(255, 255, 255, 1)', point_size = 0.1, point_strength = 10, canvas_ctx, delay_miliseconds = 0){ + + // console.log('path: ', path); + + if(path.length === 0){ + return + } + + canvas_ctx.fillStyle = point_color; + + let sleep = (milliseconds) => { + return new Promise(resolve => setTimeout(resolve, milliseconds)) + } + + const drawPoint = async (path) => { + for (let position of path) { + + await sleep(delay_miliseconds); + + mountedApp.satellites_crossing_count++; // console.log('satellite: ', path[index]); diff --git a/components/Interface/ViewPanel/components/Map3DTab/Map3DTab.js b/components/Interface/ViewPanel/components/Map3DTab/Map3DTab.js index 16e650f..bca2dac 100644 --- a/components/Interface/ViewPanel/components/Map3DTab/Map3DTab.js +++ b/components/Interface/ViewPanel/components/Map3DTab/Map3DTab.js @@ -15,7 +15,7 @@ app.component('map3D-tab', {
Buy Me A Coffee - Join the team + Join the team
diff --git a/components/Interface/ViewPanel/components/StatisticsTab.js b/components/Interface/ViewPanel/components/StatisticsTab.js index 79124e5..10bf683 100644 --- a/components/Interface/ViewPanel/components/StatisticsTab.js +++ b/components/Interface/ViewPanel/components/StatisticsTab.js @@ -8,7 +8,7 @@ app.component('statistics-tab', {
Buy Me A Coffee - Join the team + Join the team
diff --git a/components/dataManager/DataManager.js b/components/dataManager/DataManager.js index 8bfd5f6..9d6a0f1 100644 --- a/components/dataManager/DataManager.js +++ b/components/dataManager/DataManager.js @@ -27,7 +27,7 @@ app.component('data-manager', { - + diff --git a/components/header/header.js b/components/header/header.js index 6026388..ab54816 100644 --- a/components/header/header.js +++ b/components/header/header.js @@ -24,7 +24,7 @@ app.component('header-vue', {
?
CROSSING YOUR SKY:
-
{{this.crossing_sky_count}}
+
{{this.satellites_crossing_count}}