Need sample app for iOS using Cocoa

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ThYo_2228536
Level 3
Level 3
First like received First like given

Hi is there an OTA sample app for iOS using Cocoa ?

Or has anyone started to translate com.broadcom.wicedsmart.OtaUpgrader and

com.broadcom.wicedsmart.OtaNoSecureUpgrader ?

I confirm that OTA work with 20736 module (internal eprom) in un-secure mode

In my case app was build using  WICED-Smart-SDK-2.2.0 on Mac.

Didn't see the error reported in this thread requiring to use older SDK.

0 Likes
1 Solution
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

WICED Sense iOS source with the updated CY branding is here: https://community.cypress.com/docs/DOC-1648

View solution in original post

0 Likes
3 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

thomas.younsi_2228536

I will check internally to see if something already exists.  Unfortunately, if it does not, we will not be able to create.

0 Likes
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

WICED Sense iOS source with the updated CY branding is here: https://community.cypress.com/docs/DOC-1648

0 Likes

Thanks this is a good start also I already had the original BRCM app but this iOS code doesn't include any Wiced OTA client class

while the Wiced sense APP implement  the OTA upgrade service. It looked like this requires a specific state machine

to push the FW over the air. Merging the state machine completed on Android to iOS would be great...

I am sure someone did it for some of your customers.

The Windows Client is available here

/WICED-Smart-SDK/Apps/ota_firmware_upgrade/peerapps/Windows/WsOtaUpgrade/WsOtaDownloader.cpp

Merging WsOtaDownloader.cpp to  WICED-Sensor.m  would be one way to do it..

#ifdef OTA_SECURE_UPGRADE

   // Handle 0xff00: Broadcom vendor specific WICED Smart Secure Upgrade Service.

   // The service has 2 characteristics.  The first is the control point.  Client

   // sends commands, and sensor sends status notifications. Note that

   // UUID of the vendor specific service is 16 bytes, unlike standard Bluetooth

   // UUIDs which are 2 bytes.  _UUID128 version of the macro should be used.

   PRIMARY_SERVICE_UUID128 (HANDLE_WS_UPGRADE_SERVICE, UUID_WS_SECURE_UPGRADE_SERVICE),

   // Handle 0xff01: characteristic WS Control Point, handle 0xff02 characteristic value.

   // This characteristic can be used by the client to send commands to this device

   // and to send status notifications back to the client.  Client has to enable

   // notifications by updating Characteristic Client Configuration Descriptor

   // (see handle ff03 below).  Note that UUID of the vendor specific characteristic is

   // 16 bytes, unlike standard Bluetooth UUIDs which are 2 bytes.  _UUID128 version

   // of the macro should be used.  Also note that characteristic has to be _WRITABLE

   // to correctly enable writes from the client.

   CHARACTERISTIC_UUID128_WRITABLE (HANDLE_WS_UPGRADE_CHARACTERISTIC_CONTROL_POINT,

     HANDLE_WS_UPGRADE_CONTROL_POINT, UUID_WS_SECURE_UPGRADE_CHARACTERISTIC_CONTROL_POINT,

     LEGATTDB_CHAR_PROP_WRITE | LEGATTDB_CHAR_PROP_NOTIFY,

     LEGATTDB_PERM_WRITE_REQ, 5),

   0x00,0x00,0x00,0x00,0x00,

   // Handle 0xff03: Characteristic Client Configuration Descriptor.

   // This is a standard GATT characteristic descriptor.  2 byte value 0 means that

   // message to the client is disabled.  Peer can write value 1 to enable

   // notifications or respectively.  Note _WRITABLE in the macro.  This

   // means that attribute can be written by the peer.

   CHAR_DESCRIPTOR_UUID16_WRITABLE (HANDLE_WS_UPGRADE_CLIENT_CONFIGURATION_DESCRIPTOR,

     UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,

     LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_REQ, 2),

   0x00,0x00,

   // Handle 0xff04: characteristic WS Data, handle 0xff05 characteristic value

   // This characteristic is used to send next portion of the FW.  Similar to the

   // control point, characteristic should be _WRITABLE and 128bit version of UUID is used.

   CHARACTERISTIC_UUID128_WRITABLE (HANDLE_WS_UPGRADE_CHARACTERISTIC_DATA,

     HANDLE_WS_UPGRADE_DATA, UUID_WS_SECURE_UPGRADE_CHARACTERISTIC_DATA,

     LEGATTDB_CHAR_PROP_WRITE,

     LEGATTDB_PERM_VARIABLE_LENGTH | LEGATTDB_PERM_WRITE_REQ,  20),

   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

   0x00,0x00,0x00,0x00,

   // Handle 0xff06: characteristic Application Info, handle 0xff07 characteristic value

   // Client can read value of this characteristic to figure out which application id is

   // running as well as version information.  Characteristic UUID is 128 bits.

   CHARACTERISTIC_UUID128 (HANDLE_WS_UPGRADE_CHARACTERISTIC_APP_INFO,

   HANDLE_WS_UPGRADE_APP_INFO, UUID_WS_SECURE_UPGRADE_CHARACTERISTIC_APP_INFO,

   LEGATTDB_CHAR_PROP_READ, LEGATTDB_PERM_READABLE,  4),

     WICED_SENSE_APP_ID & 0xff, (WICED_SENSE_APP_ID >> 😎 & 0xff, WICED_SENSE_APP_VERSION_MAJOR, WICED_SENSE_APP_VERSION_MINOR,

#endif

0 Likes