SDK 3.11 release


#1

Hi everybody,

SDK 3.11 has been released!

Here is the changelog:

  • Fixed non-ack commands (camera orientation was always sent)
  • Updated features list in the device controllers
  • Old and deprecated Unix samples have been removed
  • Minor fixes

To use this update on iOS, you’ll have to replace the former precompiled libraries with these new ones.
On Android, modify your build.gradle file with: compile 'com.parrot:arsdk:3.11.0'

Hope you’ll like this new version, don’t hesitate to ask if you have any problem.

We also modified a little the documentation, which was quite long to load. To improve the loading time and the readability, we’ve separated the messages (commands and events) reference from the doc. You can now find the reference of all messages (ok, this one is very long to load, because we have a lot of messages :wink:).
You can also search for all messages supported by a given product.

Best regards,
Djavan


#2

Very nice, thanks! I love the new reference.


#3

Hi !

Thanks for the new and very awaited release !
I just replaced the 3.10.1 SDK with the new 3.11.0 and recompiled my iOS App (BebopPad) but now it crash as soon as I choose to connect to the Skycontroller 2, here are the logs :

2016-12-09 18:19:56.282 BebopPad[4425:1370002] New CBCentralManager state : CBCentralManagerStatePoweredOn
2016-12-09 18:19:56.283 BebopPad[4425:1369995] Couldn’t find the “com.apple.private.externalaccessory.showallaccessories” entitlement
2016-12-09 18:19:56.288 BebopPad[4425:1369995] -[USBAccessoryManagerEA tryToOpenSessionForAccessory:] Try to connect accessory : Parrot Skycontroller 2. Protocol : com.parrot.dronesdk
2016-12-09 18:19:56.303 BebopPad[4425:1370038] -[ARDiscovery USBAccessoryManager:didAddDeviceWithConnectionId:name:mux:serial:productType:] New USB Service. Product name : Skycontroller 2. ConnectionId : 39425711
2016-12-09 18:19:57.748 BebopPad[4425:1369995] PilotingViewController viewDidLoad …
2016-12-09 18:19:57.761 BebopPad[4425:1369995] PilotingViewController viewWillAppear…
2016-12-09 18:19:57.849 BebopPad[4425:1369995] PilotingViewController viewDidAppear…
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - init discovery device …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_New …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_AddStateChangedCallback …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_AddCommandRecievedCallback …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_SetVideoStreamMP4Compliant …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_SetVideoReceiveCallback …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] - ARCONTROLLER_Device_Start …
2016-12-09 18:19:57.945 BebopPad[4425:1370064] newState: 1
2016-12-09 18:19:58.521 BebopPad[4425:1370071] newState: 2
2016-12-09 18:19:58.531 BebopPad[4425:1369995] -[ARUSBService name]: unrecognized selector sent to instance 0x170038160
2016-12-09 18:19:58.532 BebopPad[4425:1369995] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[ARUSBService name]: unrecognized selector sent to instance 0x170038160’
*** First throw call stack:
(0x1851a61c0 0x183be055c 0x1851ad278 0x1851aa278 0x1850a459c 0x1002db860 0x1000b281c 0x100066320 0x1000c303c 0x184031200 0x1840311c0 0x184035d6c 0x185153f2c 0x185151b18 0x185080048 0x186b06198 0x18b06c2fc 0x18b067034 0x1000c647c 0x1840645b8)
[I]mux ref: 2
[I]Opening channel 0x00000002
[I]mux ref: 3
[I]mux ref: 4
[I]mux ref: 5
[I]mux unref: 4
[I]mux ref: 5
[I]mux ref: 6
[I]mux ref: 7
[I]Opening channel 0x00000003
[ERR] ARDISCOVERY_MuxDiscovery | 18:19:57:955 | ARDiscovery_MuxConnection_sendConnReq:322 - mux_write_msg MUX_ARSDK_MSG_ID_CONN_REQ
[ERR] ARDISCOVERY_MuxDiscovery | 18:19:57:955 | ARDiscovery_MuxConnection_sendConnReq:328 - mux_write_msg MUX_ARSDK_MSG_ID_CONN_REQ done 0
[I]CHANNEL_OPEN chanid=0x00000001 type=NORMAL
[D]Closing channel 0x00000003
[I]mux unref: 6
[I]mux ref: 7
[I]Opening channel 0x00000001
[ERR] ARCONTROLLER_Device | 18:19:58:522 | ARCONTROLLER_Device_DictionaryChangedCallback:6138 - Connexion changed received
[ERR] ARCONTROLLER_Device | 18:19:58:522 | ARCONTROLLER_Device_OnSkyControllerConnectionChangedReceived:6233 - ConnectionStatus : 2
libc++abi.dylib: terminating with uncaught exception of type NSException

