20. april 2016 - 12:42Der er
14 kommentarer og 1 løsning
Microsoft WMI - Delphi 7
HEJ,
Den nyeste trend inden for programmering hedder MICROSOFT WMI - har jeg ladet mig fortælle.
Jeg er blank her, så jeg må spørge:
1: Det kræver at MICROSOFT NET ver X.XXX er installeret på maskinen. ?
1A: Hvilken mimimum version ? (lidt dumt spm - men sikkert seneste version)
1b: Kan denne Microsoft NET-installtion installeres på MASKINER IKKE tilsluttet nettet ? (det kan her diskuteres om fornuften i at installere NET på en ikke NET-tilkoblet maskine - men lad det være i denne omgang..)
1C: Og hvordan gøres dette (installationen) ?
2: For at køre WMI kræver det en aktiv net-forbindelse (en forb. som er "kronisk" på nettet ) ?
Situationen:
Har 2 maskiner. En Internetmaskine og 3 udviklingsmaskiner på intern-net(udv.mask) med en Delphi-7 Enterprise. Havde engang en særdeles sejlivet virus på udv.mask., prøvede mange forskellige ANTI-virus programmer - den blev ikke fjernet. Tog konsekvensen. Reformatterede maskinerne (alle diske). Geninstallerede programmer fra org. diske (det tog kun ca. 1 uge ), og siden har udv.mask IKKE været på WWW-nettet. (Jeg gider ikke det cirkus bare EEEEN gang til.. !!!)
Du behøver mig bekendt ikke .net på maskinen. Du skal blot sikre dig at wmi servicen er oppe at køre og at wmi databasen er intakt. Hvad vil du bruge wmi til?
Der er nogen GURU'er (læs: sikkert kvalificerede fag-idioter), som i en anden ende af verden påstår at NU hedder EMBEDDED programmering WMI og WMI-kald / - funktioner.
Jeg er ikke nødvendigvis enig.
Men ville gerne have lidt råd og vejledning inden jeg EVT: installerer/ aktiverer WMI på udv. mask-erne .
Det det helt konkret drejer sig om er, at vi er en (lille) gruppe på 3 forældre, som gerne vil lære vore resp. unger lidt om digital elektronik. Vi kunne købe et par Arduino'er og lege lidt med dem, men hvorfor ikke bruge den parallelle port (par-port) til det. Arduino'en har 12 effektive I/O-pins- det har en PC osse. (brug port 378H og 379H) Og her kan vi ændre dynamisk - ikke som Ard'en hvor vi skal brænde ny code HVER gang. Delphi kan styre Par-porten ved hjælp af inpout32.dll, og kan lige så meget som Ard'en.
Selvfølgelig skal vi have sikkerhedsdrivere mellem kredsløbene (ellers par-port --> kaput !!! ), men det gælder sgi'sme osse for Ard'en, og så er vi lige vidt.
GURU'erne påstår (hårdnakket! SUK) at adresseing af PAR-porten skal SKE via VMI-kald . Og sådan hænger den sammen ... !
Hvis du 'bare' vil programmere en Arduino så har du hverken brug for WMI eller parallelport! Du smækker den til en USB port og så henter du evt. Arduino egen programmerings IDE fra https://www.arduino.cc/ Så kører det bare der ud af. Du kan ikke bruge Delphi til noget i den sammenhæng. Dog findes der også en Pascal compiler til Arduino som hedder mikroPascal (den bruger jeg selv) men til forskel fra Arduino IDE så koster den penge :-)
PS: pas på med parallelimporterede Arduinoer - det kan være lidt tricky at få dem til at fungere på Windows 7 da M$ har lavet nogle narrestreger med USB driveren der gør at de ikke genkendes. Men der findes en løsning derude.
Vi har købt 2 Arduinoer. Og har ikke tænkt os at købe flere. Fra nu af kopierer vi koldt, kynisk og brutalt fra samme Ard. til PC.
Vi bruger ikke Ard'en overhovedet. Vi laver C(++ ?) koden i bøgerne om til Delphi kode (ungerne skal jo osse lære at programmere) og sætter/henter I/O via Inpout32.dll, fordi vi vil gøre det direkte.
Vi har en ældre 32 bits Pentium (kører XP sp3) X,XXX GHz, som vi bruger til dette formål. Den kan det der og Arduino'er er "forbudt" (vores forbud), mens programmering i Delphi og udvidet brug af inpout32 er tilladt (og velset). (Brænder de porten af - er det bare ærgerligt (for dem!).
Vi har loddet et specielt parallel-kabel sammen til et stik, som passer til et BREDBOARD og på dette B-board kan ungerne eksperimentere, så meget som de vil (med lidt instruktioner i starten - naturligvis).
Det er faktisk morsomt (og ofte tænksomt), at se hvordan ungerne både eksperimenter og udvikler applicationer og kredsløb (og nogen synes det er morsommere end PC-spil).
Men Arduinoerne , de ligger i vore skuffer (og der blir de (til ungerne har lagt sig)) !
OK så har jeg mistforstået noget - embedded programmering er ikke noget der foregår på en PC i min verden :-) Det foregår direkte på et stykke hardware som du så får til at danse efter din pibe. Lige nu sidder jeg og skal have 2 Arduinoer til at snakke sammen via RS485 - det driller lidt, men de er begyndt at forstå hinanden nu.
TAk til Arne V for kommentaren omkring WMI ( kan bruges uden net ).
HP: Bruger du de 2 Serial-porte skulle de 2 ARD'er kunne snakke sammen uden problemer. RS-232 eller Rs-485 er jo bare en måde at overføre data på (jf. OSI modellen level 1).
EMBEDDED programmering er osse hos mig noget som foregår på et Z-80 board , et 8085 board, en Arduino , et ARM-board (Raspberry) eller lignende så hvorfor ham Guru'en (æs: sikkert kvalificeret fag-idiot) absolut påstår at det kan ske på en PC ved jeg ikke . Men lad ham hvile og have sine meninger i fred !
Jeg bruger RS485 af flere grunde. Den kræver kun 3 ledninger. Den kører meget stabilt op til 100 meter Det er nemt at koble flere enheder på da det er en form for parallelbus kan man godt sige
'Protokolen' jeg bruger er min egen opfindelse da jeg så har mulighed for at ændre på den så den passer til mit behov :-) Jeg bruger 14 byte pr. pakke og der har jeg det jeg har behov for med start/stop CRC og 8 data byte
At du bruger RS485 forstår jeg (stabil, hurtigere (osse pr. definition (R2-232C er defineret til Max. 20 KB/sek (det er SANDT!!!)), bruger færre ledninger, mer støjimmun (balanceret)....
Jeg har et eller andet sted i mine Assembler programmer et CRC-16 prgm. liggende . Kan det være interessant ? Skulle være ret (!) nemt at lave om til Delphi eller C(++) eller ??? Ellers er der masser af CR-programmr (Delphi) på nettet (hvor jeg har hentet et par stykker.
Jeg vil starte opledningen i løbet af lørdagen ... (skal finde noget andet i samme anledning), så det er ikke noget besvær.
Jeg har ikke lige behov for yderligere CRC check lige i øjeblikket. Men vil have det in mente hvis behovet opstår.
Lige nu sidder jeg og roder med noget Google Maps opslag hvor jeg ikke lige kan gennemskue at en funktion der kaldes 2 gange med identiske parametre kan give forskellige resultater :-(
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.