Avatar billede spinner Nybegynder
14. februar 2001 - 21:25 Der er 8 kommentarer og
1 løsning

Component

Hejsa,

jeg ønsker at lave en ActiveX Component (til ASP). Denne komponent skal kommunikere med en enhed jeg har tilsluttet den serielle port på webserveren, og returnere et svar til ASP siden.

Er der nogen der kan hjælpe mig med hvordan jeg kommunikerer med enheden på den serielle port? MS Comm Control\'en kan selvfølgelig ikke bruges, så der skal nok bruges nogle API-kald.

Anyone?

På forhånd tak

\\\\Spinner.
Avatar billede nolle_k Nybegynder
15. februar 2001 - 11:41 #1
Hvorfor kan MS Comm Controllen ikke bruges???
Avatar billede spinner Nybegynder
15. februar 2001 - 11:57 #2
nolle_k> Det kan godt være jeg har misforstået det, men umiddelbart kan MS Comm Controllen ikke bruges, fordi den er en Component - Og når jeg kigger i VB kan jeg kun tilføje Referencer til class\'es (Andre DLL\'er m.m.)

\\\\Spinner
Avatar billede spinner Nybegynder
15. februar 2001 - 11:59 #3
...lidt ligesom man ikke kan bruge Microsoft Internet Control, men skal kalde WinSock direkte.

Så det er modulet/DLL\'en som CommCtl benytter jeg har brug for...

\\\\Spinner.
Avatar billede nolle_k Nybegynder
15. februar 2001 - 12:29 #4

SÅ snakker vi om en Active X Dll!!
Hvis du tilføjer en form til dll\'en kan det lade sig gøre at sætte en Comm control ind på denne!!

Herefter kan du bare referere denne kontrol fra klassen f.eks ved
Form1.MSComm1.CommPort = 2
Hvis du gør sådan skal du fange alle events i formen!


HVis du gør følgende

\'Public
Dim WithEvents CommObj as MSComm

class_Initialize()
  Set CommObj = Form1.MSComm1

skal du fange alle events i klassen!

Husk at sætte CommObj = Nothing i Terminate for klassen!

//Nolle_K
Avatar billede nolle_k Nybegynder
15. februar 2001 - 12:30 #5
Jeg foretrækker den sidste løsning hvilket bevirker, at formen bare er der og egentlig ikke har nogen efftekt ud over at indeholde Comm kontrollen!!
Avatar billede spinner Nybegynder
15. februar 2001 - 12:50 #6
nolle_k> Ok, det vil jeg da prøve :o)

Har lige et lille Q - Hvad er det Unattended Execution betyder/gør?

For hvis ikke det er slået fra kan jeg ikke tilføje en form.

\\\\Spinner.
Avatar billede nolle_k Nybegynder
15. februar 2001 - 12:58 #7
Det betyder bare at brugeren ikke blander sig i det der sker!! Det tror VB jo selvfølgelig at brugeren skal da der tilføjes en Form! Det har noget at gøre med at hvis denne er sat så er komponenten Thread Safe og noget i den retning! Er ikke helt klar over, hvad det har af betydning!!

Jeg benytter samme metode bare i forbindelse med en timer! Det funger fint for mig!

//Nolle_K
Avatar billede spinner Nybegynder
15. februar 2001 - 23:40 #8
nolle_k> Som du kan er se er pointene allerede dine :o)

Jeg har bare eet spørgsmål mere jeg håber du vil hjælpe med:

Du siger du bruger Timer-objektet - hvilket vil sige du et sted i din kode må vente på en Event.

Hvordan halt\'er du din kode, så den venter på Event\'en uden at din Function afslutter, eller brug af DoEvents (-som skulle være CPU-resource-spild).

Scenario:

ASP siden spørger efter et nummer til componenten.
Componenten spørger på com-porten.
Componenten venter på svar.
Componenten returnerer svaret.

Alt i samme kald fra ASP-siden. (x = objMyClass.GetInfo(\"Start\")

Fuktionen skal så se nogenlunde således ud eller hvad?:

Public Function GetInfo(RegType as String) As String
  CmdLine = \"REQ:\" & RegType & chr(13)
  CommObj.Output = CmdLine
  \'Her venter vi på svar - hvordan?
  GetInfo = CommObj.Input
End Function

Ved godt at syntax og diverse kald ikke er 100%. Det er efter hovedet lidt sent på aftenen efter en lang dag :o)

Håber du forstår hvad jeg mener, og kan hjælpe mig. Du får gerne lidt flere point :o)

\\\\Spinner.
Avatar billede nolle_k Nybegynder
16. februar 2001 - 09:03 #9
I dit tilfælde er du nødt til at benytte DoEvents og så gemme resultatet i en Global variable og så returnerer til ASP siden!!!

Med mindre du kan fange et event fra objMyClass på ASP siden!! Den kan man godt men det er lidt en anden side af sagen!!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester