diff --git a/artemis.qrc b/artemis.qrc index d45e4d7..4567b95 100644 --- a/artemis.qrc +++ b/artemis.qrc @@ -22,6 +22,7 @@ images/icons/documents.svg images/icons/abort.svg images/spectrum_not_available.svg + images/artemis_not_available.svg ui/Artemis.qml ui/DbManager.qml @@ -37,6 +38,7 @@ ui/SignalPage.qml ui/SpaceWeatherCurrentPage.qml ui/SpaceWeatherForecastPage.qml + ui/SpaceWeatherDRAPPage.qml ui/About.qml diff --git a/artemis/resources.py b/artemis/resources.py index 00c3923..3a6dc14 100644 --- a/artemis/resources.py +++ b/artemis/resources.py @@ -3122,6 +3122,1296 @@ f\x84\x83Y\xf8p\x1e\x0e4MF\x05D\x01\x87\x01\ \x0c\xa2\x07\x1d\xb8\x8c\xcb\xb8\x04?\xe2H\x94\x9e\xd6\xf7\ \xff\x01\xf66\x1f\xe8_\xafk\xb1\x00\x00\x00\x00IE\ ND\xaeB`\x82\x93\xe4\xf7\x89\ +\x00\x00Pz\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +02.013\x22 height=\x22\ +1392.257\x22 xmlns:\ +v=\x22https://vecta\ +.io/nano\x22>\ \x00\x00\x04\x09\ <\ svg xmlns=\x22http:\ @@ -4116,6 +5406,58 @@ j\x1c\xaf\xc9Xd8\x99\xadZY\x16\x9f\xcd\x16\xd8\ \x13\xad\xcb[\x9a\xae\x14-\x22\x5c*\xb6O\xd98J\ \x22(-\x81\x98\xb7l\xd0\xf4\x11\xd6m\xca\xc0\x9f.\ \xd6\x91\xa6\xff\xfe\x02\xb9y\xac\x1b\ +\x00\x00\x03\x18\ +\x00\ +\x00\x0b\xf1x\xda\xb5Vmo\xda0\x10\xfe>\xa9\xff\ +\xc1\xe2\x0b u\xa1\xeb\xc7H|`\xc0D\xa5Rh\ +\xa0-UUU&9\x88[\xc7Nm\x87\x97m\xfc\ +\xf7\xd9a\xbc$$\xc0\xda\x11\x90\x88s\xcf\x9d\x9f{\ +\xee|\x81\x04!\x17\x0a\xdd\xaa\xdb\x88\xb8og_H\ +bm=\x10\xe6\xf1\xe9\xce\xe3:gJp*s\x0d\ +V\x1b+\x10\x04\xd3\x1d\xc45\x9e\xf3HiO\xf3\xe9\ +\xe21\xa0_g_\x90\xbe\x88g#\x19b\x17\x1e\x00\ ++\x1fD\xc3\xa9u\x97\x16\xcc\x5c\x9f\x0bi\x8d\x08\xa5\ +6\x0a\xb1\x00\xa6\x8c\xb7\xb1\xf1\xe1+\xb8\xea\x06\x07`\ +\xa3B\xda\xbd3|-\xac\x80\xa3\x88\xb9\x8ap\x86(\ +\xc7^C\xe0\xd0\x01\xc3\xab\x14r\x09\xc4\xe3\xec\xc5\xc3\ +\x0a\x97Wd\xccE\xf1\x10\xa8\x03.\x9f\x80\x98[\x0a\ +f\x0aUQ\x02\xfeT4\xbb\x14\x9f\x9f\x8a+\x18\xea\ +\x93\x00\x8a\xcf\xa9 \x03\x81\xe7m9>\x10c\xe0\xe0\ +9\xd2\xb0\x1d\xf7\xae\xe0\x8a\xb3\xc3\x01\x96\xb8U\x88M\ +\x10\xd7\x07\xf7\xedN\xd0\xe6\x8cH%K\x05_\xa9P\ +\xda\x95\xcat:\xb5\xb4\x98r\x82)\x85\xb9\xe5\xf2\xa0\ +\xb2\x8e\x0clL\x18T<-\x94\x15\xb2q\xe1|-\ +`\x09\xe20\x09\xa9\xe2\xfa\x8dP\x9e)6\x07\xba\xd6\ +\xdf\xf9\xcc\x92<\x12.\xe8,>\xc4#\x19x\x81\x80\ +J8r\xbbw\xe1\xea\xcd*\xb1EV\xb0P\x10\x10\ +\xf9\xc2\xb8z\xc1\x13L\xb4\xd2\x14,9\xd9\xd9b\xb3\ +\x5c\x94\x97\xf7\x8b\x9d\x9eJ)\x1c\x09z\x8e\x5c\x9d\xcd\ +\x10\xbbo\x095&X\xa0\x99/4\x1d\x06S4h\ +_\xb7\xb4\x06\x0e\xbcG U\xa9\xbc\xc1i\x8c\xc5\x99\ +\x00\xec\xcd\xa5\xd2G\xc9\xf51\x1b\x9b,\xd6U\xc8\xd4\ +\xdf\xb8\xc5N=\xe3\x84\xaa\xd5jj\x0f\xab\xd1\xb9i\ +f\xd6gE7\x8ea\xf6\x8cd\xec\x7fyqQ\xce\ +W$\xc58\x04V*\xb4\x9a\xb5\x86\xee\x97X\x04%\ +\x22H\xa5%\x81y\xa5\xb4\x92uN\xa3\x80-g\xc3\ +6\xbb\xec\xa3\x9f\xb6\x0a2\xf6U\x1b\x0b\xdd*\xb6&\ +\xbc\x0b\xa00\xdak\x1fr\xa5x\xb0\x0f\xa1x\xb8m\ +\xde\x00\xae\x82\xad\x19\xb6\xae\x85\x9ee\xab\x0eLZ\x96\ +)\xc6\xf9\xb4\xc0\xd0\xb6c\x8drA\x0f\xc4S~\x16\ +\xc6\x18\xdb\xdc\xd3c/f`u\xf5\x01\x021\x81\x9a\ +\x0c\xf5@\xfcA\xd46\xc9\xc5\xf6\xc2\xe1\xd3]\xa1\xe3\ +T\xf4\x89\xc8j\x8dc\xe8,\xd2\x19\xe8\xb9\x95\x15\xcb\ +L0\x1b\xbd\xcb\xbe(\x15\x9cf\xbds\xdft\x1eQ\ +\xff\xaa\xdd\xb4\x0b\xe5cv\x1ea}\xe0s\x81\x98\x92\ +1\x0bt\x8f\xd8\xfa}c\xd5\xcc\xaaU\xd7K\x10\xe8\ +\xf7\xfa\xc9\xfd\xf2\xc9\xc7\xf8\x9b\xca&^\x0c'\xe0\x12\ +\x97W\xbfH\xad\x90\x13\xa6z\xe4\xa7.\xf2\xb7\xcb\x1c\ +\xcc\x90S\xef\x88\x82\xfc\xa7\xda\x1e\xd7H\x9fV \x8f\ +U\x12\x9574\x0e\x161\xdd\x88\x83\xafN\xed\x11\xf5\ +\xfa\xb5\xfe]/\xab\x0d\x17\xff\x18{\xdd$\x7f_\xfc\ +\xd9\xa8cJ|\xb0\xcc\x19\xf4\x16i\x9d>Y\xfb\x13\ +\x89\xdeu:\xfd\xce\xcd\x1e\xd5\xf7w\x92c\x86\xe71\ +'\xe9\xc3\xc5[\xff\xed:\x19\xb5\x13wA\xeaV\xff\ +\xe8\xef\x1f\xd9\xc5\x1f}\ \x00\x00\x06\xd4\ \x00\ \x00E\x82x\xda\xed[mo\xda:\x14\xfe>i\xff\ @@ -4619,113 +5961,42 @@ Text\x0d\x0a \ .WordWrap\x0d\x0a \ }\x0d\x0a }\x0d\x0a}\x0d\x0a\ \ -\x00\x00\x06\x8d\ -i\ -mport QtQuick\x0d\x0ai\ -mport QtQuick.Wi\ -ndow\x0d\x0aimport QtQ\ -uick.Controls\x0d\x0ai\ -mport QtQuick.Co\ -ntrols.Material\x0d\ -\x0aimport QtQuick.\ -Layouts\x0d\x0a\x0d\x0aWindo\ -w {\x0d\x0a id: win\ -dowSpaceWeather\x0d\ -\x0a\x0d\x0a width: 10\ -00\x0d\x0a height: \ -700\x0d\x0a\x0d\x0a Compo\ -nent.onCompleted\ -: {\x0d\x0a x =\ - Screen.width / \ -2 - width / 2\x0d\x0a \ - y = Scree\ -n.height / 2 - h\ -eight / 2\x0d\x0a }\ -\x0d\x0a\x0d\x0a modality\ -: Qt.Application\ -Modal\x0d\x0a flags\ -: Qt.Window\x0d\x0a\x0d\x0a \ - title: qsTr(\x22\ -Artemis - Space \ -Weather\x22)\x0d\x0a\x0d\x0a \ - function update\ -BottomBar(messag\ -e) {\x0d\x0a sp\ -aceBottomBar.tex\ -t = message\x0d\x0a \ - }\x0d\x0a\x0d\x0a\x0d\x0a Page\ - {\x0d\x0a anch\ -ors.fill: parent\ -\x0d\x0a\x0d\x0a foot\ -er: Label {\x0d\x0a \ - id: spa\ -ceBottomBar\x0d\x0a \ - font.pi\ -xelSize: 12\x0d\x0a \ - leftPad\ -ding: 5\x0d\x0a \ - rightPaddin\ -g: 5\x0d\x0a \ - bottomPadding:\ - 5\x0d\x0a }\x0d\x0a\x0d\ -\x0a ColumnL\ -ayout {\x0d\x0a \ - anchors.fil\ -l: parent\x0d\x0a\x0d\x0a \ - TabBar \ -{\x0d\x0a \ - id: tabBar\x0d\x0a \ - w\ -idth: parent.wid\ -th\x0d\x0a \ - Layout.fillW\ -idth: true\x0d\x0a\x0d\x0a \ - Ta\ -bButton {\x0d\x0a \ - t\ -ext: qsTr(\x22Curre\ -nt\x22)\x0d\x0a \ - }\x0d\x0a \ - TabButt\ -on {\x0d\x0a \ - text: \ -qsTr(\x22Forecasts\x22\ -)\x0d\x0a \ - }\x0d\x0a \ - }\x0d\x0a\x0d\x0a \ - StackLayout {\ -\x0d\x0a \ - currentIndex: \ -tabBar.currentIn\ -dex\x0d\x0a \ - Layout.fill\ -Height: true\x0d\x0a \ - La\ -yout.fillWidth: \ -true\x0d\x0a\x0d\x0a \ - Item {\x0d\x0a\ - \ - SpaceWeather\ -CurrentPage {\x0d\x0a \ - \ - id: space\ -WeatherCurrentPa\ -ge\x0d\x0a \ - }\x0d\x0a \ - }\x0d\x0a\x0d\x0a\ - \ -Item {\x0d\x0a \ - Spac\ -eWeatherForecast\ -Page {\x0d\x0a \ - \ -id: spaceWeather\ -ForecastPage\x0d\x0a \ - \ - }\x0d\x0a \ - }\x0d\x0a \ - }\x0d\x0a }\ -\x0d\x0a }\x0d\x0a}\x0d\x0a\ +\x00\x00\x02\x19\ +\x00\ +\x00\x07\x87x\xda\xbdT\xddk\xdb0\x10\x7f\x0f\xe4\x7f\ +\x10}j\x1f\xe6\xa5\x8510\xf4!\xcd\x18+\xb4\x90\ +.\x85<+\xf69\x16\x95%O:\x93d\xc3\xff\xfb\ +\xf4a%\xb6\xe3lM\xcbv\xf8A\xba\xfb\xdd\xdd\xef\ +>,V\x94R!y\xc2\xa7\x8a%/\xe3\x11\xeb\xdc\ +\xa3%\x13\xa9\xdc\x1c\xa9gR\xa0\x92\x5c\x9f4D\x8f\ +\x14A1\xca\x8f\x10\x0ft'+4\x9e\xe3\x91\x0fN\ +~\x8dG\xc4\x08Kc\xb2q\x9aEI\x13X\x02\xc5\ +\x1c\x94\xc5Y\xeb\x86\xa5\x98\xc7\xe4z2\x99xE\x0e\ +l\x9dcL>[\x85W\xcd\xa4I%@`$\x85\ +=s@0A\x9b\xf8V\xb6\xe4\x96,\x12\x05 \x22\ +\x17\x90|$7\xe4\x03\xd9\x9f\x0f\xc8\xdd\x01\xe935\ +\xd0\xc3\xc5c\xeb\x90\xbc\x90)\xe5\x0cw\xb1\xa94\x9a\ +\x96%g\x09E&\xc5\xa3\xd5{H\xc6\xe9Z;{\ +h\xab\xd7#C\x0e1\xf9\xa1\x9f\xd5\xe5\xc5T!\x14\ +L\x9bT\xae\x0d\xa4\xe9\xc3\xc5U@g\x95Hl`\ +R\x95\xa9i\xf2\x9dD\x94\xc5\x1dU\x97\x05hM\xd7\ +p\xd5.X\xdb\x18{H\x84\xb0ESX\x83lU\ +\xe0\x8fs\xa3l{S\x91\xe4R\xe9(c\x9c\xc7\xa4\ +\xa4\xca\xf46`\x1d\x15)\xcd\x94c\xf2@W\xc0\xdb\ +\x8ea\x9e\xdd\xf4]{fV%*\xd9\x16\xf8\x82\xfd\ +4\xe5_\xdft\xed\x1c2\x9c\xd34eb\x1d\x93O\ +]\x9b\xb2C8e\x5c\xb9|C\xd6\xbaM~&y\ +U\x08\xbf\x8e}\xee\x7f+\xdc\xca3]\x99\x9a\xfa\x9e\ +\xa1rt\xd6c[\xb3\xc7>\xa4_\xc2c\x90'\xe5\ +\xb2/=\x1eU\x05}\x02\x81De\xca\x15C<\xdc\ +n\x99\x89\x87\xd5\x9aU\xcaf\xb5\xab\xd4\x87\xd5\xef\x0c\ +\xfdU*H\xa8F\xfd/\x82\x7f\xf9>\x9d\xbf\x22n\ +\xddo\xd0\x02i\xf22<`+\x89o\xc7\xbdHa\ +\x1b\x06\x16\xb5\x95\x7f\x1c\xcc\xb7\xe6\xfd\xf1\x93y\xfb\x04\ +\xef\xcd\xef~\xaa\x09\xed\x87\xb0\x19^\xff\x17\x1d\xda=\ +=\xec6\xecT\x0f\xf6\xf5\xed<\xc3&\x9cK\xb4\xed\ +\xf7\x7f\x98\xda\xb5:\x97e\xf09\x87\xe1\x89k\xbd\x7f\ +~\xcd\xf7\x1b\xf1b\xd4\xe4\ \x00\x00\x08\xdf\ \x00\ \x00[\x00x\xda\xed\x5cmo\xdb\xb6\x16\xfe>`\xff\ @@ -5609,6 +6880,11 @@ qt_resource_name = b"\ \x02\xfaB\xdf\ \x00a\ \x00r\x00t\x00e\x00m\x00i\x00s\x00_\x00i\x00c\x00o\x00n\x00.\x00i\x00c\x00o\ +\x00\x19\ +\x0a\xec\xd1\x87\ +\x00a\ +\x00r\x00t\x00e\x00m\x00i\x00s\x00_\x00n\x00o\x00t\x00_\x00a\x00v\x00a\x00i\x00l\ +\x00a\x00b\x00l\x00e\x00.\x00s\x00v\x00g\ \x00\x0f\ \x07\x9a\x02\x07\ \x00p\ @@ -5695,6 +6971,11 @@ qt_resource_name = b"\ \x00S\ \x00p\x00a\x00c\x00e\x00W\x00e\x00a\x00t\x00h\x00e\x00r\x00F\x00o\x00r\x00e\x00c\ \x00a\x00s\x00t\x00P\x00a\x00g\x00e\x00.\x00q\x00m\x00l\ +\x00\x18\ +\x01-\xec\xdc\ +\x00S\ +\x00p\x00a\x00c\x00e\x00W\x00e\x00a\x00t\x00h\x00e\x00r\x00D\x00R\x00A\x00P\x00P\ +\x00a\x00g\x00e\x00.\x00q\x00m\x00l\ \x00\x1b\ \x03\xae7\xfc\ \x00S\ @@ -5763,11 +7044,11 @@ qt_resource_name = b"\ qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x18\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x19\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x0a\x00\x02\x00\x00\x00\x04\x00\x00\x00\x03\ +\x00\x00\x00\x0a\x00\x02\x00\x00\x00\x05\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x1c\x00\x02\x00\x00\x00\x11\x00\x00\x00\x07\ +\x00\x00\x00\x1c\x00\x02\x00\x00\x00\x11\x00\x00\x00\x08\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x8f\xc8\xd7c\x19\ @@ -5775,77 +7056,81 @@ qt_resource_struct = b"\ \x00\x00\x01\x8f\xc8\xd7c\x15\ \x00\x00\x00f\x00\x00\x00\x00\x00\x01\x00\x00Xk\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x00\xd2K\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x01\x00\x00\xc8\x9e\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01\x9c\x00\x00\x00\x00\x00\x01\x00\x00\xd1/\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x02|\x00\x00\x00\x00\x00\x01\x00\x00\xe2\x16\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x02f\x00\x00\x00\x00\x00\x01\x00\x00\xdf\xff\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\xc9\xfc\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01\xe0\x00\x00\x00\x00\x00\x01\x00\x00\xd3\xbd\ -\x00\x00\x01\x8f\xc8\xd7c\x16\ \x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\xc2Z\ +\x00\x00\x01\x8f\xcf\xcb\xb7\x93\ +\x00\x00\x01\xf8\x00\x00\x00\x00\x00\x01\x00\x01\x22\xc9\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01\xf6\x00\x00\x00\x00\x00\x01\x00\x00\xd5\xf9\ +\x00\x00\x014\x00\x00\x00\x00\x00\x01\x00\x01\x19\x1c\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x020\x00\x00\x00\x00\x00\x01\x00\x00\xdb\x0a\ +\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x01\x00\x01!\xad\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x02\xb4\x00\x00\x00\x00\x00\x01\x00\x012\x94\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x02\x9e\x00\x00\x00\x00\x00\x01\x00\x010}\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x01Z\x00\x00\x00\x00\x00\x01\x00\x01\x1az\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x01$;\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x00\xea\x00\x00\x00\x00\x00\x01\x00\x01\x12\xd8\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x02.\x00\x00\x00\x00\x00\x01\x00\x01&w\ +\x00\x00\x01\x8f\xc8\xd7c\x16\ +\x00\x00\x02h\x00\x00\x00\x00\x00\x01\x00\x01+\x88\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x02\xa0\x00\x00\x00\x00\x00\x01\x00\x00\xe4&\ +\x00\x00\x02\xd8\x00\x00\x00\x00\x00\x01\x00\x014\xa4\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x01x\x00\x00\x00\x00\x00\x01\x00\x00\xcfB\ +\x00\x00\x01\xb0\x00\x00\x00\x00\x00\x01\x00\x01\x1f\xc0\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x00\xdcf\ +\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x01,\xe4\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xd8_\ +\x00\x00\x02B\x00\x00\x00\x00\x00\x01\x00\x01(\xdd\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01:\x00\x00\x00\x00\x00\x01\x00\x00\xcc\x1a\ +\x00\x00\x01r\x00\x00\x00\x00\x00\x01\x00\x01\x1c\x98\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x01^\x00\x00\x00\x00\x00\x01\x00\x00\xcd\x12\ +\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\xc6g\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x01\x16\xe5\ \x00\x00\x01\x8f\xc8\xd7c\x16\ -\x00\x00\x03\x90\x00\x01\x00\x00\x00\x01\x00\x01\x04\x88\ +\x00\x00\x03\x8c\x00\x01\x00\x00\x00\x01\x00\x01N.\ +\x00\x00\x01\x8f\xcf\xcd\xa1A\ +\x00\x00\x03\xfe\x00\x01\x00\x00\x00\x01\x00\x01X\x22\ \x00\x00\x01\x8f\xcb\x85\x0fz\ -\x00\x00\x03T\x00\x01\x00\x00\x00\x01\x00\x00\xfd\xb0\ +\x00\x00\x03\xc2\x00\x01\x00\x00\x00\x01\x00\x01QJ\ \x00\x00\x01\x8f\xcf\x1c*%\ -\x00\x00\x02\xb6\x00\x01\x00\x00\x00\x01\x00\x00\xe5\xfd\ +\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x016{\ \x00\x00\x01\x8f\xcb\x84\x8f\xb2\ -\x00\x00\x02\xe0\x00\x01\x00\x00\x00\x01\x00\x00\xebQ\ +\x00\x00\x03\x18\x00\x01\x00\x00\x00\x01\x00\x01;\xcf\ \x00\x00\x01\x8f\xcb\x849\xd5\ -\x00\x00\x04\xdc\x00\x00\x00\x00\x00\x01\x00\x01F(\ +\x00\x00\x05J\x00\x00\x00\x00\x00\x01\x00\x01\x95N\ \x00\x00\x01\x8f\xcb\x83\x89\xfd\ -\x00\x00\x03\x16\x00\x01\x00\x00\x00\x01\x00\x00\xf5A\ +\x00\x00\x03N\x00\x01\x00\x00\x00\x01\x00\x01E\xbf\ \x00\x00\x01\x8f\xcb\x86T\x18\ -\x00\x00\x04\xba\x00\x00\x00\x00\x00\x01\x00\x01@y\ +\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x01\x8f\x9f\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x02\xfc\x00\x02\x00\x00\x00\x04\x00\x00\x00'\ +\x00\x00\x034\x00\x02\x00\x00\x00\x04\x00\x00\x00)\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x042\x00\x01\x00\x00\x00\x01\x00\x01##\ +\x00\x00\x04\xa0\x00\x01\x00\x00\x00\x01\x00\x01rI\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x04\x98\x00\x01\x00\x00\x00\x01\x00\x016\x9b\ +\x00\x00\x05\x06\x00\x01\x00\x00\x00\x01\x00\x01\x85\xc1\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x04T\x00\x01\x00\x00\x00\x01\x00\x01,\x06\ +\x00\x00\x04\xc2\x00\x01\x00\x00\x00\x01\x00\x01{,\ \x00\x00\x01\x8f\xcb\x83z\xd6\ -\x00\x00\x03\xb6\x00\x01\x00\x00\x00\x01\x00\x01\x0b\x0b\ +\x00\x00\x04$\x00\x01\x00\x00\x00\x01\x00\x01^\xa5\ \x00\x00\x01\x8f\xcb\x84\xd9\xfc\ -\x00\x00\x03\xe4\x00\x00\x00\x00\x00\x01\x00\x01\x16\xcd\ +\x00\x00\x04R\x00\x00\x00\x00\x00\x01\x00\x01jg\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x04\x0c\x00\x00\x00\x00\x00\x01\x00\x01\x1c\x92\ -\x00\x00\x01\x8f\xcb\x85;\x83\ -\x00\x00\x04t\x00\x01\x00\x00\x00\x01\x00\x012\xa7\ +\x00\x00\x04z\x00\x01\x00\x00\x00\x01\x00\x01p,\ +\x00\x00\x01\x8f\xcf4qQ\ +\x00\x00\x04\xe2\x00\x01\x00\x00\x00\x01\x00\x01\x81\xcd\ \x00\x00\x01\x8f\xcb\x85\x05&\ -\x00\x00\x05\x10\x00\x01\x00\x00\x00\x01\x00\x01N\xdb\ +\x00\x00\x05~\x00\x01\x00\x00\x00\x01\x00\x01\x9e\x01\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x05X\x00\x01\x00\x00\x00\x01\x00\x01T\xd8\ +\x00\x00\x05\xc6\x00\x01\x00\x00\x00\x01\x00\x01\xa3\xfe\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x04\xf4\x00\x01\x00\x00\x00\x01\x00\x01K\xd8\ +\x00\x00\x05b\x00\x01\x00\x00\x00\x01\x00\x01\x9a\xfe\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x054\x00\x01\x00\x00\x00\x01\x00\x01Q\x9a\ +\x00\x00\x05\xa2\x00\x01\x00\x00\x00\x01\x00\x01\xa0\xc0\ \x00\x00\x01\x8f\xc8\xd7c\x19\ " diff --git a/artemis/ui/spaceweather.py b/artemis/ui/spaceweather.py index bee8164..507086c 100644 --- a/artemis/ui/spaceweather.py +++ b/artemis/ui/spaceweather.py @@ -12,6 +12,7 @@ class UIspaceweather(QObject): show_ui = Signal() load_poseidon_report = Signal(dict) load_poseidon_forecast_report = Signal(dict) + load_poseidon_drap_report = Signal(dict) update_bottom_bar = Signal(str) @@ -26,6 +27,7 @@ class UIspaceweather(QObject): self._window_current = self._window.findChild(QObject, "spaceWeatherCurrentObj") self._window_forecast = self._window.findChild(QObject, "spaceWeatherForecastObj") + self._window_drap = self._window.findChild(QObject, "spaceWeatherDRAPObj") self._connect() @@ -38,6 +40,7 @@ class UIspaceweather(QObject): self.update_bottom_bar.connect(self._window.updateBottomBar) self.load_poseidon_report.connect(self._window_current.loadReport) self.load_poseidon_forecast_report.connect(self._window_forecast.loadForecastReport) + self.load_poseidon_drap_report.connect(self._window_drap.loadDrapReport) def load_spaceweather_ui(self): @@ -55,6 +58,7 @@ class UIspaceweather(QObject): if poseidon_data: self.load_poseidon_report.emit(poseidon_data) self.load_poseidon_forecast_report.emit(poseidon_data) + self.load_poseidon_drap_report.emit(poseidon_data) self.update_bottom_bar.emit( 'Loaded Poseidon report issued on {} at {} UTC'.format( diff --git a/images/artemis_not_available.svg b/images/artemis_not_available.svg new file mode 100644 index 0000000..7bbd6dd --- /dev/null +++ b/images/artemis_not_available.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/SpaceWeather.qml b/ui/SpaceWeather.qml index 0d56b81..1f24a46 100644 --- a/ui/SpaceWeather.qml +++ b/ui/SpaceWeather.qml @@ -50,6 +50,9 @@ Window { TabButton { text: qsTr("Forecasts") } + TabButton { + text: qsTr("DRAP") + } } StackLayout { @@ -68,6 +71,12 @@ Window { id: spaceWeatherForecastPage } } + + Item { + SpaceWeatherDRAPPage { + id: spaceWeatherDRAPPage + } + } } } } diff --git a/ui/SpaceWeatherDRAPPage.qml b/ui/SpaceWeatherDRAPPage.qml new file mode 100644 index 0000000..b3ecd73 --- /dev/null +++ b/ui/SpaceWeatherDRAPPage.qml @@ -0,0 +1,107 @@ +import QtQuick +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Controls.Material +import QtQuick.Layouts + + +Page { + id: spaceWeatherDRAP + anchors.fill: parent + + objectName: "spaceWeatherDRAPObj" + + function loadDrapReport(poseidon_data) { + labelRecovery.text = poseidon_data['DRAP']['Recovery Time'] + labelXrayMsg.text = poseidon_data['DRAP']['XRay Msg'] + labelProtonMsg.text = poseidon_data['DRAP']['Proton Msg'] + + checkUrlExists("https://www.aresvalley.com/poseidon_engine/drap.png", function(exists) { + if (exists) { + imageBox.source = "https://www.aresvalley.com/poseidon_engine/drap.png" + } else { + imageBox.source = "qrc:///images/artemis_not_available.svg" + } + }) + } + + function checkUrlExists(url, callback) { + var xhr = new XMLHttpRequest() + xhr.onreadystatechange = function() { + if (xhr.readyState === XMLHttpRequest.DONE) { + callback(xhr.status === 200) + } + } + xhr.open("HEAD", url, true) + xhr.send() + } + + ColumnLayout { + anchors.fill: parent + anchors.rightMargin: 20 + anchors.leftMargin: 20 + anchors.bottomMargin: 20 + anchors.topMargin: 20 + + Image { + id: imageBox + Layout.fillHeight: true + Layout.fillWidth: true + fillMode: Image.PreserveAspectFit + + } + + RowLayout { + Item { + Layout.fillWidth: true + } + Label { + text: qsTr("RECOVERY TIME:") + Layout.fillWidth: false + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + } + Label { + id: labelRecovery + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + font.pointSize: 12 + font.bold: true + } + Item { + Layout.fillWidth: true + } + } + + RowLayout { + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.fillWidth: true + + ColumnLayout { + Label { + text: qsTr("X-RAY STATUS") + } + Label { + id: labelXrayMsg + font.pointSize: 12 + font.bold: true + } + } + + Item { + Layout.fillWidth: true + } + + ColumnLayout { + Label { + text: qsTr("PROTON STATUS") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + } + Label { + id: labelProtonMsg + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + font.pointSize: 12 + font.bold: true + } + } + } + } +}