Utvecklar ett eget program i vb.net för att styra mina enheter.
Enda problemet är att det verkar inte gå att starta/stänga av flera samtidigt, eller direkt efter varrandra?
Exempelvis om man skriver:
devTurnOn(1)
devTurnOn(2)
så händer ingenting med någon utav dem.
skriver jag istället:
devTurnOn(1)
Application.DoEvents
devTurnOn(2)
så fungerar det heller inte.
Enda sättet som verkar fungera är att vänta tills funktionen är klar genom att uppskatta hur lång tid den tar på sig, och bygga en timerfunktion.
Public Sub TurnOn()
dim Return as Boolean = False
Return = devTurnOn(2)
Wait(50)
Return = devTurnOn(3)
Wait(50)
Return = devTurnOn(4)
End Sub
Public Function Wait(ByVal Time As Integer) As String
For i As Integer = 1 To Time * 1000
Application.DoEvents()
Next
Wait = ""
End Function
Någon som har något annat förslag?
[vb.net] Starta/Stänga av enheter samtidigt?
Moderator: Telldus
[vb.net] Starta/Stänga av enheter samtidigt?
Cheerz, Denna
NewSide System Sweden
http://newside.awardspace.com
NewSide System Sweden
http://newside.awardspace.com
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
devTurnOn (och de andra funktionerna) är non-blocking vilket betyder att de returnerar innan TellSticken har sänt klart. Detta för att förhindra att programmet i datorn "fryser" när den ska kommunicera med TellStick. En paus på 500 ms räcker gott mellan anropen!
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Använd med fördel Thread.Sleep(500) för 500ms så får du något som sover lite mer som du tänkt.
Om du inte vill att applikationen skall stanna medans du kör din sleep (tänker på att du kör DoEvents) så flytta över koden till en BackgroundWorker så lämnas huvudtråden (formuläret etc.) fri. Dock får de ju vissa andra konsekvenser som crossthread-calls som du får lösa med Invoke.
Om du inte vill att applikationen skall stanna medans du kör din sleep (tänker på att du kör DoEvents) så flytta över koden till en BackgroundWorker så lämnas huvudtråden (formuläret etc.) fri. Dock får de ju vissa andra konsekvenser som crossthread-calls som du får lösa med Invoke.