• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Qt, QML przesylanie zmiennych

Object Storage Arubacloud
0 głosów
746 wizyt
pytanie zadane 5 listopada 2018 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)

Witam,

napisalem prosty skrypt pobierajacy dane ze z GPS na Raspberry Pi. Chcialbym te dane pokazac na mapie uzywajac OpenStreet'a. Tylko mam problem, jezeli chodzi o wyswietlanie danych, bo nie wiem jak je przekazac. Skrypt pobierajacy dane z GPS nie jest w projekcie z Qt, ale mysle, ze to nie bedzie problem, bo wkleje tyllko caly skrypt a pozniej dokleje go do projektu.

import serial
import time

goToInformationOfGPS = serial.Serial("/dev/ttyUSB0", baudrate = 9600)#access to the usb0
#filename = "file_" + str(time.asctime()) + '.txt'
filename = "file_" + str(time.strftime("%a_%d_%b_%Y_%H:%M:%S")) + '.txt'  
while True:
    #time.sleep(5)
    line = goToInformationOfGPS.readline()
    
    information = line.split(",".encode())
                         
    if (information[0] =="$GPRMC"):
        if (information[2]=="A"):
            try:
                #print (information [3] , information [4])
                #print (information [5] , information [6])
                try:
                    x = float(information [3]) / 100
                    y = float(information [5]) / 100
                finally:
                #print (x)
                #print (y)
                    listax = [str(x),";", information [4], '\n']
                    listay = [str(y),";", information [6], '\n']
            except ValueError:
                pass
            try:
                #plik = open('dane.txt', 'a')
                plik = open (filename, 'a')
                try:
                    plik.writelines(listax)
                    plik.writelines(listay)
                    plik.flush()
                finally:
                    plik.close()
                    
            except IOError:
                pass

A tu czesc od qml

import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Window 2.0
import QtLocation 5.6
import QtPositioning 5.6

Plugin {
    id: mapPlugin
    name: "osm"
    //PluginParameter { name: "osm.useragent"; value: "My great Qt OSM application" }
    //PluginParameter { name: "osm.mapping.host"; value: "http://osm.tile.server.address/" }
    //PluginParameter { name: "osm.mapping.copyright"; value: "All mine" }
    //PluginParameter { name: "osm.routing.host"; value: "http://osrm.server.address/viaroute" }
    //PluginParameter { name: "osm.geocoding.host"; value: "http://geocoding.server.address" }
}

ApplicationWindow {
    id: app_window
    visible: true
    width: 1024
    height: 800
    title: qsTr("Navigation")

    Rectangle {
        width: 500
        height: 500
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.verticalCenter: parent.verticalCenter
        Map {
            id: map
            anchors.fill: parent
            plugin: mapPlugin
            center {
                latitude: 59.91//länge
                longitude: 10.75//breite
            }
            zoomLevel: 14
//******************************START POINT******************************//
                MapCircle {
                        center {
                            latitude: 59.91
                            longitude: 10.75
                        }
                        radius: 100.0
                        color: 'green'
                        border.width: 3
                    }
    //******************************FINISH POINT******************************//
                MapCircle {
                        center {
                            latitude: 59.91
                            longitude: 10.75
                        }
                        radius: 100.0
                        color: 'red'
                        border.width: 3
                    }
        }// Map
    } //Rectangle
    PositionSource {
    nmeaSource: "socket://127.0.0.1:12345"
    }


}

 Teoretycznie stworzenie zmiennej w QML to nie problem, tylko nie wiem jak moge przeslac zmienna stworzona w pythonie do zmiennej w qml.

 

Pozdrawiam 

DragonCoder

1 odpowiedź

+1 głos
odpowiedź 6 listopada 2018 przez Bondrusiek Maniak (61,370 p.)
Witam,

tutaj jest chyba problem podobny do Twojego https://forum.qt.io/topic/90044/from-python-to-qml

Może to Ci pomoże
komentarz 6 listopada 2018 przez DragonCoder Nałogowiec (36,500 p.)
Widzialem rozwiazanie z flaskiem i sam wczoraj je zauwazykem, wiec zrobie raczej 2 niezalezne skrypty. Jeden ktory wlaczy gps modul do i bedzie wysylal dane do bazy sqlite i dane bedzie mozna pobierac przez flask, zarowno lokalnie jak i przez internet, bo serwerem bedzie Raspy samo w sobie.

Podobne pytania

+1 głos
3 odpowiedzi 686 wizyt
pytanie zadane 20 lutego 2020 w C i C++ przez niezalogowany
+1 głos
0 odpowiedzi 239 wizyt
–1 głos
1 odpowiedź 870 wizyt
pytanie zadane 21 stycznia 2016 w C i C++ przez Rogargol Pasjonat (16,600 p.)

92,568 zapytań

141,422 odpowiedzi

319,640 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...