COM poort aanspreken via Visual Basic Scripting

Door Tim Quax op 02 september 2009
Als je een simpele manier zoekt om de COM poort te gebruiken voor watdanook, dan is VBS de scripttaal die je zoekt. Enige vereiste hieraan is dat je de Comport module van ActiveXperts installeert. Ik heb dit script gemaakt voor de Koffie PC mod en het Volautomatische Computergestuurde Koffiezetapparaat.

Als eerst moet je de module aanspreken en initialiseren:

Set objComport = CreateObject( "ActiveXperts.Comport" )

objComport.Device = "COM1"

Vervolgens kan je ermee doen wat je wil. Ik heb een prompt gemaakt zodat je een hele range aan zooi kan doen met de COM poort. Dat doe je zo:

promptInput=inputbox("Hey dude, je kan de volgende opties kiezen:" &
vbCrLf & "" & vbCrLf & "1. Koffie" & vbCrLf & "2. Taart")

Uiteraard kan dat veel simpeler als je de keuzes niet onder elkaar laat zien. Hoe je de interface maakt mag je zelf weten. Met promptInput word de input opgevangen. De keuzes die mogelijk kunnen worden ingetikt kan je met een switch opvangen:

select case promptInput


' Functie nr. 1 - Koffie

case "koffie"

' doe hier iets

' doe hier iets


' Functie nr. 2 - Taart

case "taart"

' doe hier iets

' doe hier iets


' Geen functie.

case Else

meh=msgbox("Dat is niet 1 van de functies.", vbcritical, "Functie: geen")


end select

Met een case Else zodat je de excepties kan opvangen. Nu moet je alleen nog weten hoe je de COM poort zelf kan aanspreken. Het voorbeeld hieronder spreekt de COM poort aan en houd de verbinding in stand voor 10 seconden:

objComport.Open ()

objComport.Sleep 100000

objComport.Close ()

Ik gebruik in dit geval Sleep, omdat mijn implementatie niets verders vereist (koffiezetapparaat aanspreken, ivm het achterliggende relais gebruik ik slechts de stroom aan/uit). Voor meer informatie over de ActiveXperts Comport module en de plek waar je het kan downloaden is hier te vinden.



Voor het gemak heb ik mijn koffiezet script hieronder gezet, in plaats van het voorbeeld script hierboven. Je kan dan het totale plaatje zien van een correcte implementatie:

Set objComport = CreateObject( "ActiveXperts.Comport" )

objComport.Device = "COM1"



var1=inputbox("Hey dude, je kan de volgende opties kiezen:" & vbCrLf & "" & vbCrLf & "1. koffie" & vbCrLf & "2. stop" & vbCrLf & "3. start")


select case var1


' Functie nr. 1

case "koffie"

objComport.Open ()

objComport.Sleep 360000

objComport.Close ()


' Functie nr. 2

case "stop"

objComport.Close ()


' Functie nr. 3

case "start"

var2=inputbox("typ de ms in hoelang ie moet lopen")

objComport.Open ()

objComport.Sleep var2

objComport.Close ()


' Functie nr. 4

case "wekker"

var4=msgbox("Deze functie is nog niet klaar.", vbinformation, "Functie: Wekker")


' Functie nr. 5

case "about"

var5=msgbox("Dit script is gemaakt door ONS! Ha. Ha. Ha."" & vbCrLf & "" & vbCrLf & "De functies zijn:" & vbCrLf & "" & vbCrLf & "1. Koffie" & vbCrLf & "2. stop" & vbCrLf & "3. start" & vbCrLf & "4. Wekker" & vbCrLf & "5. Help")


' Geen functie.

case Else

var3=msgbox("Dat is niet 1 van de functies.", vbcritical, "Functie: geen")


end select




Reageer op dit artikel







Voer hier de code in: