Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
Pro moddery Minecraftu: Java edice Minecraftu bude bez obfuskace.
Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.
Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
TrueNAS (Wikipedie), tj. open source storage platforma postavená na Linuxu, byl vydán ve verzi 25.10 Goldeye. Přináší NVMe over Fabric (NVMe-oF) nebo OpenZFS 2.3.4.
Byla vydána OpenIndiana 2025.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).
České základní a střední školy čelí alarmujícímu stavu kybernetické bezpečnosti. Až 89 % identifikovaných zranitelností v IT infrastruktuře vzdělávacích institucí dosahuje kritické úrovně, což znamená, že útočníci mohou vzdáleně převzít kontrolu nad klíčovými systémy. Školy navíc často provozují zastaralé technologie, i roky nechávají zařízení bez potřebných aktualizací softwaru a používají k nim pouze výchozí, všeobecně známá
… více »
(ale zjistil jsem, že jakákoli operace s stty a ttyS0 obecně RTS také sama nastaví).Prosím o raduDěkuji
stty -F /dev/ttySx -crtscts), třeba to pomůže.
stty -F /dev/ttyS0 clocal cread -crtscts cs8 -cstopb hup -parenb parodd -brkint -icrnl ignbrk -igncr ignpar imaxbel -inlcr inpck -istrip -iuclc -ixany ixoff -ixon bs0 cr0 ff0 nl0 -ocrnl -ofdel -ofill -olcuc -onlcr -onlret onocr -opost tab0 vt0 -crterase crtkill -ctlecho -echo -echok -echonl -echoprt -icanon -iexten -isig -noflsh -tostop -xcase time 5 min 1
port = serial.Serial("/dev/ttyS0", baudrate=9600, rtscts=0)
Ale jak říkám jestli to rtscts=0 má vliv na stav signálu RTS nevím. Jde o to jestli to není taky nějaká hardwarová záležitost (nějaký USB to serial převodník) který se takto chová. Popřípadě bych ten drátek na chvilku odpojil. A připojil bych ho až když bych chtěl programovat to zařízení (což je asi krajní případ, to odpojení drátku).
.
michals@air:~> stty -aF /dev/ttyS0 speed 19200 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
#include <unistd.h> /* UNIX standard function definitions */
#include <fcntl.h> /* File control definitions */
#include <errno.h> /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
/*
* 'open_port()' - Open serial port 1.
*
* Returns the file descriptor on success or -1 on error.
*/
int
open_port(void)
{
int fd; /* File descriptor for the port */
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
/*
* Could not open the port.
*/
perror("open_port: Unable to open /dev/ttyS0 - ");
}
else
fcntl(fd, F_SETFL, 0);
return (fd);
}
Co sem koukal různě po netu, tak by to RTS mělo být po otevření portu shozené. Není to opravdu nějaká HW anomálie u tebe? On ten port může být klidně nějak poškozený a to RTS může být nahozené stále. Při bootu bych vlezl do BIOSu (čili neběží nic) a šáhnul bych tam měřákem, jaký bude stav té RTS linky.
. Opět problikne RTS signál. Hardwarová anomaile to není, RTS je v nule. Teprve až otevřením portu se přepne (mám to naměřené i osciloskopem -12V -> +12V) do jedničky. Jak jsem psal, druhá řádek kódu mi jej shodí opět do nuly (pokud takový ten řádek kódu bude, samozřejmě) ale to už je pozdě, už tam ta jednička byla.
Teprve až otevřením portu se přepne (mám to naměřené i osciloskopem -12V -> +12V) do jedničky.Pozor - tohle (-12V -> +12V) je přepnutí do log. 0. Možná ne pro tvou elektroniku, která je na to připojená, ale pro ten port určitě. http://rs232.hw.cz/#urovne
Ovšem rtscts mám vypnuté jak už mi zde radiliHardware vs. Software Flow Control
If feasible, it's best to use "hardware" flow control that uses two dedicated "modem control" wires to send the "stop" and "start" signals. Hardware flow control at the serial port works like this: The two pins, RTS (Request to send) and CTS (Clear to send) are used. When the computer is ready to receive date it asserts RTS by putting a positive voltage on the RTS pin (meaning "Request To Send to me").
... snip
if (init_hw) {
176 /*
177 * Initialise the hardware port settings.
178 */
179 uart_change_speed(state, NULL);
180
181 /*
182 * Setup the RTS and DTR signals once the
183 * port is open and ready to respond.
184 */
185 if (info->tty->termios->c_cflag & CBAUD)
186 uart_set_mctrl(port, TIOCM_RTS | TIOCM_DTR);
187 }
... endsnip
Je to kousek souboru drivers/serial/serial_core.c, funkce uart_startup (ta je volána z uart_open tuším) . A vypadá to, podle těch posledních dvou řádků, že za nějakých podmínek (ten if) se skutečně nahodí RTS a DTR. Tudíž by to asi chtělo ten druhý řádek uart_set_mctrl zakomentovat a přeložit jádro a vyzkoušet co to bude dělat.
. Díky moc, kouknu na to (jo, půjdu zítra do práce).
.
(nebrat vážně !) Je to klasický sériový port na motherboardu (ty co mají adresu portu 0x3f8, 0x2f8), nebo je to nějaký USB2RS232 převodník? Ono těch serial driverů je totiž v kernelu více, takže jsi(jsme) sice zakomentoval správný řádek, ale u jiného driveru a možná je to (to nahození RTS) ještě někde jinde. Jdu se podívat do git stromu kernelu.
Ono těch serial driverů je totiž v kernelu více, takže jsi(jsme) sice zakomentoval správný řádek, ale u jiného driveru.AFAIK se to, co je v serial_core, používá pro všechna sériová zařízení, protože je to nezávislé na hardwaru. Což ale nevylučuje ten zbytek věty, tj.:
a možná je to (to nahození RTS) ještě někde jinde
...
if (up->port.flags & UPF_FOURPORT) {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_RTS);
} else {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2);
}
...
Zkusil bych z toho vyházet ty UART_MCR_RTS, tudíž poté by ten kousek kódu vypadal takhle:
...
if (up->port.flags & UPF_FOURPORT) {
serial_outp(up, UART_MCR,
UART_MCR_DTR);
} else {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_OUT2);
}
...
Tento driver je tuším pro klasické porty na motherboardu (čipy 8250/16550 atd.). Ovšem oni si při vlezení do té funkce uloží stav těch DTR,RTS (celý ten stavový registr) a po výlezu ten uložený stav zase vrátí, takže to nastavení RTS musí trvat strašně malou dobu. Ale koukal jsem například do zdrojáku ovladače pro sériové karty Moxa (drivers/char/mxser.c) a tam to RTS nahazují ve funkci mxser_startup() taky, takže je to skutečně nějaká (blbá) featůra kernelu. Nezbude nic jiného a na kabel si dát nějaký přepínač kterým se ta RTS linka přeruší.
(jo kdyby se udělal parametr třeba activate_rts a patřičně by se tam doplnily testy na tento parametr tak to by bylo něco jiného). Spíš mě zaráží, že ve Windows to prý funguje.
Zkrátka je mi líto nutit vás lítat do jader, když si vinou Linuxu nejsem moc jist.O to nejde, já se do toho jádra rád podívám
, protože v naší firmě taky používáme sériový port na různé komunikace, tak mě to zajímalo - abych pak nebyl překvapen
. Ale jak jsem psal výše, po studiu lowlevel ovladačů v jádře (8250.c a mxser.c) je vidět že se to RTS běžně nahazuje při inicializaci (a možná i po otevření portu) a jak psal kolega trekker.dk je to asi dobře, ačkoliv já si myslím, že pokud nechci řízení toku RTS/CTS tak by se ta linka RTS měla nechat při otevření portu napokoji . Je tedy lepší počítat s tím v hw/sw toho protějšku se kterým člověk komunikuje pomocí seriového portu, a/nebo si prolézt ty zdrojáky jádra a ty aktivace RTS při inicializaci (nebo otevření) portu vyházet.
Tudíž by to asi chtělo ten druhý řádek uart_set_mctrl zakomentovat a přeložit jádro a vyzkoušet co to bude dělat.Tudíž by to chtělo zakomentovat oba řádky, neb je to podmínka...
if (neco) {
prikaz;
}
ale ta jednořádková podmínka. Takže tazatel to pochopil, jak se to má zakomentovat
.
Python 2.5.1 (r251:54863, May 1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> port = serial.Serial("COM1")
>>> port._rtsState
1
>>> port.setRTS(0)
>>> port._rtsState
0
>>> port.open()
>>> port._baudrate
9600
>>> port.bytesize
8
>>> port._rtsState
1
>>> port.setRtsCts(0)
>>> port._rtsState
1
>>> port.setRTS(0)
>>> port._rtsState
0
>>>
z něhož je vidět že to RTS nahazují i Windows. Dokonce když se ještě před voláním open to RTS shodí, tak po zavolání open a po vypnutí hw řízení toku dat ( setRtsCts(0) )je opět aktivní a musí se shodit. Ale skusím ještě jeden pokus ve Visual Basicu 6 (no moc se nesmějte
)
). Ale jinak prostředky VB6 (tedy komponenta MSCOMM32.OCX) jsou přímo strašné, tudíž jsem toho mnoho nezjistil. Ale to "bliknutí" opravdu udělá to otevření, nebo konfigurace portu. Je to vidět v těch zdrojácích kernelu, jak jsem psal výše. (linux/drivers/serial/8250.c - funkce autoconfig_irq() a ta je volána tuším zase z funkce serial8250_config_port() a tu zase volá serial_core.c jako jednu z operací portu právě při otvírání nebo inicializaci (mám pocit že něco z toho se volá už při bootu jádra), no ty vazby v kernelu jsou někdy hrůzostrašné, ale zase se, díky tvojemu problému (trochu) vyznám v serial subsystému jádra
)
Jsem z toho už v pr... . Ve Windows ve Visual Studiu to funguje hned. Binárka z VisualStudia nejde v mono 1.9.1 spustit (nedává na System.IO.Ports) takže opět nic.Nu co no. Tak zahodím Python, Linux a asi se půjdu učit C#, jinak nevím, kudy cesty dál.PS.: Ve Visual Studiu je "EnableRTS" option která je defaulně nastavená na False. Musí se povolit na True, aby se to začalo chovat tak jak se mi to chová.
), že ve Windows to udělá to co má, otevře port, pošle data a nic, tak v Monu mi to to RTS sepne. Takže jsem vymazal RTS řádky z 8250.c a zrovna rekompiluji jádro.
.
.
port = serial.Serial("COM1") (ale vyzkoušel jsem ji jen ve Windows). Jinak ale musím souhlasit s trekkerem.dk protože ten HW by měl být navržen trošku jinak, tohle je haluz.
. Existují zařízení (určitý druh 485 převodníků) co se nechají RTS signálem ovládat.
Podle mě celý problém spočívá ve špatném chování toho HW - aktivace a téměř okamžitá deaktivace toho pinu by se skoro nechala považovat za zákmit, který se do toho kabelu může naindukovat i jinak. Je chyba, že to zařízení na tak krátký pulz vůbec reaguje.
Tiskni
Sdílej: