CFW Programmierungsproblem
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
CFW Programmierungsproblem
Hallo!
Erstmal danke für die tolle Arbeit an der CFW!
Ich verwende diese selbst schon länger, bisher allerdings nur mit Apps wie IOlyser und Brickly ( sehr tolle Sache).
Jetzt habe ich versucht die App Controlling an Output aus dem Wiki kopiert und die Verbindung zum IO-Controller von localhost zu 127.0.0.1 geändert.
Außerdem habe ich die Beschriftung des Knopfs auf Deutsch geändert.
Nun, ich kann die App hochladen und starten, es öffnet sich kein Fenster und es erscheint kein Kopf!
Ich habe die gesamte .zip-Datei auf Github hochgeladen. ( https://www.dropbox.com/s/8qpoe04ckntmv ... t.zip?dl=0)
Ich hoffe ihr könnt mir hier helfen.
Techniker
Erstmal danke für die tolle Arbeit an der CFW!
Ich verwende diese selbst schon länger, bisher allerdings nur mit Apps wie IOlyser und Brickly ( sehr tolle Sache).
Jetzt habe ich versucht die App Controlling an Output aus dem Wiki kopiert und die Verbindung zum IO-Controller von localhost zu 127.0.0.1 geändert.
Außerdem habe ich die Beschriftung des Knopfs auf Deutsch geändert.
Nun, ich kann die App hochladen und starten, es öffnet sich kein Fenster und es erscheint kein Kopf!
Ich habe die gesamte .zip-Datei auf Github hochgeladen. ( https://www.dropbox.com/s/8qpoe04ckntmv ... t.zip?dl=0)
Ich hoffe ihr könnt mir hier helfen.
Techniker
Re: CFW Programmierungsproblem
Oh!
Ein Fehler!
Gehe mal zu http://ipvontxt/applog.py
ipvontxt soltest du durch die IP ersetzen, die du in NetInfo oder in Network findest.
Dann solange auf Neuladen klicken bis Application log startet erscheint.
Dann App starten und Inhalt der Webseite reinkopieren.
Ein Fehler!
Gehe mal zu http://ipvontxt/applog.py
ipvontxt soltest du durch die IP ersetzen, die du in NetInfo oder in Network findest.
Dann solange auf Neuladen klicken bis Application log startet erscheint.
Dann App starten und Inhalt der Webseite reinkopieren.
Mit freundlichen Grüssen
nq30
ft:cool :)
nq30
ft:cool :)
Re: CFW Programmierungsproblem
Leider bekomme ich auf der Seite immer einen 404 Fehler, auch dutzendfaches Neuladen hat nicht geholfen.
Re: CFW Programmierungsproblem
Den Applog gibt es meines Wissens nach erst ab der 0.9.3. Guck dir mal Das Kapitel App Debugging an.
Raphael
Raphael
Re: CFW Programmierungsproblem
Leider kann ich das nicht finden.
Wo befindet das sich? Im github-Wiki?
Wenn ja, wo genau?
Wo befindet das sich? Im github-Wiki?
Wenn ja, wo genau?
Re: CFW Programmierungsproblem
Ich habs leider nicht geschafft die Anleitung dort auszuführen.
Von Anfang an:
Putty, einloggen
export PYTHONPATH=/opt/ftc
/opt/ftc/apps/user/877a8522-206c-468f-b81b-3278b09129e3/test.py
das eingegeben
und dann :
': No such file or directory
Was mache ich hier falsch?
Von Anfang an:
Putty, einloggen
export PYTHONPATH=/opt/ftc
/opt/ftc/apps/user/877a8522-206c-468f-b81b-3278b09129e3/test.py
das eingegeben
und dann :
': No such file or directory
Was mache ich hier falsch?
Re: CFW Programmierungsproblem
Du hast die Datei mit dem falschen Lineending abgespeichert. In einem Editor auf Windows kannst du das bestimmt umstellen. Jetzt genügt ein
Raphael
Code: Alles auswählen
dos2unix pathtofile
Re: CFW Programmierungsproblem
Wie sehr man sich doch über eine Fehlermeldung freuen kann!
File "/opt/ftc/apps/user/877a8522-206c-468f-b81b-3278b09129e3/test.py", line 2 0
if not self.txt:
^
TabError: inconsistent use of tabs and spaces in indentation
Was mich etwas verwundert: denn Teil habe ich eigentlich nicht verändert?!
File "/opt/ftc/apps/user/877a8522-206c-468f-b81b-3278b09129e3/test.py", line 2 0
if not self.txt:
^
TabError: inconsistent use of tabs and spaces in indentation
Was mich etwas verwundert: denn Teil habe ich eigentlich nicht verändert?!
Re: CFW Programmierungsproblem
Das passiert leicht mal beim Kopieren. Dann werden die Tabs und Leerzeichen vermischt und PYthon will nunmal entweder nur Tabs oder nur Spaces. Am besten machst du mal vor allen Zeilen die Tabs und Spaces weg und machst neue Tabs in de benötigten Menge rein. Dann sollte es laufen.
Raphael
Raphael
Re: CFW Programmierungsproblem
Hallo,
nach einigen Tagen Pause über Ostern bin ich nun wieder hier.
Was für einen Editor soll ich da hernehmen? Den ganz normalen von Windows?
nach einigen Tagen Pause über Ostern bin ich nun wieder hier.
Was für einen Editor soll ich da hernehmen? Den ganz normalen von Windows?
Re: CFW Programmierungsproblem
Die Antworten kommen ja schneller als die Polizei erlaubt!
Hab mich in Atom ein wenig durch die Einstellungen geklickt.
Ich habe allerdings nichts gefunden, wo Lineending dransteht, weshalb ich denke das ich falsch suche.
Wo kann man das ändern?
Hab mich in Atom ein wenig durch die Einstellungen geklickt.
Ich habe allerdings nichts gefunden, wo Lineending dransteht, weshalb ich denke das ich falsch suche.
Wo kann man das ändern?
Re: CFW Programmierungsproblem
Wenn du eine Datei editierst, steht ganz unten in der Leiste normal CRLF und da klickst du einfach einmal drauf und wählst LF.
Raphael
Raphael
Re: CFW Programmierungsproblem
So, hab die Fehlermeldungen zum Laufen gebracht.
Die Sache mit den Leerzeichen und Tabs habe ich gelöst.
Dann TxtApplication: Ich habe in einem anderen Thread gelesen, dass das nicht mehr aktuell ist und man es mit TouchApplication ersetzt.
Jetzt bekomme ich den Fehler TxtWindow is not defined. Muss ich das zu TouchWindow machen?
Die Sache mit den Leerzeichen und Tabs habe ich gelöst.
Dann TxtApplication: Ich habe in einem anderen Thread gelesen, dass das nicht mehr aktuell ist und man es mit TouchApplication ersetzt.
Jetzt bekomme ich den Fehler TxtWindow is not defined. Muss ich das zu TouchWindow machen?
Re: CFW Programmierungsproblem
Geanu. Das wort Txt Kannst du immer durch Touch ersetzen
Re: CFW Programmierungsproblem
Jetzt bekomme ich eine Fehlermeldung, aus der ich absolut nicht erkennen kann was ich machen soll:
QWidget: Must construct a QApplication before a QPaintDevice
Aborted
QWidget: Must construct a QApplication before a QPaintDevice
Aborted
Re: CFW Programmierungsproblem
Kannst du mir mal deinen Code zeigen? Das klingt danach, dass du ein TouchWindow ohne TouchApplication machst
Re: CFW Programmierungsproblem
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
#
import sys
import ftrobopy # Import the ftrobopy module
from TouchStyle import *
class FtcGuiApplication(TouchApplication):
def __init__(self, args):
TouchApplication.__init__(self, args)
# create the empty main window
w = TouchWindow("Tut_3c")
try:
self.txt = ftrobopy.ftrobopy("127.0.0.1", 65000) # connect to TXT's IO controller
except:
self.txt = None # set TXT to "None" of connection failed
if not self.txt:
# display error of TXT could no be connected
# error messages is centered and may span
# over several lines
err_msg = QLabel("Error connecting IO server") # create the error message label
err_msg.setWordWrap(True) # allow it to wrap over several lines
err_msg.setAlignment(Qt.AlignCenter) # center it horizontally
w.setCentralWidget(err_msg) # attach it to the main output area
else:
# initialization went fine. So the main gui
# is being drawn
button = QPushButton("Toggle 01") # create a button labeled "Toggle O1"
button.clicked.connect(self.on_button_clicked) # connect button to event handler
w.setCentralWidget(button) # attach it to the main output area
# configure all TXT outputs to normal mode
M = [ self.txt.C_OUTPUT, self.txt.C_OUTPUT, self.txt.C_OUTPUT, self.txt.C_OUTPUT ]
I = [ (self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ),
(self.txt.C_SWITCH, self.txt.C_DIGITAL ) ]
self.txt.setConfig(M, I)
self.txt.updateConfig()
# initially switch light on
self.light_on = False # remember that the light is out
self.txt.setPwm(0) # set PWm to 0 (aus)
w.show()
self.exec_()
# an event handler for our button (called a "slot" in qt)
# it will be called whenever the user clicks the button
def on_button_clicked(self):
self.light_on = not self.light_on # change state
if self.light_on: # set output accordingly
self.txt.setPwm(0,512) # PWN=512 means full on
else:
self.txt.setPwm(0,0) # PWM=0 means off
if __name__ == "__main__":
FtcGuiApplication(sys.argv)
Re: CFW Programmierungsproblem
Ich habe den Code etwas angepasst (Tabs richtig gesetzt und eine VBox genutzt):
Jetzt sollte alles laufen.
Code: Alles auswählen
import sys
import ftrobopy # Import the ftrobopy module
from TouchStyle import *
class FtcGuiApplication(TouchApplication):
def __init__(self, args):
TouchApplication.__init__(self, args)
# create the empty main window
self.w = TouchWindow("Tut_3c")
try:
self.txt = ftrobopy.ftrobopy("127.0.0.1", 65000) # connect to TXT's IO controller
except:
self.txt = None # set TXT to "None" of connection failed
if not self.txt:
# display error of TXT could no be connected
# error messages is centered and may span
# over several lines
err_msg = QLabel("Error connecting IO server") # create the error message label
err_msg.setWordWrap(True) # allow it to wrap over several lines
err_msg.setAlignment(Qt.AlignCenter) # center it horizontally
self.w.setCentralWidget(err_msg) # attach it to the main output area
else:
# initialization went fine. So the main gui
# is being drawn
layout = QVBoxLayout()
button = QPushButton("Toggle 01") # create a button labeled "Toggle O1"
button.clicked.connect(self.on_button_clicked) # connect button to event handler
layout.addStretch()
layout.addWidget(button)
layout.addStretch()
self.w.centralWidget.setLayout(layout) # attach it to the main output area
# configure all TXT outputs to normal mode
M = [self.txt.C_OUTPUT, self.txt.C_OUTPUT, self.txt.C_OUTPUT, self.txt.C_OUTPUT]
I = [(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL),
(self.txt.C_SWITCH, self.txt.C_DIGITAL)]
self.txt.setConfig(M, I)
self.txt.updateConfig()
# initially switch light on
self.light_on = False # remember that the light is out
self.txt.setPwm(0, 0) # set PWm to 0 (aus)
self.w.show()
self.exec_()
# an event handler for our button (called a "slot" in qt)
# it will be called whenever the user clicks the button
def on_button_clicked(self):
self.light_on = not self.light_on # change state
if self.light_on: # set output accordingly
self.txt.setPwm(0, 512) # PWN=512 means full on
else:
self.txt.setPwm(0, 0) # PWM=0 means off
if __name__ == "__main__":
FtcGuiApplication(sys.argv)