The code is finding my device but how do i pair the device? This is snip of the code I have: private async void DeviceWatcher_AddedAsync(DeviceWatcher sender, DeviceInformation args) { if (args.Name == "DeviceName") { if (args.Pairing.CanPair && !args.Pairing.IsPaired) { device = args; } } } My args.Pairing.CanPair is true, and my args.Pairing.IsPaired is false. My question is how do i make the IsPaired to true? Thanks!
@moodyadel47253 ай бұрын
Thank you, Great explanation, but last Principle is still not clear for me
@Jmstr-p6h3 ай бұрын
Great. Thx!
@regelink3 ай бұрын
Incorrect, bluez was already at version 5.6 in 2021. (this is also the problem i'm having... system says its the last version but it is not!)
@WayneGreen-g8l8 ай бұрын
I subscribed and thumbed up because I like this and found it useful. But I should say that it's wrong to call an "app registration" a "service principal" because although creating a service principal will create an app registration, the reverse is not true. An app registration can exist without an app principal, but not the other way around. And although a service principal is an instance of an app registration with its own object id, client id, etc. and assigned roles through RBAC, a service principal has additional qualities like credentials that allow it to auth requests to Azure resources.
@gerardoverrone49028 ай бұрын
Congrats for this great Tutorial!!! Comments about the process shown at 46:43 Configure Build Pipeline to use GitVersion to generate Semantic Version For people following this in 2024 with the AZ native Agent there are some slight changes due the facts that the current agent does not have the .Net core SDK 3.1 installed. As Core 3.1 was wiped out time ago you only get .net SDK 6/7/8 pre-installed. Updated Steps: # Install NetSdk 3.1 to use the GitVersion extension - task: UseDotNet@2 name: 'InstallNetCoreSdkForGitVersion' displayName: 'Install .NET Core Sdk 3.1.0 for GitVersion' condition: succeeded() inputs: version: '3.1.x' includePreviewVersions: false # Setup git fake user & defaultBranch - task: CmdLine@2 displayName: Init git global config condition: succeeded() inputs: script: | git config --global user.email "EMAIL-OF-PIPELINE-USER" git config --global user.name "Pipeline_Build_Staging" git config --global init.defaultBranch main # Enable Git commands using this account - checkout: self displayName: 'Checkout Self' fetchDepth: '0' persistCredentials: true # Config gitversion 5.3.x # github.com/GitTools/GitVersion - task: gitversion/setup@1 displayName: 'Setup git version' inputs: versionSpec: '5.3.x' condition: succeeded() # Calculate the version of source code - task: gitversion/execute@1 displayName: 'Calculate SemVer' inputs: useConfigFile: true configFilePath: 'GitVersion.yml' condition: succeeded() # Print in console current version in the format x.y.z ó 3.0.1 - script: echo current version is $(GitVersion.SemVer) displayName: 'Display calculated version' condition: succeeded() NOTE: On the task to Setup git fake user & defaultBranch you can specify anything as user and email including fake data ;)
@poulchristensen71429 ай бұрын
Thanks for this very cool video. This was just what I needed to get started 😊
@timwitort601310 ай бұрын
Little to no explanation of anything here. Not really a "How to" video. Going through a bunch of git commands and muttering, "let's see, I'll do such and such and that looks good..." is not a "how to" video.
@KishoreKumar-xt7pz10 ай бұрын
Excellent. information i am getting exception line number 80 WriteClientCharacteristicConfigurationDescriptorAsync could you help on this if i use WriteClientCharacteristicConfigurationDescriptorWithResultAsync status is protocolerror 0x03
@White_Rose1911 ай бұрын
Can you please tell how to migrate this code from console .Net framework to WPF.
@asciimation11 ай бұрын
Very useful, thank you. I was able to use this to write a small app to connect to a GoPro Hero 12 via Bluetooth, get the AP name and password then enable the WiFi AP. The only real change I had to make from your code was to add in the addition of a protocol selector when creating the Device Watcher. Until I did that I wasn't able to reliably pair every time or read and write to the camera. I got that from a C# example on the OpenGoPo repo. I also added the Microsoft.Windows.SDK.Contracts Nuget package as mentioned below too. string BLESelector = "System.Devices.Aep.ProtocolId:=\"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}\""; DeviceInformationKind deviceInformationKind = DeviceInformationKind.AssociationEndpoint; string[] requiredProperties = { "System.Devices.Aep.Bluetooth.Le.IsConnectable", "System.Devices.Aep.IsConnected" }; DeviceWatcher deviceWatcher = DeviceInformation.CreateWatcher(BLESelector, requiredProperties, deviceInformationKind);
@ivanonwan3524 Жыл бұрын
Awesome, thank you very much for your tutorial. Very enlightening. I missed a part with the "writing" capabilities of this.
@Allyourneedsmet Жыл бұрын
what are the prerequisites to know before diving in?, Is this systems programming, hardware or network programming?, I would like to know how to fish
@briant44 Жыл бұрын
Great video Cornel. Planning to use my new found knowledge to read a bluetooth temperature module. Thanks a lot. I have liked and subscribed.
@aleksander5784 Жыл бұрын
Thanks
@JohannFritz78 Жыл бұрын
If you are not able to add "using Windows.Devices" then here is a solution: stackoverflow.com/questions/37496244/desktop-c-sharp-referencing-windows-devices
@fygadi1428 ай бұрын
Thank a lot!
@kyungwooMin Жыл бұрын
thanks! i added some write function in your code so i was able to test BLE module byte by byte in handler I was a bit confused when I first referenced it, but it seems to work fine in the end. I simply checked the received value of 1 byte sent, but now I think I can operate it continuously.
@maverickiy9366 Жыл бұрын
Very helpful video. Please make more videos on Azure :)
@dilanlakshitha2737 Жыл бұрын
thank you very much.
@ottomaier7127 Жыл бұрын
The first C# bluetooth video that really works... Thank you!
@oxayolt1987 Жыл бұрын
Unbelievable this video has just ~30 likes. Tremendous work behind. To me it has been very useful. Congrats for the author!
@celiagalas777 Жыл бұрын
Hi! I want to read the heart rate value from my Xiaomi band 4 using a Raspberry PI4. I've already connected and paired the band with the raspberry using bluetoothctl, however when I try to read, notify, write... characteristics or services I got the message: Unable to read attribute. I don't really know why, I followed all the steps carefully. Can anyone give me hand? :) Thank you in advance!!!!
@lovepeace8899 Жыл бұрын
First, Thanks for the tutorial, this helps me to build my app. But I found some problems while coding further, so I share the solution here, may help someone else later Cornel Human is using devicewatcher, with this, it will be very hard to find your device if you turn on it later than your app start, and also has problem to reconnect device if your device goes out of range and back into range later. The solution is to use bluetoothleadvertisementwatcher instead of devicewatcher, just couple lines modifition
@dhakshayinikoppad1411 Жыл бұрын
Hello Cornel, The 2 references you added, Wndows.WinMD and system.runtime.windowsruntime. I dont have those in my paths you have mentioned. Can you explain on how to get them?
@binnanyu Жыл бұрын
search the name directly. I think they may store differently
@pats22fos8 ай бұрын
I had this problem. I needed to go the the VS installer and download the relevant modules. I think it was the "Data Storage and processing" workload, in particular the Windows 10 and 11 SDKS: 10.0. -22000.0, -20348.0, -19041.0, -18362.0
@pknight75724 ай бұрын
I really went around the block getting this sorted. As mentioned below, search in windows search thingy for windows.winmd and the other one and navigate to the that file location in vs using the add references menu. Other things to note. Make sure your using visual studio, not visual studio code. And use windows 10, not windows 7 or linux. Yep, ive been learning the hard way.
@pknight75724 ай бұрын
More times round the block. Finally got it, i was misguided in my previous methodology. Make sure you download the individual components and module outlined by pat22fos above. If you dont find the winmd or windows runtime files where specified in the video description then you dont have the proper extensions, widgets and wotnots. I found my windows runtime in a slightly different path. Hope that helps.
@abhishekmor6929 Жыл бұрын
Very informative. Thanks for the video. I am using your code to connect with our Nonin 3230 oximeter but its not reading, condition for GattCharacteristicProperties.Notify never met true. Can you please help us on this. 🙏
@alibek3006 Жыл бұрын
Thank you for tutorial. Helped a lot!
@martel179 Жыл бұрын
Very useful, thanks
@eugenejayachandra5122 Жыл бұрын
Thank you. This healped
@pauldavis56352 жыл бұрын
I can't really read the code you are working with. Do you share it for download??
@aaalllen2 жыл бұрын
If you're looking for how to do the merge conflict in the Azure Devops PR UI, this video only shows it in the typical local GIT branch conflict resolution method.
@Dave-nv5rv8 ай бұрын
Yep. All of the video results are bad and should be deleted from youtube, they're a waste of time
@EliasIoannou2 жыл бұрын
You are an absolute BEAST. Thank you so much for this tutorial!
@FahadKhan-cu6xj2 жыл бұрын
Hi your videos are great and helpful, we are working on a wahoo kickr fan which will increase the speed of the wind according to the speed of the trainer or heart rate. i want to write the values on it using trainer speed, unfortunately the values shown are these "Press any key to pair with fan Pairing with the device..... Pairing successful..... 00001800-0000-1000-8000-00805f9b34fb 00001801-0000-1000-8000-00805f9b34fb 0000180a-0000-1000-8000-00805f9b34fb a026ee01-0a7d-4ab3-97fa-f1500f9feb8b a026ee0c-0a7d-4ab3-97fa-f1500f9feb8b Press any key to exit app" and i think these values are only i have read the gatt service documentation on bluetooth website and could you help me telling what will be the name documentation for it like the trainer is "fitness machine" i cannot figure out what are the characteristic to write-on. or can you tell us which properties or flags are write-able. can please you help me or give me an idea how to do it.
@MommyBangsHead2 жыл бұрын
i landed on this video after spending entire day to understand these concepts.. you nailed it.. thanks man
@arvindpurohit27222 жыл бұрын
Great video .... I am searching for login using active directory user/pwd also create user api
@LangrennsPortalen2 жыл бұрын
Will this work/be as easy for Mac? Have a master task on the university and I have to connect the wahoo kickr core to my Mac (programming in python)
@cornelhuman19402 жыл бұрын
Hi Eirik, I have not attempted to do Bluetooth Low Energy on a mac. I suspect you will need to look at objective c libraries. I unfortunately cant help on the mac or python front.
@fernandamorais70882 жыл бұрын
Tu
@wervisMM2 жыл бұрын
Instead of all the references you could also add the Microsoft.Windows.SDK.Contracts Nuget package.
@baumwollaugenjohann2 жыл бұрын
THX! that helped me a lot!
@geegee_endurance2 жыл бұрын
Nice Video! I was looking for a DIY solution to control my Kickr Core as I don't need Zwift. I'm just looking for a solution to set resistance and to go trough my training scheme.
@daftelf2 жыл бұрын
I found this helpful - thanks
@ChazRagg2 жыл бұрын
Thanks for the video, it was very informative. i do have one question about SemVer though. If you have to tag the repository in order for SemVer to calculate the correct version why not just use the gittag for your docker tag instead of running SemVer ?
@cornelhuman19402 жыл бұрын
You tag to increment major or minor version, then semver will auto increment the build version. Depending on your config. But yes you could use the gitver, if you tag with every commit. The point is to not tag with every commit ;)
@ChazRagg2 жыл бұрын
@@cornelhuman1940 thank you for the answer. I believe I may have been confused by gitversion initially. I though it controlled major and minor versions by its self not just the build / commit counter. I will do some more research
@oriolaragones65422 жыл бұрын
Hello, we are working on a wahoo with Kickr Climb. Your code and example works like a champ. But we are trying to setup the tilt value for the Wahoo Kick Climb without success... please can you help us?
@cornelhuman19402 жыл бұрын
Have you had a look at the fitness machine bluetooth spec? www.bluetooth.com/specifications/specs/fitness-machine-service-1-0/
@cornelhuman19402 жыл бұрын
Also have a look at my latest video where I use the bluetoothctl command from a linux box to connect with and read and write values
@oriolaragones65422 жыл бұрын
@@cornelhuman1940 Dear Cornel, First off all thanks you very much your answer! We try to modify the value 0x03 from the FTMS with a signed int without success... We don't know if the combination between Kickr Climb and Wahoo Kickr Core are connected and then... we need to "send the message" only to one device... Or maybe we need to send the message to both (Climb and Core) to make a correct tilt value... We don't know how to resolve it... Any clues, tricks, advice? If not... do you know who can try to help on that?
@ulrichbeutenmuller81012 жыл бұрын
you made my day 😀
@ATMIKES1234562 жыл бұрын
Thank you very much, it worked all very fine! Now I have a question: I have a self built device with 5 characteristics I can subscribe to (gyro, force, etc). After i subscribe to one of them i would like to unsubscribe from it and subscribe to another. I can remove the listener on my .net client, but i realized that my device still sends the data I subscribed in the first place. Is there a way to tell it to stop sending data? Thanks a lot!
@cornelhuman19402 жыл бұрын
I think there is a disconnect command, just make sure that you dont have multiple connection open.
@numberjuan63322 жыл бұрын
you're a legend! Showing the process was extremely helpful; like showing the process and then showing the documentation because this is my first time making anything with c#. Thanks for the video!
@zorannajdovski28202 жыл бұрын
Great Video Cornel. Thanks for sharing. Any idea how to maintain a connection with a device that has dropped out or turned off/on again? Cheers
@wervisMM2 жыл бұрын
I experience the issue. Did you solve this issue?
@manofsteel69232 жыл бұрын
I tried this same method to connect to huwavei fit 2. Its showing ,if (result.Status == GattCommunicationStatus.Success), showing result.Status as unreachable
@wervisMM2 жыл бұрын
Have the same error message. It occures when the device is paired but not connected. Did you find a solution?
@hiltongallagher56572 жыл бұрын
Hey @@wervisMM Did you happen to find a fix for this 😅. I'm really struggling with this issue.
@hiltongallagher56572 жыл бұрын
Hi Man of steel, please tell me you found and answer to your question somewhere? Anywhere? 🙏
@brownhong8473 Жыл бұрын
me. too. did you solved it?
@cloudlabs12 жыл бұрын
nice and great video, it truly helps me to understand to how to call restapi to Azure resources. can you post the postman queries you showed in the demo? it is hard to see and type from videos.
@chiyouyu64692 жыл бұрын
How to find my TICKR? THANKS
@hynesie112 жыл бұрын
God damn, it took me an hour and a half to get as far as 3:38.
@sleeplesslights7952 жыл бұрын
How did you get past this? I'm stuck in the same place.
@hynesie112 жыл бұрын
@@sleeplesslights795 keep watching and he explains it. You have to use NuGet to add packages to the project.
@joeldavis84442 жыл бұрын
Hey just wanted to say thanks for this video, this was exactly what I needed. Maybe it's a bit niche to get a tons of views but it helped me out. Great to see clear explanations and I really appreciate you citing and pointing out the docs you used to find things instead of just pasting in magic device UUIDs too.
@minhuang8848 Жыл бұрын
It's been agony trying to find any sort of documentation that isn't outdated or somehow obfuscated, really good resource for sure. I'm trying to put together a sandbox smart trainer engine for MTB/general cycling 3D applications and will definitely publish any insights myself (of which I fear I'm going to have not as many as I'd like). Did you do anything with that stuff you might want to throw people's ways?