MSComm Help
MSComm Help
MSComm Help
MSComm Help
MSComm Help
MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help
MSComm Help MSComm Help
MSComm Help
Go Back  Xtreme Visual Basic Talk > > > MSComm Help


Reply
 
Thread Tools Display Modes
  #1  
Old 12-30-2008, 12:42 AM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default MSComm Help


I am trying to write a program for the MSR206. It has a very in depth programming manual (http://www.ute.com/files/manuals/36_msr206progman.pdf). I just can't figure out how to connect to the device. I know it's on comm port 5, it uses 9600 bps, 8 data bits, no parity, 1 stop bit, and no flow control (as it says in the device manager).

I need help making a program to auto find which comm port it's on, connecting to it, being able to send data to it and receive it's responses, then how to close the connection.

By the way I am very new to VB.

I know there were a couple other articles on comm ports but I still couldn't get it to work, and I didn't understand much of what was being said ;( .
Reply With Quote
  #2  
Old 12-30-2008, 11:41 AM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Really, no one can help? It's not that hard, it's just that I don't know VB. I figured somebody on here was smart enough to know how to do it.
Reply With Quote
  #3  
Old 01-02-2009, 04:53 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Please, can anyone help me. I really need this to work. I can't figure it out. I need to send hex code <esc> 82, and im trying MSComm1.Output = "\x082" and MSComm1.Output = "\x82" but nothing works.
Reply With Quote
  #4  
Old 01-02-2009, 07:48 PM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

Convert the hex to ASCII before sending. Try this:
Code:
MSComm1.Output = Chr$(27) & Chr$(&H82) 'Esc (1B Hex) + 82 Hex
That should turn all LEDs on. The link to the manual is down, but I found the manual in Google's Cache.
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').
Reply With Quote
  #5  
Old 01-04-2009, 12:57 AM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by Cerian Knight View Post
Convert the hex to ASCII before sending. Try this:
Code:
MSComm1.Output = Chr$(27) & Chr$(&H82) 'Esc (1B Hex) + 82 Hex
That should turn all LEDs on. The link to the manual is down, but I found the manual in Google's Cache.
Dude, you have no idea how much I appreciate this. I wouldn't have been able to figure this out on my own, thank god there are smart people like you! Thank you so much.

Last edited by devilsson2010; 01-04-2009 at 06:52 PM.
Reply With Quote
  #6  
Old 01-04-2009, 06:52 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

On that note, if I did this:
Code:
MSComm1.Output = ESC & Chr$(&H65)
Which checks if it's working, the manual says it should reply with:
<ESC> y [1B] [79]

So what should I do to check it? I tried the following:
Code:
If (MSComm1.Input = Chr$(27) & Chr$(&H79)) Then
Text1.Text = "It's Working!"
End If
But it didn't work. It wouldn't show the response in the text box either if I did:
Code:
Text1.Text = MSComm1.Input
Reply With Quote
  #7  
Old 01-05-2009, 08:40 AM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

The PDF link is working again (URL again without trailing paren):
http://www.ute.com/files/manuals/36_msr206progman.pdf
Quote:
Originally Posted by devilsson2010 View Post
On that note, if I did this:
Code:
MSComm1.Output = ESC & Chr$(&H65)
ESC is a variable/constant you declared to hold Chr$(27)?
Quote:
Which checks if it's working, the manual says it should reply with:
<ESC> y [1B] [79]
Which is Chr$(27) & "y" & Chr$(&H1B) & Chr$(&H79)
Quote:
So what should I do to check it? I tried the following:
Code:
If (MSComm1.Input = Chr$(27) & Chr$(&H79)) Then
Text1.Text = "It's Working!"
End If
But it didn't work. It wouldn't show the response in the text box either if I did:
Code:
Text1.Text = MSComm1.Input
Since the responce is asynchronous to code execution, you need to code a delay to wait for it. Or better yet, use the OnComm event to build the response as it comes in. Chew on this code I've adapted from MSDN for a while:
Code:
Private Sub Form_Load()
MSComm1.RThreshold = 1 'Trigger OnComm on 1 or more chars received
MSComm1.PortOpen = True

'setup for &H65
MSComm1.Tag = &H65 'Tag is used for extra data... I'm using it to hold the command for future reference
'MSComm1.RThreshold = 2 'Command &H65 would return 2 chars, may be hard to use so don't uncomment this line yet
MSComm1.Output = Chr$(27) & Chr$(&H65)

End Sub

Private Sub MSComm1_OnComm()
   Dim strBuffer As String
   Dim i As Long
   Select Case MSComm1.CommEvent
   ' Handle each event or error by placing code below each case statement
   
   ' Events
      Case comEvReceive   ' Received RThreshold # chars.
      
         'get one or more characters
         'There is NO WAY to predict how many received characters triggered the event!!!
         'unless you use RThreshold (>0)... which you would have to adjust per command sent
         strBuffer = strBuffer & MSComm1.Input 'so we must concatenate them to a buffer
         If MSComm1.Tag = "" Then
            MsgBox "Unexpected Data Received", vbOKOnly
         ElseIf Len(strBuffer) = 2 And MSComm1.Tag = &H65 Then 'handler for command &H65
            'process buffer example
            Text1.Text = "" 'clear textbox
            For i = 1 To 2
                Text1.Text = Text1.Text & Hex$(Asc(Mid$(strBuffer, I, 1))) & " " 'dump buffer to textbox in hex
            Next
            strBuffer = "" 'must empty buffer when done processing it
            MSComm1.Tag = "" 'clear flag
         End If
      'Case comEvCD   ' Change in the CD line.
      'Case comEvCTS   ' Change in the CTS line.
      'Case comEvDSR   ' Change in the DSR line.
      'Case comEvRing   ' Change in the Ring Indicator.
      'Case comEvSend   ' There are SThreshold number of characters in the transmit buffer.
      'Case comEvEOF   ' An EOF charater was found in the input stream
   
   ' Errors
      'Case comEventBreak   ' A Break was received.
      'Case comEventFrame   ' Framing Error
      'Case comEventOverrun   ' Data Lost.
      'Case comEventRxOver   ' Receive buffer overflow.
      'Case comEventRxParity   ' Parity Error.
      'Case comEventTxFull   ' Transmit buffer full.
      'Case comEventDCB   ' Unexpected error retrieving DCB]

   End Select
End Sub
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').

Last edited by Cerian Knight; 01-05-2009 at 02:06 PM. Reason: Fixed RThreshold, response size and output format
Reply With Quote
  #8  
Old 01-05-2009, 09:25 AM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by Cerian Knight View Post
The PDF link is working again (URL aging without trailing paren):
http://www.ute.com/files/manuals/36_msr206progman.pdf

ESC is a variable/constant you declared to hold Chr$(27)?
Oh yea, I figured it would be in the beginning of every command so I put it into a variable.

Quote:
Originally Posted by Cerian Knight View Post
Which is Chr$(27) & "y" & Chr$(&H1B) & Chr$(&H79)
I think it was just giving the hex value of it just for convenience.

Quote:
Originally Posted by Cerian Knight View Post
Since the responce is asynchronous to code execution, you need to code a delay to wait for it. Or better yet, use the OnComm event to build the response as it comes in. Chew on this code I've adapted from MSDN for a while:
Code:
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.Tag = &H65 'Tag is used for extra data... I'm using it to hold the command for future reference
'MSComm1.RThreshold = 4 'Command &H65 would return 4 chars, may be hard to use so don't uncomment this line yet
MSComm1.Output = Chr$(27) & Chr$(&H65)
End Sub

Private Sub MSComm1_OnComm()
   Dim strBuffer As String
   Dim i As Long
   Select Case MSComm1.CommEvent
   ' Handle each event or error by placing code below each case statement
   
   ' Events
      Case comEvReceive   ' Received RThreshold # chars.
      
         'get one or more characters
         'There is NO WAY to predict how many received characters triggered the event!!!
         'unless you use RThreshold (>0)... which you would have to adjust per command sent
         strBuffer = strBuffer & MSComm1.Input 'so we must concatenate them to a buffer
         If MSComm1.Tag = "" Then
            MsgBox "Unexpected Data Received", vbOKOnly
         ElseIf Len(strBuffer) = 4 And MSComm1.Tag = &H65 Then 'handler for command &H65
            'process buffer example
            Text1.Text = "" 'clear textbox
            For i = 1 To 4
                Text1.Text = Text1.Text & Asc(Hex$(Mid$(strBuffer, i, 1))) 'dump buffer to textbox in hex
            Next
            strBuffer = "" 'must empty buffer when done processing it
            MSComm1.Tag = "" 'clear flag
         End If
      'Case comEvCD   ' Change in the CD line.
      'Case comEvCTS   ' Change in the CTS line.
      'Case comEvDSR   ' Change in the DSR line.
      'Case comEvRing   ' Change in the Ring Indicator.
      'Case comEvSend   ' There are SThreshold number of characters in the transmit buffer.
      'Case comEvEOF   ' An EOF charater was found in the input stream
   
   ' Errors
      'Case comEventBreak   ' A Break was received.
      'Case comEventFrame   ' Framing Error
      'Case comEventOverrun   ' Data Lost.
      'Case comEventRxOver   ' Receive buffer overflow.
      'Case comEventRxParity   ' Parity Error.
      'Case comEventTxFull   ' Transmit buffer full.
      'Case comEventDCB   ' Unexpected error retrieving DCB]

   End Select
