Get it here ;D
They would release that the week after I struggled through it by hand. Though I am at least happy it’s here before I finished the Part II video. I’ll see if I can do the walkthrough with this tool instead. Great find - thanks for the link.
[Edit: Though at first blush, it looks more oriented toward creating new consumers of existing producers - not so much for creating new producers.]
Agreed. I started updating my Pi to start working through setting up an Alljoyn demo project last night. I was hoping the accompanying “Getting Started” demo was a complete end-to-end example but it starts with the assumption that you already have a producer. Is there an example you recommend for people wanting to build their first producer?
That’s what I based the Cortana work upon. My Alljoyn definition file, howtogenerate.txt and resulting project can be found here : [url]https://github.com/martincalsyn/CortanaAllJoynDemo/tree/master/src/Nodes/ActuatorNode/AllJoyn[/url]
@ mcalsyn - Thanks!
@ mcalsyn - Well, this turned out to be completely false information… Yes, their example in the “Getting Started” does make this assumption. So, I just started working through the pages and manually ran the alljoyncodegenerator and made all the manual “fixes” to get it compile. Then… When it came time to create a UWP project, I decided I would try the new AllJoyn App template. Well, to my surprise the first thing it does is asks you for your interface.xml file and then it creates a WinRT project with all the C++ files, etc. and starts you off with a nice little UWP project. I haven’t really gotten much farther than this yet but I thought I’d let you know in case you are documenting the old way since that’s really almost useless information now and it would definitely be worthwhile to revise part #2 to use the new template.
The next thing to figure out is what to do when you change your interface.xml file. I’m assuming you run the wizard again to create a new solution then drop in your existing UWP project but it would be really cool if the WinRT part could be rebuilt as a pre-compile step when a change to interface.xml is detected.
EDIT: Actually, it’s easier than that to update the interfaces. The AllJoyn solution adds an “AllJoyn” menu to VS2015 and from there you can add/remove interface files. To update an interface, I simply unchecked the box and pressed OK to removed it then went back and added it back and it recreated all the files with the updated interface.
for some reason I don’t see any interfaces available, I do have another tablet running windows 10 on the same network, did the trouble shooting and everything seems ok, am I suppose to see other interfaces for just having two windows 10 tablets on the network or should I actually have to have a producer running on one of them?
I even tried the “net start ajrouter” on both machines which started successfully but still nothing on the available interfaces
what gives ???
@ Jay Jay - The template doesn’t do quite everything for you. It creates the interfaces in the C++ module but it doesn’t implement them for you on the UWP (C#) side. You have to do just a little more work. I suggest watching this video. It was made before the AllJoyn project template was created but it actually starts at about the point you will be after creating a new project from the template.
My node is now detected by the AllJoyn Explorer but for some reason the Explorer is timing out when doing the introspection. Not sure what I’ve done wrong. Time to step away for a bit…
Sounds like things got a lot easier. I will definitely revise the project use the new approach in the video.
Obviously I’m missing something here…
Where is he getting that solution from, you know the one his starting the tutorial with?, second where is this Alljoyn explorer coming from? I have downloaded the SDK but I’m not seeing any of it
Edit: I found it here, so I guess there more to it than just installing the templates…
I hope this gets more streamlined quickly.
@ Jay Jay - If you haven’t already, read/watch the four posts at the top of this page and you’ll know enough to be dangerous.
this blog was published internally so I thought I’d share it here…
I haven’t had the time to go over the steps but i’m sure they will answer all those hanging question I have about AllJoyn…
maybe others that are advanced (Martin ) in the AllJoyn goodness could share their thoughts.
@ Jay Jay - Thanks. Good stuff. You had me really excited there for a minute since I actually came here to ask a somewhat related question. However, I don’t see the answer there…
I’m having a problem with my demo project where it works fine and I can inspect it with the AllJoyn Explorer when it is deployed to the Pi. However, when I run locally AllJoyn Explorer sees it fine but when I click it to inspect the interfaces it hangs during introspection and eventually times out and shows 0 interfaces. Any ideas?
Also, another weird things I’ve noticed is that when I inspect the Api to determine if I’m on the Pi or not…
... that it always returns true whether I'm targeting ARM or x64. I feel like I have some fundamental setting wrong somewhere.
I think you may be swimming upstream against the concept of “universal” apps. The idea is that they present a consistent api surface across all platforms, so testing for type presence, you are always going to get the same result.
Now trying to use some of those apis may work on some platforms and throw exceptions on others.
I think this posting will help: UWP quick tip – getting device, OS and app info | Martin Suchan – BloQ
Particularly this bit:
AnalyticsVersionInfo ai = AnalyticsInfo.VersionInfo;
From that, I get “Windows.Desktop” for my desktop system, “Windows.Mobile” from a phone, and “Windows.IoT” from an RPi running Win10 IoT Core.
As to your other question about local AlljoynExplorer, all I can do is sympathize with you. On my main dev machine, it doesn’t work at all (and I suspect that’s the case because of a very complex network adapter configuration due to having run both VMWare and Hyper-V on that machine). It works fine on my laptop, but I haven’t tried with a local service on the laptop yet.
@ mcalsyn - That sounds like an approach that will work. However, I got that code from this video (at 11:20).
He claims that it inspects at the actual api/class level. However, I don’t think he ever demonstrates that it actually works when run against a PC. So, no telling if his actually works or not…
Trying to run against my laptop was my next step. So, hopefully, it will work there since that’s the machine I’ll be demoing with on Saturday. Time for some sleep now, though. Thanks.
I wouldn’t bang my head against the wall for this as you will notice the same thing happens with the AllJoyn Explorer not being able to iterate the interfaces of the sample producer found here:
but as you will notice the consumer sample sees the interfaces of that producer just fine… so my guess would be that this might be related to the security settings in the xml that is not compatible with the alljoyn explorer. maybe be setting that to false might work…
Thanks. I’m going to give this a look over tonight. Unfortunately, I’ve got tonight and tomorrow night to finish prepping for my talk on Saturday and I’ve spent too much time banging my head over this already thinking I’d done something wrong.
And I still have the XAML part to put together which is the part I most dread due to my lack of XAML skilz… If anyone wants to help with that tonight, ping me. It’s very simple I’m sure but I don’t operate in that realm ever unless I absolutely have to.
Guys, I’ve worked out a fix for getting AllJoyn Explorer to recognize locally running producers. The problem is that AllJoyn Explorer does not by default have local network loopback enabled (per the AllJoyn Setup Guide). However, the Setup Guide doesn’t really give complete instructions for how to remedy this. I’ll do a detailed blog post tonight but I thought you might want my notes now. To enable local loopback for AllJoyn Explorer, do the following:
1. Start AllJoyn Explorer.
2. Open Task Manager and find AllJoyn Explorer in the Processes list.
3. Right-click on AllJoyn Explorer and select "Properties".
4. In the General tab, you will a name such as "[b]adff22a6-72bc-4137-be64-04899205e0a7[/b]_18.104.22.168_x64_[b]_hk7qwdpjbkp1m[/b]".
5. Open a Command Prompt (in Administrator mode).
6. Type "CheckNetIsolation.exe LoopbackExempt -a -n=adff22a6-72bc-4137-be64-04899205e0a7_hk7qwdpjbkp1m".
Note that the last parameter is the combination of the two highlighted portions from #4.
7. Restart AllJoyn Explorer and it should be able to successfully introspect your producer’s interfaces.
@ ianlee74 - Nice work out