knurdy
knurdy

Reputation: 496

Problem with C# and 32feet.NET Bluetooth Library

I just started bluetooth programming. I need to come up with an desktop application in C# that receives images from a J2ME application.

Before beginning...I just tried some code snippets from 32feet user guide...the guide is in VB.NET.

The VB.NET works fine...but my C# is not working correctly.

Here is the VB.NET snippet

Public Shared Sub find()
    Dim btClient As New InTheHand.Net.Sockets.BluetoothClient
    Dim bdi As BluetoothDeviceInfo() = btClient.DiscoverDevices()
    Dim device As BluetoothDeviceInfo = bdi(0)
    Dim addr As BluetoothAddress = device.DeviceAddress
    Dim name As String = device.DeviceName
    Console.WriteLine(name)
End Sub

And here is the C# conversion

public static void Main()
    {
        BluetoothClient cli = new BluetoothClient();
        BluetoothDeviceInfo[] peers = cli.DiscoverDevices();
        BluetoothDeviceInfo device = peers[0];
        String name = device.DeviceName;
        Console.WriteLine(name);
        Console.Read();
    }

The C# gives me an ArrayIndexoutofBOund exception...meaning that no devices are discovered.

Any suggestions?? Thank you for help.

Upvotes: 1

Views: 4644

Answers (2)

Jason Evans
Jason Evans

Reputation: 29186

Your C# code looks fine to me.

Are you sure that there are bluetooth device(s) attached to your PC when you ran the C# code? I realise that may sound a simplistic response, but it could be that, when you ran the C# code, there was a problem with the bluetooth connection or device?

Other then that, if the C# code is calling the exact same code that VB.NET version is calling, I honestly can't see why there should be a difference.

Upvotes: 0

alanjmcf
alanjmcf

Reputation: 3440

My guess is that the two programs are somehow using different versions of the library. And the C# compiler is using an older version of the library and copying in to the output folder. Check what versions the library assembly is in the same folder as each .exe.

Likely also that Widcomm or BlueSoleil is being used on your machine rather that the Microsoft Bluetooth stack. If its Widcomm make sure the 32feetWidcomm.dll file is there too.

Upvotes: 2

Related Questions