@@ -288,18 +288,22 @@ - (void)handleAsyncMessage:(RKAsyncMessage *)message forRobot:(id<RKRobotBase>)r
288288
289289 } else if ([message isKindOfClass: [RKCollisionDetectedAsyncData class ]]) {
290290 // Collision
291+
291292 RKCollisionDetectedAsyncData *collisionData = (RKCollisionDetectedAsyncData *)message;
292293 if (collisionData
293294 && [_sensorDelegate respondsToSelector:
294295 @selector (spheroManagerStreamingCollisionForServiceId:impactAcceleration:axis:power:speed:time: )]) {
295- DPPoint3D accel;
296- accel.x = collisionData.impactAcceleration .x ;
297- accel.y = collisionData.impactAcceleration .y ;
298- accel.z = collisionData.impactAcceleration .z ;
299- CGPoint axis = CGPointMake (collisionData.impactAxis .x , collisionData.impactAxis .y );
300- CGPoint power = CGPointMake (collisionData.impactPower .x , collisionData.impactPower .y );
301- float speed = collisionData.impactSpeed ;
302- NSTimeInterval time = collisionData.timeStamp ;
296+ DPPoint3D accel;
297+ accel.x = collisionData.impactAcceleration .x ;
298+ accel.y = collisionData.impactAcceleration .y ;
299+ accel.z = collisionData.impactAcceleration .z ;
300+ CGPoint axis = CGPointMake (collisionData.impactAxis .x , collisionData.impactAxis .y );
301+ CGPoint power = CGPointMake (collisionData.impactPower .x , collisionData.impactPower .y );
302+ float speed = collisionData.impactSpeed ;
303+ // collisionData.timeStamp; SDK側のデータを元に日付文字列を生成すると31年ずれる。
304+ // collisionData.impactTimeStampは0
305+ // Sphero側とスマートフォン側との差異が少ないためスマートフォン側の値を使用する。
306+ NSTimeInterval time = [NSDate date ].timeIntervalSince1970 ;
303307 [_sensorDelegate spheroManagerStreamingCollisionForServiceId: robot.identifier
304308 impactAcceleration: accel
305309 axis: axis
0 commit comments