Die Suche ergab 40 Treffer

von Muntliger
Samstag 26. Januar 2019, 21:50
Forum: Allgemeine Fragen
Thema: Prioritäten bei Threads
Antworten: 70
Zugriffe: 6364

Re: Prioritäten bei Threads

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 ...
von Muntliger
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.
von Muntliger
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
von Muntliger
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.
von Muntliger
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.
von Muntliger
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 ...
von Muntliger
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 ...
von Muntliger
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 ...
von Muntliger
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.
von Muntliger
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 ...
von Muntliger
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.
von Muntliger
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 ...
von Muntliger
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?
von Muntliger
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
von Muntliger
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
von Muntliger
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 ...
von Muntliger
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 ...
von Muntliger
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.
von Muntliger
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?
von Muntliger
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 ...