End Sub
Thanks for the code . The only problem is that I don't think it's being called. I even tried:

Code:
Private Sub MSComm1_OnComm()
	Text1.Text = ""
End Sub
But that didn't even work. I tried another command that returns a response and that didn't work either.

Edit:

I used comDebug, and the response is definitely there. It said it replied with Hex 1B DE. That's not a good response, but at least it's definitely working.

Last edited by devilsson2010; 01-05-2009 at 09:44 AM.
Reply With Quote
  #9  
Old 01-05-2009, 09:35 AM
the master's Avatar
the master the master is offline
Tachikoma
 
Join Date: Mar 2003
Location: Mansfield, UK
Posts: 4,596
Default

You could try setting RThreshold to 1. I usually find that setting it to 0 stops it from firing the oncomm event. If you set it to 1 then every byte will trigger the event. Im sure thats not the best way of doing it but it works for me.
__________________
"That which seems simple is often overlooked" ~ me
Halloween 2014 Yard Haunt
Halloween Special FX
Reply With Quote
  #10  
Old 01-05-2009, 10:17 AM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by the master View Post
You could try setting RThreshold to 1. I usually find that setting it to 0 stops it from firing the oncomm event. If you set it to 1 then every byte will trigger the event. Im sure thats not the best way of doing it but it works for me.
That's exactly what it was, thanks a lot! More problems though ;(