Is this something new to do with this release to use the SK2 ?

Best regards,
Vlad.


#4

Hi,
This is really weird as I’ve tested the samples with the SkyController 2. I don’t have one right now, you’ll have to wait until Monday, I’m sorry.

Best regards,
Djavan


#5

oh my… there is a ton of new stuff in this release. you guys have created a good month of work for me :slight_smile: :slight_smile: :slight_smile:

Quick questions…

any reason why x86_64 wasn’t added? It’s great to see you added arm64… one less patch for me to apply. I’m guessing you took care of patching libjson too? I had developed my own patch because the arch type for 64 bit was missing.

libcurl is still big and bloated… any changes or can I assume any optimizations I applied previously are still good?

Thanks for all this goodness! I’ll be sure to report on any issues I may find… sounds like starting with how SC2 connections are working.


#6

SC2 is working fine with (built from source) 3.11 libraries on Android.


#7

I narrowed the cause of the crash in my application. It is crashing when my app call createSDCardModule copied from the sample code, exactly when doing ip = [[ARDiscovery sharedInstance] convertNSNetServiceToIp:_service], if I replace the call to ARDiscovery with a static NSString like @“192.168.0.40” there is no more crash and all seems working (but the SDCardModule) !


#8

@synman do you dif the headers to see what’s different? I just glanced through the documentation page and only noticed one new command about moving camera with velocity. What all has changed? They don’t seem to mention much in the sdk release announcement or the documentation…


#9

Take a look at the all messages document: http://developer.parrot.com/docs/reference/all/index.html

Do a search for “Follow Me”. There’s a bunch of other stuff that was previously incomplete now available… the RC Feature is live, ControllerInfo, setDroneSettings (looks like a single command for setting multiple settings), and there are a bunch of new events too.

Camera now has a velocity setting as well float values.

That’s the stuff off the top of my head.


#10

You should really not do convertNSNetServiceToIp on a non NSNetService. The type of service of a SkyController 2 device is a ARUsbService.
For the SkyController 2, we use the function initWifiFtpOverMux.

Best regards,
Djavan


#11

Ahh yes, thanks @synman. I stopped reading the post after the change log and didn’t see the new reference page. I keep bookmarking it and then they change the URL so I keep checking an outdated one.


#12

#13

#14

#15

Is this update 3.11 compatible with SkyController 2 and iOS?


#16

Yes it is.
The sdk is compatible with iOS, Android and Unix. You can use it on the Rolling Spider, Cargos, Mambo, Swing, Jumping Sumo, Jumping Sumo Evos, Bebop Drone, Bebop 2, Disco, SkyController and SkyController 2.

Best regards,
Djavan


#17

I’ve tried to connect the SkyController 2 but FreeFlight Pro suddenly open itself. If I close it and come back to my app, the delegate

  • (void)droneDiscoverer:(DroneDiscoverer *)droneDiscoverer didUpdateDronesList:(NSArray *)dronesList

does not called!
What’s wrong?


#18

It’s probably because you’ve chosen to always open FreeFlight when the SkyController 2 is detected.
To change it, go to your Android phone’s settings -> Apps -> FreeFlight Pro -> Open By default and then Clear defaults


#19

Thank you Djavan, but I’m in iOS.


#20

@Djavan

Any release notes for 3.12?