Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
uint8_t search_sensors(void) { uint8_t i; uint8_t id[OW_ROMCODE_SIZE]; uint8_t diff; bool akva1, akva2, lednice, mistnost; while(1) { //writestr("+4 NACITAM SENZORY"); //lfcr(); m_delay_ms(250); nSensors = 0; akva1_id = -1; akva2_id = -1; lednice_id = -1; mistnost_id = -1; for(uint8_t iN = 0; iN<MAXSENSORS; iN++) { // nemá vliv na chování for(uint8_t iN2 = 0; iN2<OW_ROMCODE_SIZE; iN2++) { gSensorIDs[iN][iN2] = 0; } } for(diff = OW_SEARCH_FIRST; diff != OW_LAST_DEVICE && nSensors < MAXSENSORS; ) { DS18X20_find_sensor( &diff, &id[0] ); if( diff == OW_PRESENCE_ERR ) break; if( diff == OW_DATA_ERR ) break; akva1 = true; akva2 = true; lednice = true; mistnost = true; for (i=0;i<OW_ROMCODE_SIZE;i++) { gSensorIDs[nSensors][i]=id[i]; if(akva1) { eeprom_busy_wait(); if( gSensorIDs[nSensors][i] != eeprom_read_byte((uint8_t*)(EEPROM_AKVA1_SENSOR+i)) ) akva1 = false; } if(akva2) { eeprom_busy_wait(); if( gSensorIDs[nSensors][i] != eeprom_read_byte((uint8_t*)(EEPROM_AKVA2_SENSOR+i)) ) akva2 = false; } if(lednice) { eeprom_busy_wait(); if( gSensorIDs[nSensors][i] != eeprom_read_byte((uint8_t*)(EEPROM_LEDNICE_SENSOR+i)) ) lednice = false; } if(mistnost) { eeprom_busy_wait(); if( gSensorIDs[nSensors][i] != eeprom_read_byte((uint8_t*)(EEPROM_MISTNOST_SENSOR+i)) ) mistnost = false; } } if(akva1 && !akva2 && !lednice && !mistnost) { akva1_id = nSensors; leds_add(port_led_akva1); } if(!akva1 && akva2 && !lednice && !mistnost) { akva2_id = nSensors; leds_add(port_led_akva2); } if(!akva1 && !akva2 && lednice && !mistnost) { lednice_id = nSensors; leds_add(port_led_lednice); } if(!akva1 && !akva2 && !lednice && mistnost) { mistnost_id = nSensors; } nSensors++; } if( nSensors ) return nSensors; leds_search(); leds_blink(LED_BLINK_FAST_INTERVAL); m_delay_s(1); } } void vypsat_senzory() { nSensors = search_sensors(); for ( int i=0; i<nSensors; i++ ) { writestr("#"); writestr_integer((int) i); if(i == akva1_id) writestr(":AKVA1:"); if(i == akva2_id) writestr(":AKVA2:"); if(i == lednice_id) writestr(":LEDNICE:"); if(i == mistnost_id) writestr(":MISTNOST:"); writestr(" "); writetemp(getTemp(i)); lfcr(); } } void uloz_senzor( uint8_t *id, uint8_t kam ) { for (int i=0; i<OW_ROMCODE_SIZE; i++) { eeprom_busy_wait(); eeprom_write_byte((uint8_t*)(kam+i),id[i]); } } void nastav_senzor(char cilselekt) { uint8_t sensT = (uint8_t)(rx_buffer[0]-48); writestr_integer((int) sensT); lfcr(); if ( sensT < nSensors ) { if(cilselekt == '1') uloz_senzor(&gSensorIDs[sensT][0], EEPROM_AKVA1_SENSOR); else if(cilselekt == '2') uloz_senzor(&gSensorIDs[sensT][0], EEPROM_AKVA2_SENSOR); else if(cilselekt == 'l') uloz_senzor(&gSensorIDs[sensT][0], EEPROM_LEDNICE_SENSOR); else if(cilselekt == 'm') uloz_senzor(&gSensorIDs[sensT][0], EEPROM_MISTNOST_SENSOR); else errorWrite(1); writestr("+1 OK"); lfcr(); nSensors = search_sensors(); vypsat_senzory(); } else errorWrite(1); } void eeprog_vstup_podprogram() { if(citac_ee > 0) { for (uint8_t i=RX_BUFFER_SIZE; i>0; i--) rx_buffer[i]=0; rs232enter=0; rs232ready=true; while(1) { if(rs232enter) { rs232ready=false; if(cmdtest('L','S',0)) vypsat_senzory(); else if(cmdtest('S','A',1)) nastav_senzor('1'); else if(cmdtest('S','B',1)) nastav_senzor('2'); else if(cmdtest('S','L',1)) nastav_senzor('l'); else if(cmdtest('S','M',1)) nastav_senzor('m'); else if(cmdtest('E','Q',0)) { writestr("+1 OK"); lfcr(); break; } else errorWrite(3); for (uint8_t i=RX_BUFFER_SIZE; i>0; i--) rx_buffer[i]=0; rs232enter=0; rs232ready=true; } } } else errorWrite(4); }Samotné search_sensors(void) funguje dobře, opravdu porovnává všechny bajty identifikace senzoru vs. uložená identifikace v eeprom. Problém nastává, pokud chci uložit nový senzor. Všechny se ukládají dobře, kromě 1.(senzor #0). Pokud se jednoduše snažím uložit senzor 0 jako cokoliv, tak je první bajt vždy 0x00. Takhle vypadá část eepromky: 00FBFA97020000A728D6F797020000B72820BA9702000072. Správně ale má být 28FBFA97020000A728D6F797020000B72820BA9702000072. Co mám špatně?
Řešení dotazu:
Tiskni
Sdílej: