ASP.NET Serial Kommunikation
Hej er der nogen der har en ide til hvordan man kan lave en lytte funktion i ASP.NET.Jeg har pt lavet en side som kan sende en RS232 kode (serial kode) og vente på svar fra samme boks.
Dette virker perfekt.
Mit problem er at jeg egentlig gerne vil have koden til at loope sig selv, sådan at programmet hele tiden looper efter om der bliver skrevet noget til den på serial porten. Sådan at jeg kan få websiden til at opdatere når der kommer svar og hvad svar der kommer.
Nedenfor er det jeg har lavet som virker til at kunne sende en kode og derefter modtage et svar.
Envidere har jeg her et link til et script jeg har lavet i VBS. Som gør nogenlunde det jeg gerne ville have i ASP.NET.
http://download.phisk.net/vbs.txt
<code>
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace = "System" %>
<%@ Import Namespace = "System.IO.Ports" %>
<script runat="server">
Dim WithEvents serialPort As New IO.Ports.SerialPort
Private Sub Page_Load()
With serialPort
.PortName = "COM3"
.BaudRate = "19200"
.Parity = IO.Ports.Parity.None
.DataBits = "8"
.StopBits = IO.Ports.StopBits.One
End With
End Sub
Private Sub OpenPort()
If Not (serialPort.IsOpen = True) Then
serialPort.Open()
End If
End Sub
Private Sub ClosePort()
If Not (serialPort.IsOpen = False) Then
serialPort.Close()
End If
End Sub
Private Sub WriteCommand(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim Button As Button = CType(sender, Button)
Dim strButton As String = Button.ID
Dim strText As String
Dim strCommand As String
Select Case strButton
Case "Button0"
strText = "Power Off"
strCommand = "<0100232132000--->"
Case "Button1"
strText = "Vol Down"
strCommand = "<0100232132001--->"
Case "Button2"
strText = "Vol Up"
strCommand = "<0100232132002--->"
Case "Button3"
strText = "Mute"
strCommand = "<0100232132003--->"
End Select
labelText.Text = strText
labelCommand.Text = strCommand
OpenPort()
serialPort.Write(strCommand & vbCr)
ReadCommand()
End Sub
Private Sub ReadCommand()
Dim strRespons As String = serialPort.ReadTo(">")
labelRespons.Text = strRespons & ">"
ClosePort()
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="Button0" OnClick="WriteCommand" Text="Power Off" runat="server" />
<asp:Button id="Button1" OnClick="WriteCommand" Text="Vol Down" runat="server" />
<asp:Button id="Button2" OnClick="WriteCommand" Text="Vol Up" runat="server" />
<asp:Button id="Button3" OnClick="WriteCommand" Text="Mute" runat="server" />
<br /><br />
<asp:Label id="labelText" runat="server" /><br />
<asp:Label id="labelCommand" runat="server" />
<br /><br />
<asp:Label id="labelRespons" runat="server" /><br />
</form>
</body>
</html>
</code>