So it was 2 bits first of all, which I figured out just by testing both 2 and 4 :/ , so I just changed this:

Code:
        ElseIf Len(strBuffer) = 4 And MSComm1.Tag = &H65 Then 'handler for command &H65
            'process buffer example
            Text1.Text = "" 'clear textbox
            For i = 1 To 4
to this:

Code:
        ElseIf Len(strBuffer) = 2 And MSComm1.Tag = &H65 Then 'handler for command &H65
            'process buffer example
            Text1.Text = "" 'clear textbox
            For i = 1 To 2

However, whenever I try to run it, I get a "Type Mismatch" error on this line:

Code:
Text1.Text = Text1.Text & Asc(Hex$(Mid$(strBuffer, i, 1))) 'dump buffer to textbox in hex
Reply With Quote
  #11  
Old 01-05-2009, 12:43 PM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

Sorry, I forgot the .RThreshold setting = 1.
Also, I must be dyslexic today. Should be:
Code:
Text1.Text = Text1.Text & Hex$(Asc(Mid$(strBuffer, I, 1))) & " "
Only two characters is correct. At first I thought a unicode issue. Then I thought it was odd that the first two characters were the same as the second two when translated (Chr$(27) = Chr$(&H1B) and "y" = Chr$(&H79)). The manual was just showing the output in both ASCII and Hex.
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').

Last edited by Cerian Knight; 01-05-2009 at 02:05 PM. Reason: corrected variable name
Reply With Quote
  #12  
Old 01-05-2009, 12:52 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by Cerian Knight View Post
Sorry, I forgot the .RThreshold setting = 1.
Also, I must be dyslexic today. Should be:
Code:
Text1.Text = Text1.Text & Hex$(Asc(Mid$(s, I, 1))) & " "
Only two characters is correct. At first I thought a unicode issue. Then I thought it was odd that the first two characters were the same as the second two when translated (Chr$(27) = Chr$(&H1B) and "y" = Chr$(&H79)). The manual was just showing the output in both ASCII and Hex.
Worked like a charm (the s, instead of strbuffer confused me for a minute, but all works well in the end), my sincere thanks. You've been such a great help! +Awesome for you.
Reply With Quote
  #13  
Old 01-05-2009, 02:08 PM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

You're welcome. I went ahead and corrected some of my previous posts code based on the issues we already discussed.
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').
Reply With Quote
  #14  
Old 01-05-2009, 02:29 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Does RThreshold only return that many bytes of the specified value, so if RThreshold = 2, then it only returns 2 bytes. Because if I set it to one, then it doesn't work anymore. Also, when I try to read a card, it reads 2 bytes and then comes up with that error "Unexpected Data Received". I think it's related to RThreshold.
Reply With Quote
  #15  
Old 01-05-2009, 03:56 PM
the master's Avatar
the master the master is offline
Tachikoma
 
Join Date: Mar 2003
Location: Mansfield, UK
Posts: 4,596
Default

RThreshold is and integer that specifies how many bytes should be received before triggering the onComm event. According to MSDN setting it to 0 will stop the event being generated (thats why it never works ). If you know exactly how many bytes you will receive then you can set it to that value. The problem is when data gets lost or different size data comes in. I always set it to 1 so that every single byte will trigger the event and cause it to be added to the buffer.

The example that Cerian Knight adapted from MSDN declares the buffer in the event for some reason. I always declare it in the declarations section so it doesnt lose its data between events. At the moment if the bytes arrive slow then one will trigger the event and be buffered then the buffer will be lost at the end of the sub. When subsequent bytes arrive they will trigger the event again but the first one has already been lost. If you keep them between events (you could also use static for this) then you can ensure that all the data is buffered.

At the end of the event (still inside the select case statement) you should check if all the data you need has arrived. If it has then process it and clear the buffer.
__________________
"That which seems simple is often overlooked" ~ me
Halloween 2014 Yard Haunt
Halloween Special FX
Reply With Quote
  #16  
Old 01-05-2009, 04:05 PM
the master's Avatar
the master the master is offline
Tachikoma
 
Join Date: Mar 2003
Location: Mansfield, UK
Posts: 4,596
Default

Heres a simplified version

Code:
Option Explicit Dim strBuffer As String Private Sub Form_Load() MSComm1.PortOpen = True MSComm1.RThreshold = 1 MSComm1.Output = Chr$(27) & Chr$(&H65) End Sub Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive strBuffer = strBuffer & MSComm1.Input 'Check the data here if data is what you want then 'Do whatever you need strBuffer = "" End If End Select End Sub

Im not sure what you would do to check your data since i dont have the manual. If its based on length alone then you would put "if len(strbuffer)=4 then".
__________________
"That which seems simple is often overlooked" ~ me
Halloween 2014 Yard Haunt
Halloween Special FX
Reply With Quote
  #17  
Old 01-05-2009, 05:11 PM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

Quote:
Originally Posted by devilsson2010 View Post
Does RThreshold only return that many bytes of the specified value...
It will return at least that many bytes. So if more come into the buffer before the MSComm1.Input is actually executed, they will be read also.
Quote:
Because if I set it to one, then it doesn't work anymore.
When only ESC & Chr$(&H65) is sent? That does not make sense to me... show me the exact code you are using.
Quote:
Also, when I try to read a card, it reads 2 bytes and then comes up with that error "Unexpected Data Received". I think it's related to RThreshold.
For a read command 'ESC & Chr(&H72)' I do not know how many bytes of card data. Need another .Tag and ElseIf block to handle that.
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').
Reply With Quote
  #18  
Old 01-05-2009, 06:51 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by Cerian Knight View Post
When only ESC & Chr$(&H65) is sent? That does not make sense to me... show me the exact code you are using.
Code:
Private Sub cmdReaderTestCommunications_Click()
    MSComm1.Output = Chr$(27) & Chr$(&H65)
    MSComm1.Tag = &H65 'Tag is used for extra data... I'm using it to hold the command for future reference
    
    lblReaderStatus.Caption = "Testing Communication..."
    lblReaderStatus.BackColor = &HFFFF&

End Sub

Private Sub cmdReaderRead_Click()
    MSComm1.Output = Chr$(27) & Chr$(&H72)
    MSComm1.Tag = &H72
    
    lblReaderStatus.Caption = "Reading - Please Swipe a Card"
    lblReaderStatus.BackColor = &HFF00&
End Sub

Private Sub Form_Load()
    MSComm1.CommPort = 7
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 2 'Command &H65 would return 4 chars, may be hard to use so don't uncomment this line yet
    MSComm1.Output = Chr$(27) & Chr$(&H61)
End Sub

