jefffhaynes / XBee

A .NET library for XBee wireless controllers
MIT License
40 stars 17 forks source link

Device Discovery is not working in vb.net #26

Closed patelonline closed 7 years ago

patelonline commented 7 years ago

Hi Jeff,

I am using XBee Library in my vb.net winforms application. I am using 2 XBee devices(S2C) I have a coordinator in API mode(1). and other 2 XBEEs are in AT mode. While I use XCTU all devices are scanned properly, but while I use this .net library it triggers event randomly (nodeDiscovered)!! I have a debug info here which i am getting on console while I Discover. So everytime while discovery debug shows that devices are getting discovered but event is not triggering everytime!!

**Code*** `Imports System.IO.Ports Imports BinarySerialization Imports XBee

Public Class FrmMain Dim WithEvents controller As XBee.XBeeController

Private Sub contoller_NodeDiscovered(sender As Object, e As NodeDiscoveredEventArgs) Handles controller.NodeDiscovered
    Console.WriteLine("Discovered {0}", e.Name) 
End Sub

Private Sub contoller_SampleReceived(sender As Object, e As SourcedSampleReceivedEventArgs) Handles controller.SampleReceived
    Console.WriteLine("Sample recieved: {0}", e)
End Sub

Private Async Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
    BtnDiscover.Enabled = False
    Try
        controller = Await XBeeController.FindAndOpenAsync(SerialPort.GetPortNames(), 9600)
        If controller.IsOpen Then
            BtnDiscover.Enabled = True
        End If
    Catch ex As Exception
        Console.WriteLine(ex.Message & ex.StackTrace)
    End Try
End Sub

Private Async Sub BtnDiscover_Click(sender As Object, e As EventArgs) Handles BtnDiscover.Click
    If Not controller Is Nothing Then
        If controller.IsOpen Then
            Await controller.DiscoverNetworkAsync()
            Console.WriteLine("Node Discovery started")
        End If
    Else
        MsgBox("no Controller attached")
    End If
End Sub

Private Sub controller_FrameMemberSerializing(sender As Object, e As MemberSerializingEventArgs) Handles controller.FrameMemberSerializing
    Console.WriteLine("S-Start: {0}", e.MemberName)
End Sub

Private Sub controller_FrameMemberSerialized(sender As Object, e As MemberSerializedEventArgs) Handles controller.FrameMemberSerialized
    Dim value = If(e.Value, "null")
    Console.WriteLine("S-End: {0} ({1})", e.MemberName, value)
End Sub

Private Sub controller_FrameMemberDeserializing(sender As Object, e As MemberSerializingEventArgs) Handles controller.FrameMemberDeserializing
    Console.WriteLine("D-Start: {0}", e.MemberName)
End Sub

Private Sub controller_FrameMemberDeserialized(sender As Object, e As MemberSerializedEventArgs) Handles controller.FrameMemberDeserialized
    Dim value = If(e.Value, "null")
    Console.WriteLine("D-End: {0} ({1})", e.MemberName, value)
End Sub

End Class`

