Search found 13 matches

by dxpack
July 28th, 2015, 1:16 pm
Forum: Bug Reports
Topic: Incorrect Data being sent via BT LE? (Firmware Bug?)
Replies: 4
Views: 5952

Re: Incorrect Data being sent via BT LE? (Firmware Bug?)

I suggest looking into revising your method for extracting the data bytes into UInt32. Sorry, I'm not entirely familiar with ObjC. I noticed your earlier forum post using getBytes:range:, attempted to replicate it in Swift and found I was getting bogus values - appeared to be memory access related, ...
by dxpack
July 24th, 2015, 4:59 pm
Forum: Bug Reports
Topic: Incorrect Data being sent via BT LE? (Firmware Bug?)
Replies: 4
Views: 5952

Re: Incorrect Data being sent via BT LE? (Firmware Bug?)

I have not seen that issue. I am receiving and displaying consistently accurate Elapsed Time and Distance values for numerous brief test workouts and some 10+ minute workouts. Could you post your code that processes the incoming notification values? What is updateRowingMachineWithData: doing? Sounds...
by dxpack
July 22nd, 2015, 9:52 pm
Forum: SDK Questions
Topic: Bluetooth Implementation
Replies: 4
Views: 4236

Re: Bluetooth Implementation

In order to set programs such as distance you'll need to write to Bluetooth characteristic 0x0021 with valid CSAFE commands. CSAFE commands applicable to the PM5 are described in the Concept2 PM Communication Interface Definition document, which is available in the Concept2 SDK: http://www.concept2....
by dxpack
July 18th, 2015, 12:15 am
Forum: SDK Questions
Topic: Bluetooth Implementation
Replies: 4
Views: 4236

Re: Bluetooth Implementation

For 0x0031, 0x0032 and 0x0033 you could change the sample rate via 0x0034. You could subscribe then unsubscribe at your leisure/based on an internal timer (effectively providing longer refresh rates than 0x0034). You could subscribe then unsubscribe after receiving the very next notification (provid...
by dxpack
July 9th, 2015, 5:31 am
Forum: SDK Questions
Topic: Parsing Bluetooth Data
Replies: 2
Views: 4816

Re: Parsing Bluetooth Data

Objective-C is like a foreign language to me :) But I think I can help a bit anyway - I'll use Swift, but there's not much code here so you should be able to follow, and anyway you're 99% there. Taking Elapsed Time as an example: // Unpack the characteristic.values (NSData) into an Array of 8-bit in...
by dxpack
July 8th, 2015, 12:51 am
Forum: Bug Reports
Topic: CSAFE over Bluetooth is broken (PM5 firmware 19)
Replies: 1
Views: 3228

CSAFE over Bluetooth is broken (PM5 firmware 19)

The CSAFE State Machine on the PM5 (firmware 19), as queried over Bluetooth, appears to be broken. Specifically, it appears as though Bluetooth on the PM5 does not have access to the currently active CSAFE State Machine, perhaps instantiating a new State Machine with each separate Bluetooth CSAFE co...
by dxpack
July 7th, 2015, 4:13 pm
Forum: SDK Questions
Topic: iOS Development
Replies: 24
Views: 20349

Re: iOS Development

I don't know anything about using advertisementData to identify a peripheral. The UUID I posted (and robnotyou posted) is specifically noted in the C2 documentation as the service UUID used to identify a PM5 peripheral. I suggest using it. Just to note, with Swift you usually want to avoid as! whene...
by dxpack
July 7th, 2015, 6:45 am
Forum: SDK Questions
Topic: iOS Development
Replies: 24
Views: 20349

Re: iOS Development

You'll want to instantiate a CBCentral and save it to an ivar (you may already have this): class YourClass: NSObject, CBCentralManagerDelegate, CBPeripheralDelegate { var central: CBCentral! var peripheral: CBPeripheral! override init() { central = CBCentral(delegate: self, queue: nil, options: nil)...
by dxpack
July 6th, 2015, 6:08 pm
Forum: SDK Questions
Topic: CSafe_SetUserCFG1_CMD
Replies: 2
Views: 3814

Re: CSafe_SetUserCFG1_CMD

In the first example: 0x01 is the SETUSERCFG1 message content length (the SETUSERCFG1 message content being 0xA0) 0xBB is the checksum on the frame content (0x1A, 0x01, 0xA0). The checksum is byte for byte XOR on the frame content. If you change the frame content you need to calculate the correct ch...
by dxpack
July 5th, 2015, 9:31 pm
Forum: SDK Questions
Topic: GOFINISHED, return to Main Screen
Replies: 4
Views: 5298

Re: GOFINISHED, return to Main Screen

To add: Concept2's ErgData iPhone app has a feature where it recognizes when rowing activity has stopped, displays a "Are you finished" prompt. Pressing "Yes" at that prompt does successfully cause the current activity to end, with the PM5 UI returning to the Main screen. So, unless ErgData is using...
by dxpack
July 5th, 2015, 9:29 pm
Forum: SDK Questions
Topic: CSAFE + BLE Characteristic
Replies: 2
Views: 4959

Re: CSAFE + BLE Characteristic

To add: A properly formatted response is received when sending CSAFE_GETSERIAL_CMD, with the correct serial number value: --> send [0xF1, 0x94, 0x94, 0xF2] <-- response [0xF1, 0x81, 0x94, 0x09, 0x34, 0x33, 0x30, 0x31, 0x30, 0x39, 0x31, 0x39, 0x39, 0x22, 0xF2] All send/receive activity is performed b...
by dxpack
July 5th, 2015, 5:43 pm
Forum: SDK Questions
Topic: CSAFE + BLE Characteristic
Replies: 2
Views: 4959

CSAFE + BLE Characteristic

Using a BLE connection via iPhone, posting CSAFE commands to Characteristic 0x0021, subscribing to Updates from Characteristic 0x0022, I'm finding weird CSAFE response frames. Even with the weird response frames, I am able to set the PM5 to Standard Workout 1 and GOINUSE (the PM5 UI changes to the 2...
by dxpack
July 5th, 2015, 2:19 am
Forum: SDK Questions
Topic: GOFINISHED, return to Main Screen
Replies: 4
Views: 5298

GOFINISHED, return to Main Screen

In Figure 7, CSAFE State Machine Diagram, of the PM Communication Interface Definition revision 0.15, a note states: 1. If Finished state entered via Master command or timeout, terminate the current workout and return to Main screen However, that does not occur when sending the CSAFE_GOFINISHED_CMD....