Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.
Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.
Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.
Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.
Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.
Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.
Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »echo ahoj > /dev/ttyS2 tak potom jinde v konsoli dam cat /dev/ttyS2. Ale ten cat vypisuje porad dokola prazdne radky a obcas se tam objevi to ahoj i kdyz jsem ho poslal jen jednou. Myslim si ze mam neco blbe v kernelu ale netusim co. Nevite nekdo co s tim? Dik Vojta
cat /dev/ttyS2 se zapnou vsechny ale ja bych je chtel zapnout zvlast. Diky Vojta
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char **argv) {
int fd;
int iFlags = TIOCM_DTR;
fd = open("/dev/ttyS0", O_RDWR | O_SYNC);
ioctl(fd, TIOCMBIC, &iFlags); /* Vynuluje DTR */
ioctl(fd, TIOCMBIS, &iFlags); /* Nastavi DTR */
close(fd);
return 0;
}
Proste aby to umelo nastavovat vystupy seriaku. Diky moc Vojta
staci ti jen toto
http://www.linuxsoft.cz/article.php?id_article=387
usage: setdtrrts.py [options]
options:
--version show program's version number and exit
-h, --help show this help message and exit
-d DEVICE, --device=DEVICE
serial port device (default /dev/ttyS0)
-R, --RTS set RTS
-D, --DTR set DTR
-t DELAY, --time=DELAY
time in seconds to quit (default 5)
Takže například
setdtrrts.py -d /dev/ttyS1 --RTS --DTR -t 3Zapne obě stavové linky u portu /dev/ttyS1 na dobu tří sekund. A tady je ten program:
#!/usr/bin/env python
import tty, os, fcntl, time, struct
from optparse import OptionParser
usage = "usage: %prog [options]"
parser = OptionParser(usage, version="%prog version 0.1")
parser.add_option("-d", "--device", action = "store",
default = "/dev/ttyS0", dest="device", help="serial port device (default /dev/ttyS0)")
parser.add_option("-R", "--RTS", action = "store_true",
default = False, dest="rts", help="set RTS")
parser.add_option("-D", "--DTR", action = "store_true",
default = False, dest="dtr", help="set DTR")
parser.add_option("-t", "--time", action = "store", type = "float",
default = 5, dest="delay", help="time in seconds to quit (default 5)")
(options, args) = parser.parse_args()
TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)
fd = os.open(options.device, os.O_RDWR | os.O_SYNC)
if options.dtr:
print "setting DTR"
fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_DTR_str)
else:
print "clearing DTR"
fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_DTR_str)
if options.rts:
print "setting RTS"
fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_RTS_str)
else:
print "clearing RTS"
fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_RTS_str)
time.sleep(options.delay)
... a měl bys začít programovat v nějakém kloudném programovacím jazyce, který není odkázaný na volání externích programů.
. Ten docela ovladam(alespon si to myslim). Ale v linuxu co napriklad? C nebo Python? C mi prijde dost tezky. Dik za pomoc Vojta
). Dik moc Vojta
#!/usr/bin/env python
import tty, os, fcntl, time, struct, subprocess
programname = 'date'
delay = 3
TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)
fd = os.open('/dev/ttyS0', os.O_RDWR | os.O_SYNC)
while True:
print "setting DTR"
fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_DTR_str)
print "setting RTS"
fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_RTS_str)
subprocess.Popen([programname])
time.sleep(delay)
print "clearing DTR"
fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_DTR_str)
print "clearing RTS"
fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_RTS_str)
subprocess.Popen([programname])
time.sleep(delay)
#!/usr/bin/env python
import tty, os, fcntl, time, struct, subprocess
def runcommand(command):
process = subprocess.Popen([command])
process.wait()
def wait_period(period):
sec = time.time()
time_to_wait = period - sec % period
print "Waiting for %g seconds" %time_to_wait
time.sleep(time_to_wait)
class Relay:
def __init__(self, devpath, initstate = True):
self.fd = os.open(devpath, os.O_RDWR | os.O_SYNC)
self.TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
self.TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)
self.state = initstate
self.switch(self.state)
def switch(self, state):
if state:
print "setting DTR"
fcntl.ioctl(self.fd, tty.TIOCMBIS, self.TIOCM_DTR_str)
print "setting RTS"
fcntl.ioctl(self.fd, tty.TIOCMBIS, self.TIOCM_RTS_str)
else:
print "clearing DTR"
fcntl.ioctl(self.fd, tty.TIOCMBIC, self.TIOCM_DTR_str)
print "clearing RTS"
fcntl.ioctl(self.fd, tty.TIOCMBIC, self.TIOCM_RTS_str)
self.state = state
def negate(self):
self.state = not self.state #negate
self.switch(self.state)
rele = Relay('/dev/ttyS0', initstate = False)
while True:
wait_period(3)
rele.negate()
runcommand('date')
Je to trochu lepší verze než ta předchozí. Jednak je to objektové a pak to časování je udělané tak, že se systematicky nepředbíhá ani nezpožďuje. Navíc se čas počítá absolutně, takže lze předem říct, že se kamery budou přepínat vždy v celou minutu a v půl.
Tiskni
Sdílej: