Dieser Teil Code macht eine CPU Last von 8%
from OmegaExpansion import onionI2C
from multiprocessing import Process, Queue
import time
read_i2c_queue = Queue()
i2c = onionI2C.OnionI2C()
i2c.write(0x20, [0xFF])
previous_pulse = [False] * 6
while True:
i2cdata = i2c.readBytes(0x20, 0xFF, 1 ...
Die Suche ergab 40 Treffer
- Samstag 26. Januar 2019, 21:50
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
- Samstag 26. Januar 2019, 21:45
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Ich nutze einen PCF8574PN der die Eingänge an den i2c Bus bringt.
- Donnerstag 24. Januar 2019, 20:08
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Was ist denn mit Python Modul mit - functions from the C library gemeint?
https://docs.onion.io/omega2-docs/i2c-p ... odule.html
https://docs.onion.io/omega2-docs/i2c-p ... odule.html
- Donnerstag 24. Januar 2019, 20:02
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Dies ist ein Onion Omega.
Der Gedanke war - wenn jemand was falsch anklemmt verabschieden sich "nur" die i2c Bauteile.
Der Gedanke war - wenn jemand was falsch anklemmt verabschieden sich "nur" die i2c Bauteile.
- Donnerstag 24. Januar 2019, 19:52
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Datenrate - wird nicht schneller als 1 Pulse/Sekunde werden.
Die Pulse sind nie kürzer wie 30ms.
Die Pulse sind nie kürzer wie 30ms.
- Donnerstag 24. Januar 2019, 19:39
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Vielen Dank für eure Tipps - brauchte nun erst mal eine Woche das zu verstehen und anfangen um zu setzen :)
Ich schlag mich noch mit folgendem Problem rum:
Obwohl der Code nur noch zu ca. 20% meine CPU auslastet fehlen mir pro Stunde ca. 1-2 Puls.
Die Pulse generiere ich über eine Siemens SPS ...
Ich schlag mich noch mit folgendem Problem rum:
Obwohl der Code nur noch zu ca. 20% meine CPU auslastet fehlen mir pro Stunde ca. 1-2 Puls.
Die Pulse generiere ich über eine Siemens SPS ...
- Sonntag 20. Januar 2019, 07:33
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from OmegaExpansion import onionI2C
import time
import logging
import logging.handlers
import importlib
import multiprocessing
from multiprocessing import Process, Queue
import threading
import os
import datetime
import configparser
def setup_logger ...
# -*- coding: utf-8 -*-
from OmegaExpansion import onionI2C
import time
import logging
import logging.handlers
import importlib
import multiprocessing
from multiprocessing import Process, Queue
import threading
import os
import datetime
import configparser
def setup_logger ...
- Sonntag 20. Januar 2019, 00:28
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Ok, danke - hab’s getestet.
Hab die Software nun nochmal neu geschrieben.
Ein "hochpriorisierter" Prozess liest die i2c Eingänge und schreibt nur bei einem Puls den Timestamp in ein Queue - der "Normale" Prozess macht dann alles weitere wie loggen und Wert berechnen.
Die Ganzen Config Sachen werde ...
Hab die Software nun nochmal neu geschrieben.
Ein "hochpriorisierter" Prozess liest die i2c Eingänge und schreibt nur bei einem Puls den Timestamp in ein Queue - der "Normale" Prozess macht dann alles weitere wie loggen und Wert berechnen.
Die Ganzen Config Sachen werde ...
- Samstag 19. Januar 2019, 15:15
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
100 bytes hab ich nur zum test genommen.
Aber es werden keine 100 bytes geschrieben.
Aber es werden keine 100 bytes geschrieben.
- Samstag 19. Januar 2019, 14:09
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Hat jemand erfahrung mit dem logging Modul?
das erste File wird normal gefüllt - danach steht jeweils nur noch eine Line im Log File.
def setup_logger(logger_name, log_file):
l = logging.getLogger(logger_name)
l.setLevel(logging.INFO)
fileHandler = logging.handlers.RotatingFileHandler(log_file ...
das erste File wird normal gefüllt - danach steht jeweils nur noch eine Line im Log File.
def setup_logger(logger_name, log_file):
l = logging.getLogger(logger_name)
l.setLevel(logging.INFO)
fileHandler = logging.handlers.RotatingFileHandler(log_file ...
- Freitag 18. Januar 2019, 10:46
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Es geht mir grundlegend drum - wie/wann soll man 2 Threads gleichzeitig laufen lassen?
Ist ja das selbe mit dem Einlesen und weiterverarbeiten.
Einlesen und "Impulslog" - wird so schnell wie möglich ausgeführt.
Verarbeiten und "Wertlog" ist mehr code - wird nur alle 3 Sekunden ausgeführt.
Ist ja das selbe mit dem Einlesen und weiterverarbeiten.
Einlesen und "Impulslog" - wird so schnell wie möglich ausgeführt.
Verarbeiten und "Wertlog" ist mehr code - wird nur alle 3 Sekunden ausgeführt.
- Donnerstag 17. Januar 2019, 20:39
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
die LED blinkt immer - wird aber in der Farbe umgeschalten.
onionGpio.OnionGpio(blau).setOutputDirection(0)
onionGpio.OnionGpio(gruen).setOutputDirection(0)
onionGpio.OnionGpio(rot).setOutputDirection(0)
time.sleep(2)
onionGpio.OnionGpio(blau).setOutputDirection(0)
onionGpio.OnionGpio(gruen ...
onionGpio.OnionGpio(blau).setOutputDirection(0)
onionGpio.OnionGpio(gruen).setOutputDirection(0)
onionGpio.OnionGpio(rot).setOutputDirection(0)
time.sleep(2)
onionGpio.OnionGpio(blau).setOutputDirection(0)
onionGpio.OnionGpio(gruen ...
- Donnerstag 17. Januar 2019, 20:17
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Eine Grundlegende Frage für mein Verständnis:
Es läuft ein Code - nebenbei sollte ein 2ter laufen welcher eine Blinkende LED mit 3 Farben ansteuert.
Wie wird das am besten gelöst?
2 Threads parallel?
Wie werden die Variablen übergeben, funktioniert das ohne Globale?
Es läuft ein Code - nebenbei sollte ein 2ter laufen welcher eine Blinkende LED mit 3 Farben ansteuert.
Wie wird das am besten gelöst?
2 Threads parallel?
Wie werden die Variablen übergeben, funktioniert das ohne Globale?
- Donnerstag 17. Januar 2019, 09:05
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Ok, ich denke da muss ich mir hilfe suchen - und die Software neu machen/machen lassen.
Danke für eure Geduld
Danke für eure Geduld
- Mittwoch 16. Januar 2019, 23:01
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Hab den Code mal Online gestellt - bin für jeden Tipp dankbar.
Jetzt schonmal vielen Dank - ihr habt mir schon sehr weiter geholfen.
So macht das Python - lernen Spaß
http://gofile.me/3n8Ri/tTCe22Xs4
Jetzt schonmal vielen Dank - ihr habt mir schon sehr weiter geholfen.
So macht das Python - lernen Spaß

http://gofile.me/3n8Ri/tTCe22Xs4
- Mittwoch 16. Januar 2019, 22:50
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Das ist im "langsamen" Teil.
Hab's nun so gemacht:
def channel6_active():
global ch6_active_hm
if data.channel6_active and ch6_active_hm:
ch6_active_hm = False
conf_logger.info('channel 6 - ACTIVATE')
if not data.channel6_active and not ch6_active_hm:
ch6_active_hm = True
conf_logger.info ...
Hab's nun so gemacht:
def channel6_active():
global ch6_active_hm
if data.channel6_active and ch6_active_hm:
ch6_active_hm = False
conf_logger.info('channel 6 - ACTIVATE')
if not data.channel6_active and not ch6_active_hm:
ch6_active_hm = True
conf_logger.info ...
- Mittwoch 16. Januar 2019, 22:00
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Solche Funktionen habe ich für jeden Kanal.
def channel3_active():
global ch3_active_hm
if data.channel3_active and ch3_active_hm:
ch3_active_hm = False
conf_logger.info('channel 3 - ACTIVATE')
print('channel 3 - ACTIVATE')
else:
pass
if not data.channel3_active and not ch3_active_hm ...
def channel3_active():
global ch3_active_hm
if data.channel3_active and ch3_active_hm:
ch3_active_hm = False
conf_logger.info('channel 3 - ACTIVATE')
print('channel 3 - ACTIVATE')
else:
pass
if not data.channel3_active and not ch3_active_hm ...
- Mittwoch 16. Januar 2019, 21:19
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
ist doch noch 12% ausgelastet - aber sieht aus als wäre es schon weniger.
- Mittwoch 16. Januar 2019, 21:06
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Ich hab gerade nochmal all meine Funktionen nach dem "is True" und "is False" durchsucht und richtig gestellt.
Nun ist die CPU statt 40% nur noch 1-2% belastet ... kann das soviel ausmachen?
Nun ist die CPU statt 40% nur noch 1-2% belastet ... kann das soviel ausmachen?
- Dienstag 15. Januar 2019, 08:56
- Forum: Allgemeine Fragen
- Thema: Prioritäten bei Threads
- Antworten: 70
- Zugriffe: 6364
Re: Prioritäten bei Threads
Und wie im Verhältnis zu unseren Ausführungen würdest du das print einordnen?
Ok ich verstehe - hab das mal mit diesem Beispiel getestet:
from time import time
start = time()
for i in range(10000):
print(i)
print('run time for printing:' + str(time() - start))
start = time()
for _ in range ...