Private Sub MSComm1_OnComm()
   Dim strBuffer As String
   Dim i As Long
   Select Case MSComm1.CommEvent
   ' Handle each event or error by placing code below each case statement
   
   ' Events
      Case comEvReceive   ' Received RThreshold # chars.
      
         'get one or more characters
         'There is NO WAY to predict how many received characters triggered the event!!!
         'unless you use RThreshold (>0)... which you would have to adjust per command sent
         strBuffer = strBuffer & MSComm1.Input 'so we must concatenate them to a buffer
         LenstrBuffer = Len(strBuffer)
         
        If MSComm1.Tag = "" Then
            MsgBox "Unexpected Data Received", vbOKOnly
        ElseIf LenstrBuffer = 2 And MSComm1.Tag = &H65 Then 'handler for command &H65
            'process buffer example
            txtReaderHex.Text = "" 'clear textbox
            For i = 1 To 2
                txtReaderHex.Text = txtReaderHex.Text & Hex$(Asc(Mid$(strBuffer, i, 1))) & " " 'dump buffer to textbox in hex
                
                If i = 2 Then
                    If Hex$(Asc(Mid$(strBuffer, i, 1))) = 79 Then
                        lblReaderStatus.Caption = "Communcation was Successful"
                        lblReaderStatus.BackColor = &HFF00&
                    Else
                        lblReaderStatus.Caption = "Communcation Failed"
                        lblReaderStatus.BackColor = &HFF&
                    End If
                End If
            Next
            
            strBuffer = "" 'must empty buffer when done processing it
            MSComm1.Tag = "" 'clear flag
            
        ElseIf MSComm1.Tag = &H72 Then
        
            txtReaderHex.Text = ""
            For i = 1 To 2
                txtReaderHex.Text = txtReaderHex.Text & Hex$(Asc(Mid$(strBuffer, i, 1))) & " " 'dump buffer to textbox in hex
            Next
            
            strBuffer = ""
            MSComm1.Tag = ""
            
        End If
      'Case comEvCD   ' Change in the CD line.
      'Case comEvCTS   ' Change in the CTS line.
      'Case comEvDSR   ' Change in the DSR line.
      'Case comEvRing   ' Change in the Ring Indicator.
      'Case comEvSend   ' There are SThreshold number of characters in the transmit buffer.
      'Case comEvEOF   ' An EOF charater was found in the input stream
   
   ' Errors
      'Case comEventBreak   ' A Break was received.
      'Case comEventFrame   ' Framing Error
      'Case comEventOverrun   ' Data Lost.
      'Case comEventRxOver   ' Receive buffer overflow.
      'Case comEventRxParity   ' Parity Error.
      'Case comEventTxFull   ' Transmit buffer full.
      'Case comEventDCB   ' Unexpected error retrieving DCB]

   End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
    MSComm1.PortOpen = False
End Sub
Reply With Quote
  #19  
Old 01-05-2009, 07:59 PM
Cerian Knight's Avatar
Cerian KnightMSComm Help Cerian Knight is offline
Polymath (in disciplina)

Super Moderator
* Expert *
 
Join Date: May 2004
Location: Michigan
Posts: 4,199
Default

Quote:
Originally Posted by the master View Post
The example that Cerian Knight adapted from MSDN declares the buffer in the event for some reason... (you could also use static for this)...
Yes, it should be 'Static strBuffer as String'. That should allow .RThreshhold to be 1. I seem to always have scope issues when running code in my head.
__________________
I got all the answers wrong on the GLAT, apparently even #9 (where I put a period in the middle of the box and labeled it 'singularity ripe for rapid inflation').
Reply With Quote
  #20  
Old 01-05-2009, 08:34 PM
devilsson2010 devilsson2010 is offline
Newcomer
 
Join Date: Dec 2008
Posts: 18
Default

Quote:
Originally Posted by Cerian Knight View Post
Yes, it should be 'Static strBuffer as String'. That should allow .RThreshhold to be 1. I seem to always have scope issues when running code in my head.
'Invalid Procedure Call or Argument'

Code:
txtReaderHex.Text = txtReaderHex.Text & Hex$(Asc(Mid$(strBuffer, i, 1))) & " "
Edit:

Weird, if RThreshold is 1, it gives me the error above, but if it's 2, it says "Unexpected Data Received"
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Forum Jump

Advertisement:





Free Publications
The ASP.NET 2.0 Anthology
101 Essential Tips, Tricks & Hacks - Free 156 Page Preview. Learn the most practical features and best approaches for ASP.NET.
subscribe
Programmers Heaven C# School Book -Free 338 Page eBook
The Programmers Heaven C# School book covers the .NET framework and the C# language.
subscribe
Build Your Own ASP.NET 3.5 Web Site Using C# & VB, 3rd Edition - Free 219 Page Preview!
This comprehensive step-by-step guide will help get your database-driven ASP.NET web site up and running in no time..
subscribe
MSComm Help
MSComm Help
MSComm Help MSComm Help
MSComm Help
MSComm Help
MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help MSComm Help
MSComm Help
MSComm Help
 
MSComm Help
MSComm Help
 
-->