*debug info** S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (4) S-Start: Payload S-Start: FrameType S-End: FrameType (AtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (5) S-Start: Command S-Start: Command S-End: Command (ND) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.NetworkDiscoveryCommand) S-End: Content (XBee.Frames.AtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (96) D-End: StartDelimiter (FrameDelimiter) D-Start: Length D-End: Length (30) D-Start: Payload D-Start: FrameType D-End: FrameType (AtCommandResponse) D-Start: Content D-Start: FrameId D-End: FrameId (5) D-Start: Content D-Start: AtCommand D-End: AtCommand (ND) D-Start: Status D-End: Status (Success) D-Start: Data D-Start: ShortAddress D-Start: Value D-End: Value (5084) D-End: ShortAddress (13DC) D-Start: LongAddress D-Start: Value D-End: Value (5526146532141813) D-End: LongAddress (0013A20041066AF5) D-Start: ReceivedSignalStrengthIndicator D-End: ReceivedSignalStrengthIndicator (null) D-Start: Name D-End: Name (ROUTER) D-Start: ExtendedInfo D-End: ExtendedInfo (null) D-End: Data (ROUTER: 0013A20041066AF5) D-End: Content (XBee.Frames.AtCommandResponseFrameContent) D-End: Content (XBee.Frames.AtCommandResponseFrame) D-End: Payload (XBee.FramePayload) D-Start: Checksum D-End: Checksum (0) D-Start: StartDelimiter D-End: StartDelimiter (193) D-Start: Length D-End: Length (1296) D-Start: Payload D-Start: FrameType D-End: FrameType (30) D-Start: Content D-End: Content (null) D-End: Payload (XBee.FramePayload) D-Start: Checksum S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (15) S-Start: Payload S-Start: FrameType S-End: FrameType (RemoteAtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (6) S-Start: LongAddress S-Start: Value S-End: Value (5526146532141813) S-End: LongAddress (0013A20041066AF5) S-Start: ShortAddress S-Start: Value S-End: Value (65534) S-End: ShortAddress (FFFE) S-Start: Options S-End: Options (Commit) S-Start: Command S-Start: Command S-End: Command (HV) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.HardwareVersionCommand) S-End: Content (XBee.Frames.RemoteAtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (234) D-End: Checksum (126) D-Start: StartDelimiter D-End: StartDelimiter (0) D-Start: Length D-End: Length (4503) D-Start: Payload D-Start: FrameType D-End: FrameType (6) D-Start: Content D-End: Content (null) D-End: Payload (XBee.FramePayload) D-Start: Checksum D-End: Checksum (19) D-Start: StartDelimiter D-End: StartDelimiter (162) D-Start: Length D-End: Length (65) D-Start: Payload D-Start: FrameType D-End: FrameType (6) D-Start: Content D-End: Content (null) D-End: Payload (XBee.FramePayload) D-Start: Checksum D-End: Checksum (245) D-Start: StartDelimiter D-End: StartDelimiter (XOff) D-Start: Length D-End: Length (56392) D-Start: Payload D-Start: FrameType D-End: FrameType (86) D-Start: Content D-End: Content (null) D-End: Payload (XBee.FramePayload) D-Start: Checksum D-End: Checksum (46) D-Start: StartDelimiter D-End: StartDelimiter (72) D-Start: Length S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (15) S-Start: Payload S-Start: FrameType S-End: FrameType (RemoteAtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (7) S-Start: LongAddress S-Start: Value S-End: Value (5526146532141813) S-End: LongAddress (0013A20041066AF5) S-Start: ShortAddress S-Start: Value S-End: Value (65534) S-End: ShortAddress (FFFE) S-Start: Options S-End: Options (Commit) S-Start: Command S-Start: Command S-End: Command (HV) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.HardwareVersionCommand) S-End: Content (XBee.Frames.RemoteAtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (233) D-End: Length (1150) D-Start: Payload D-Start: FrameType D-End: FrameType (TxRequest) D-Start: Content D-Start: FrameId D-End: FrameId (17) D-Start: Destination D-Start: Value D-End: Value (10882667108886397190) D-End: Destination (97070013A2004106) D-Start: Options D-End: Options (106) D-Start: Data S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (15) S-Start: Payload S-Start: FrameType S-End: FrameType (RemoteAtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (8) S-Start: LongAddress S-Start: Value S-End: Value (5526146532141813) S-End: LongAddress (0013A20041066AF5) S-Start: ShortAddress S-Start: Value S-End: Value (65534) S-End: ShortAddress (FFFE) S-Start: Options S-End: Options (Commit) S-Start: Command S-Start: Command S-End: Command (HV) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.HardwareVersionCommand) S-End: Content (XBee.Frames.RemoteAtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (232) S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (15) S-Start: Payload S-Start: FrameType S-End: FrameType (RemoteAtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (9) S-Start: LongAddress S-Start: Value S-End: Value (5526146532141813) S-End: LongAddress (0013A20041066AF5) S-Start: ShortAddress S-Start: Value S-End: Value (65534) S-End: ShortAddress (FFFE) S-Start: Options S-End: Options (Commit) S-Start: Command S-Start: Command S-End: Command (HV) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.HardwareVersionCommand) S-End: Content (XBee.Frames.RemoteAtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (231) S-Start: StartDelimiter S-End: StartDelimiter (FrameDelimiter) S-Start: Length S-End: Length (15) S-Start: Payload S-Start: FrameType S-End: FrameType (RemoteAtCommand) S-Start: Content S-Start: FrameId S-End: FrameId (10) S-Start: LongAddress S-Start: Value S-End: Value (5526146532141813) S-End: LongAddress (0013A20041066AF5) S-Start: ShortAddress S-Start: Value S-End: Value (65534) S-End: ShortAddress (FFFE) S-Start: Options S-End: Options (Commit) S-Start: Command S-Start: Command S-End: Command (HV) S-Start: Parameter S-End: Parameter (null) S-End: Command (XBee.Frames.AtCommands.HardwareVersionCommand) S-End: Content (XBee.Frames.RemoteAtCommandFrameContent) S-End: Payload (XBee.FramePayload) S-Start: Checksum S-End: Checksum (230)

Please Help me with this issue. Thanks

jefffhaynes commented 7 years ago

Yes, there appears to be an issue with the S2C. Unfortunately I didn't have the part and have just recently ordered it. Once it gets here I will work on the bug. Thanks!

jefffhaynes commented 7 years ago

I just pushed 4.3.1. Please try it and see if you have better luck, thanks.