- Kisebb, könnyebb, kitartóbb: szupermobillal hűti a Honor a kedélyeket
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- Honor Magic6 Pro - kör közepén számok
- Felrobbant a Pixel Fold Zack Nelson kezében
- Xiaomi 14T Pro - teljes a család?
- Apple iPhone 16 Pro - rutinvizsga
- OneOdio Focus A6 – Bluetooth 6-ot olcsón
- iPhone topik
- iOS alkalmazások
Új hozzászólás Aktív témák
-
válasz
#68216320 #10800 üzenetére
Az exe futtatása megoldható a
Runtime.getRuntime().exec(...)
hívással. Visszakapsz egy processz-t, aminek a lefutásátwaitFor()
-ral megvárod. Itt van rá egy kis példa program, ami már demonstrálja azt is, hogy hogyan lehet az exe outputját (stdout) megszerezni. (Alternatíva, hogy az exe egy fájlba írja az outputját, amit futás után normál módon fájlként felolvasol.)A parsolásra régebben még azt mondtam volna, hogy kell írni egy parsert, de manapság ez nem divat... Ha tényleg ennyire rögzített a szerkezet, akkor a sorban szereplő négy komponens (csoport, adatnév, értéknév, érték) előbányászható egy reguláris kifejezéssel is, pl. ezzel:
^([^.]+)\.([^.]+)\.([^.]+): *(.*?) *$
Az outputot soronként célszerű feldolgozni, az elején vagy ki kell hagyni fix számú sort, vagy egyszerűen ki kell hagyni azokat, amire nem illeszkedik a regex:
Pattern pattern = Pattern.compile(<a fenti regex>);
while (<van sor>) {
Matcher m = pattern.matcher(<a sor tartalma>);
if (m.find()) {
String sensorGroup = m.group(1);
// ...
String sensorValue = m.group(4);
// DB mentés
}
}Alternatív szervezés: linux-ban oldod meg, amit lehet. A java program nem hajt végre exec-et, helyette a standard input-ot olvassa, és dolgozza fel. Hívni meg valahogy így:
>sensor.exe <opciók> | java -jar sensorprocessor.jar
És az egészet lehet futtatni pl. cron-ból. (Hátránya, hogy a JVM indítás kissé erőforrásigényes, 30 másodpercenként meg pláne.)
Megjegyzések: (1) fejből írtam, a kódot tekintsük pszeudokódnak, (2) a regex pattern-ben a
\
-eket duplikálni kell a Java string konstansban.Szerk: A korábbi válaszokat nem láttam, pár dolog így ismétlés, bocs.
-
Drizzt
nagyúr
válasz
#68216320 #10800 üzenetére
A Linuxos program időzített futtatására használj cront, vagy egyszerűen írj egy bash scriptet, ami tight loopban vár. A kimenetet meg simán irányítsd bele egy fájlba. A Java programban ugyanezt a fájlt nyisd meg ugyanilyen időközönként. Aztán dolgozd fel, s írd ki adatbázisba. Amúgy ahogy az adatod jellegét nézem, kb. egy time series database-ben lenne a legjobb őket tárolni. Erre jó pl. Influxdb. Aztán csinálhatsz rá mindenféle fancy ábrát Grafanával.
Parse-olni ezt egyébként elég egyszerű, soronként végigolvasod, majd line.split("."), a három elemű tömböt meg felhasználod ahogy akarod..
Más: Mi a legjobb, legmélyebb Spring video course amivel találkoztatok? Kéne nekem egy masszívabb. Ha csak fizetős van, az se gond. De örülnék, ha legalább 20 óra körüli lenne és nagyon a részletekbe menő.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Xbox Series X|S
- Épített vízhűtés (nem kompakt) topic
- Redmi Pad Pro - jól sikerült
- Debrecen és környéke adok-veszek-beszélgetek
- E-roller topik
- Milyen videókártyát?
- Kerékpárosok, bringások ide!
- Kedvenc zene a mai napra
- Kisebb, könnyebb, kitartóbb: szupermobillal hűti a Honor a kedélyeket
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 5060 Ti 16GB GAMER termékbeszámítással
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Pro 24GB RAM 512GB SSD macbook garanciával hibátlan működéssel
- Nvidia Quadro M2000/ P2000/ P4000/ RTX 4000/ RTX 5000/ RTX A2000
- Bomba ár! HP ProBook 450 G3 - i5-6G I 16GB I 128SSD I HDMI I 15,6" HD I Cam I W10 I Gar!
- Dell Precision 7560 Workstation i7-11850H 32GB RAM 512GB SSD Nvidia T1200 4GB 1 év garancia
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest