@openhps/sphero
Version:
Open Hybrid Positioning System - Sphero component
2 lines • 34.1 kB
JavaScript
import*as e from"./openhps-core.es.min.js";var t={876:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.apiProcessor);return{echo:()=>t({commandId:o.APIProcessCommandIds.echo})}}},430:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.factory=t.number=void 0;const o=n(940),s=6;t.number=function(e,t){return Buffer.from(e).readInt16BE(t)};const i=e=>{const[t,n,...s]=e,{commandHasTargetId:i,commandHasSourceId:r}=(e=>({isResponse:!!(e&o.Flags.isResponse),requestsResponse:!!(e&o.Flags.requestsResponse),requestsOnlyErrorResponse:!!(e&o.Flags.requestsOnlyErrorResponse),resetsInactivityTimeout:!!(e&o.Flags.resetsInactivityTimeout),commandHasTargetId:!!(e&o.Flags.commandHasTargetId),commandHasSourceId:!!(e&o.Flags.commandHasSourceId)}))(n);let a,c;i&&(c=s.shift()),r&&(a=s.shift());const d=s.shift(),l=s.shift(),u=s.shift(),m=s.slice(0,s.length-2),[h,p]=s.slice(s.length-2,s.length-1);return{sourceId:a,targetId:c,commandId:l,deviceId:d,payload:m,raw:e,sequenceNumber:u}};t.factory=function(e){let t=[],n=0,r=!1;const a=()=>{t=[],n=0,r=!1},c=t=>{a(),e(t)};return{add(d){switch(d){case o.APIConstants.startOfPacket:return 0!==t.length?(a(),e("Invalid first byte")):t.push(d);case o.APIConstants.endOfPacket:return 0===t.length||t.length<s?c("Invalid last byte "+t.length):255!==n?c("Invalid checksum"):(t.push(d),e(void 0,i(new Uint8Array(t))),a());case o.APIConstants.escape:return r?c("Invalid escape char position"):void(r=!0);case o.APIConstants.escapedStartOfPacket:case o.APIConstants.escapedEndOfPacket:case o.APIConstants.escapedEscape:r&&(d|=o.APIConstants.escapeMask,r=!1)}if(r)return c("Invalid no escape char end found");t.push(d),n=n&d|255}}}},781:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(310),s=n(940),i=e=>{const t=Math.abs(3968*e);return[(0===e?0:e>0?48:176)|t>>8&15,255&t,0,0]};t.default=e=>{const t=e(s.DeviceId.driving);return{drive:(e,n,i)=>t({commandId:s.DrivingCommandIds.driveWithHeading,targetId:18,payload:[e,n>>8&255,255&n,(0,o.combineFlags)(i)]}),driveAsRc:(e,n)=>t({commandId:s.DrivingCommandIds.driveAsRc,payload:[...i(e),...i(n)]})}}},689:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.encode=void 0;const o=n(310),s=n(940);function i(e,t,n=!1){switch(new Uint8Array([t])[0]){case s.APIConstants.startOfPacket:e.bytes.push(s.APIConstants.escape,s.APIConstants.escapedStartOfPacket);break;case s.APIConstants.endOfPacket:e.bytes.push(s.APIConstants.escape,s.APIConstants.escapedEndOfPacket);break;case s.APIConstants.escape:e.bytes.push(s.APIConstants.escape,s.APIConstants.escapedEscape);break;default:e.bytes.push(t)}e.checksum=e.checksum+t&255}t.encode=function(e){const{commandFlags:t=[s.Flags.requestsResponse,s.Flags.resetsInactivityTimeout],deviceId:n,commandId:r,sequenceNumber:a,payload:c=[]}=e,d={bytes:[],checksum:0};return d.bytes.push(s.APIConstants.startOfPacket),i(d,(0,o.combineFlags)([...t,e.targetId?s.Flags.commandHasTargetId:0]),!0),e.targetId&&i(d,e.targetId,!0),i(d,n,!0),i(d,r,!0),i(d,a,!0),c&&c.forEach((e=>{i(d,e,!0)})),d.checksum=~d.checksum,i(d,d.checksum),d.bytes.push(s.APIConstants.endOfPacket),Object.assign(Object.assign({},e),{raw:new Uint8Array(d.bytes)})}},108:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.factory=void 0;const o=n(876),s=n(781),i=n(689),r=n(674),a=n(625),c=n(727),d=n(465),l=n(940),u=n(347);t.factory=e=>{const t=e||(()=>{let e=0;return()=>{const t=e;return e+=1,e>=255&&(e=0),t}})(),n=e=>n=>(0,i.encode)(Object.assign(Object.assign({},n),{commandFlags:[l.Flags.requestsResponse,l.Flags.resetsInactivityTimeout],deviceId:e,sequenceNumber:t()}));return{api:(0,o.default)(n),driving:(0,s.default)(n),power:(0,r.default)(n),somethingApi:(0,a.default)(n),systemInfo:(0,c.default)(n),userIo:(0,u.default)(n),sensor:(0,d.default)(n)}}},674:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.powerInfo);return{batteryVoltage:()=>t({targetId:17,commandId:o.PowerCommandIds.batteryVoltage}),sleep:()=>t({targetId:17,commandId:o.PowerCommandIds.sleep}),something2:()=>t({commandId:o.PowerCommandIds.something2}),something3:()=>t({commandId:o.PowerCommandIds.something3}),something4:()=>t({commandId:o.PowerCommandIds.something4}),wake:()=>t({targetId:17,commandId:o.PowerCommandIds.wake})}}},465:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.sensor);return{enableCollisionAsync:()=>t({commandId:o.SensorCommandIds.enableCollisionAsync}),configureCollision:(e,n,s,i,r,a=1)=>t({commandId:o.SensorCommandIds.configureCollision,targetId:18,payload:[a,e,s,n,i,r]}),sensorMask:(e,n)=>{const s=[n>>8&255,255&n,0,e>>24&255,e>>16&255,e>>8&255,255&e];return t({commandId:o.SensorCommandIds.sensorMask,targetId:18,payload:s})},sensorMaskExtended:e=>{const n=[e>>24&255,e>>16&255,e>>8&255,255&e];return t({commandId:o.SensorCommandIds.sensorMaskExtended,targetId:18,payload:n})}}}},625:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.somethingAPI);return{something5:()=>t({commandId:o.SomethingApi.something5})}}},727:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.systemInfo);return{appVersion:()=>t({commandId:o.SystemInfoCommandIds.mainApplicationVersion}),something:()=>t({commandId:o.SystemInfoCommandIds.something}),something6:()=>t({commandId:o.SystemInfoCommandIds.something6}),something7:()=>t({commandId:o.SystemInfoCommandIds.something7})}}},940:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DriveFlag=t.APIConstants=t.Flags=t.UserIOCommandIds=t.SensorCommandIds=t.AnimatronicsCommandIds=t.DrivingCommandIds=t.PowerCommandIds=t.SystemInfoCommandIds=t.APIProcessCommandIds=t.SomethingApi=t.DeviceId=void 0,function(e){e[e.apiProcessor=16]="apiProcessor",e[e.systemInfo=17]="systemInfo",e[e.powerInfo=19]="powerInfo",e[e.driving=22]="driving",e[e.animatronics=23]="animatronics",e[e.sensor=24]="sensor",e[e.userIO=26]="userIO",e[e.somethingAPI=31]="somethingAPI"}(t.DeviceId||(t.DeviceId={})),function(e){e[e.something5=39]="something5"}(t.SomethingApi||(t.SomethingApi={})),function(e){e[e.echo=0]="echo"}(t.APIProcessCommandIds||(t.APIProcessCommandIds={})),function(e){e[e.mainApplicationVersion=0]="mainApplicationVersion",e[e.bootloaderVersion=1]="bootloaderVersion",e[e.something=6]="something",e[e.something6=18]="something6",e[e.something7=40]="something7"}(t.SystemInfoCommandIds||(t.SystemInfoCommandIds={})),function(e){e[e.deepSleep=0]="deepSleep",e[e.sleep=1]="sleep",e[e.batteryVoltage=3]="batteryVoltage",e[e.wake=13]="wake",e[e.something2=16]="something2",e[e.something3=4]="something3",e[e.something4=30]="something4"}(t.PowerCommandIds||(t.PowerCommandIds={})),function(e){e[e.rawMotor=1]="rawMotor",e[e.resetYaw=6]="resetYaw",e[e.driveAsSphero=4]="driveAsSphero",e[e.driveAsRc=2]="driveAsRc",e[e.driveWithHeading=7]="driveWithHeading",e[e.stabilization=12]="stabilization"}(t.DrivingCommandIds||(t.DrivingCommandIds={})),function(e){e[e.animationBundle=5]="animationBundle",e[e.shoulderAction=13]="shoulderAction",e[e.domePosition=15]="domePosition",e[e.shoulderActionComplete=38]="shoulderActionComplete",e[e.enableShoulderActionCompleteAsync=42]="enableShoulderActionCompleteAsync"}(t.AnimatronicsCommandIds||(t.AnimatronicsCommandIds={})),function(e){e[e.sensorMask=0]="sensorMask",e[e.sensorResponse=2]="sensorResponse",e[e.configureCollision=17]="configureCollision",e[e.collisionDetectedAsync=18]="collisionDetectedAsync",e[e.resetLocator=19]="resetLocator",e[e.enableCollisionAsync=20]="enableCollisionAsync",e[e.sensor1=15]="sensor1",e[e.sensor2=23]="sensor2",e[e.sensorMaskExtended=12]="sensorMaskExtended"}(t.SensorCommandIds||(t.SensorCommandIds={})),function(e){e[e.allLEDs=14]="allLEDs",e[e.allLEDsV21=28]="allLEDsV21",e[e.playAudioFile=7]="playAudioFile",e[e.audioVolume=8]="audioVolume",e[e.stopAudio=10]="stopAudio",e[e.testSound=24]="testSound",e[e.matrixPixel=45]="matrixPixel",e[e.matrixColor=47]="matrixColor",e[e.clearMatrix=56]="clearMatrix",e[e.matrixRotation=58]="matrixRotation",e[e.matrixScrollText=59]="matrixScrollText",e[e.matrixLine=61]="matrixLine",e[e.matrixFill=62]="matrixFill"}(t.UserIOCommandIds||(t.UserIOCommandIds={})),function(e){e[e.isResponse=1]="isResponse",e[e.requestsResponse=2]="requestsResponse",e[e.requestsOnlyErrorResponse=4]="requestsOnlyErrorResponse",e[e.resetsInactivityTimeout=8]="resetsInactivityTimeout",e[e.commandHasTargetId=16]="commandHasTargetId",e[e.commandHasSourceId=32]="commandHasSourceId"}(t.Flags||(t.Flags={})),function(e){e[e.escape=171]="escape",e[e.startOfPacket=141]="startOfPacket",e[e.endOfPacket=216]="endOfPacket",e[e.escapeMask=136]="escapeMask",e[e.escapedEscape=35]="escapedEscape",e[e.escapedStartOfPacket=5]="escapedStartOfPacket",e[e.escapedEndOfPacket=80]="escapedEndOfPacket"}(t.APIConstants||(t.APIConstants={})),function(e){e[e.reverse=1]="reverse",e[e.boost=2]="boost",e[e.fastTurnMode=4]="fastTurnMode",e[e.tankDriveLeftMotorReverse=8]="tankDriveLeftMotorReverse",e[e.tankDriveRightMotorReverse=16]="tankDriveRightMotorReverse"}(t.DriveFlag||(t.DriveFlag={}))},347:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(940);t.default=e=>{const t=e(o.DeviceId.userIO),n=e(o.DeviceId.animatronics);return{allLEDsRaw:e=>t({commandId:o.UserIOCommandIds.allLEDs,payload:e}),setBackLedIntensity:e=>t({commandId:o.UserIOCommandIds.allLEDs,payload:[0,1,e]}),setMainLedBlueIntensity:e=>t({commandId:o.UserIOCommandIds.allLEDs,payload:[0,8,e]}),setMainLedColor:(e,n,s)=>t({commandId:o.UserIOCommandIds.allLEDs,payload:[0,112,e,n,s]}),setMainLedGreenIntensity:e=>t({commandId:o.UserIOCommandIds.allLEDs,payload:[0,4,e]}),setMainLedRedIntensity:e=>t({commandId:o.UserIOCommandIds.allLEDs,payload:[0,2,e]}),playAudioFile:e=>t({commandId:o.UserIOCommandIds.playAudioFile,payload:[e,0,0]}),turnDome:e=>n({commandId:o.AnimatronicsCommandIds.domePosition,payload:[e[1],e[0],0,0]}),setStance:e=>n({commandId:o.AnimatronicsCommandIds.shoulderAction,payload:[e]}),playAnimation:e=>n({commandId:o.AnimatronicsCommandIds.animationBundle,payload:[0,e]})}}},529:(e,t,n)=>{t.ZY=t.ju=void 0;const o=n(76);const s=n(198);t.ZY=s;n(310);var i=n(25);var r=n(938);var a=n(864);var c=n(93);var d=n(50);var l=n(796);var u=n(911);var m=n(1);var h=n(1);Object.defineProperty(t,"ju",{enumerable:!0,get:function(){return h.Event}});var p=n(842);var f=n(940)},198:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(s,i){function r(e){try{c(o.next(e))}catch(e){i(e)}}function a(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.findLightningMcQueen=t.findSpheroMiniByName=t.findSpheroMini=t.findR2Q5=t.findR2D2=t.findBB9E=t.find=t.findToy=void 0;const s=n(25),i=n(938),r=n(864),a=n(93),c=n(50),d=n(842);function l(e){return new Promise(((e,t)=>{navigator.bluetooth.requestDevice({filters:[{services:[d.ServicesUUID.apiV2ControlService]}],optionalServices:[d.ServicesUUID.nordicDfuService]}).then((t=>{e(t)})).catch((e=>{t(e)}))}))}t.findToy=l;t.find=(e,t)=>o(void 0,void 0,void 0,(function*(){const t=yield l(),n=new e.class(t);return yield(e=>o(void 0,void 0,void 0,(function*(){yield e.start()})))(n),n}));t.findBB9E=()=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(s.BB9E.advertisement)}));t.findR2D2=()=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(r.R2D2.advertisement)}));t.findR2Q5=()=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(a.R2Q5.advertisement)}));t.findSpheroMini=()=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(c.SpheroMini.advertisement)}));t.findSpheroMiniByName=e=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(c.SpheroMini.advertisement,e)}));t.findLightningMcQueen=()=>o(void 0,void 0,void 0,(function*(){return yield(0,t.find)(i.LightningMcQueen.advertisement)}))},25:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BB9E=void 0;const o=n(911);class BB9E extends o.RollableToy{constructor(){super(...arguments),this.maxVoltage=7.8,this.minVoltage=6.5}}t.BB9E=BB9E,BB9E.advertisement={name:"BB-9E",prefix:"GB-",class:BB9E}},1:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(s,i){function r(e){try{c(o.next(e))}catch(e){i(e)}}function a(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.Core=t.Event=t.decodeType=t.commandsType=void 0;const s=n(108),i=n(430),r=n(940),a=n(98),c=n(842),d=n(561);t.commandsType=!1,t.decodeType=!1,function(e){e.onCollision="onCollision",e.onSensor="onSensor"}(t.Event||(t.Event={}));t.Core=class Core{constructor(e){this.maxVoltage=0,this.minVoltage=1,this.apiVersion=c.APIVersion.V2,this.sensorMask={v2:[],v21:[]},this.peripheral=e}batteryVoltage(){return o(this,void 0,void 0,(function*(){const e=yield this.queueCommand(this.commands.power.batteryVoltage());return(0,i.number)(e.command.payload,1)/100}))}batteryLevel(){return o(this,void 0,void 0,(function*(){const e=((yield this.batteryVoltage())-this.minVoltage)/(this.maxVoltage-this.minVoltage);return e>1?1:e}))}wake(){return this.queueCommand(this.commands.power.wake())}sleep(){return this.queueCommand(this.commands.power.sleep())}start(){return o(this,void 0,void 0,(function*(){yield this.init(),yield this.write(this.antiDoSCharacteristic,"usetheforce...band"),this.started=!0;try{yield this.wake()}catch(e){console.error("error",e)}}))}appVersion(){return o(this,void 0,void 0,(function*(){const e=yield this.queueCommand(this.commands.systemInfo.appVersion());return{major:(0,i.number)(e.command.payload,1),minor:(0,i.number)(e.command.payload,3)}}))}on(e,t){this.eventsListeners[e]=t}destroy(){this.eventsListeners={},this.peripheral.gatt.disconnect()}configureSensorStream(e){return o(this,void 0,void 0,(function*(){const t=[c.SensorMaskValues.accelerometer,c.SensorMaskValues.orientation,c.SensorMaskValues.locator,c.SensorMaskValues.gyro];this.sensorMask=(0,d.sensorValuesToRaw)(t,this.apiVersion),yield this.queueCommand(this.commands.sensor.sensorMask((0,d.flatSensorMask)(this.sensorMask.v2),e||c.SensorControlDefaults.interval)),this.sensorMask.v21.length>0&&(yield this.queueCommand(this.commands.sensor.sensorMaskExtended((0,d.flatSensorMask)(this.sensorMask.v21))))}))}enableCollisionDetection(){return this.queueCommand(this.commands.sensor.enableCollisionAsync())}configureCollisionDetection(e=100,t=100,n=100,o=100,s=10,i=1){return this.queueCommand(this.commands.sensor.configureCollision(e,t,n,o,s,i))}queueCommand(e){return this.queue.queue({characteristic:this.apiV2Characteristic,command:e})}init(){return o(this,void 0,void 0,(function*(){return new Promise(((e,t)=>o(this,void 0,void 0,(function*(){this.queue=new a.Queue({match:(e,t)=>this.match(e,t),onExecute:e=>this.onExecute(e)}),this.eventsListeners={},this.commands=(0,s.factory)(),this.decoder=(0,i.factory)(((e,t)=>this.onPacketRead(e,t))),this.started=!1,this.server=yield this.peripheral.gatt.connect(),yield this.bindServices(),this.bindListeners(),e(void 0)}))))}))}onExecute(e){return o(this,void 0,void 0,(function*(){this.started&&(yield this.write(e.characteristic,e.command.raw))}))}match(e,t){return e.command.deviceId===t.command.deviceId&&e.command.commandId===t.command.commandId&&e.command.sequenceNumber===t.command.sequenceNumber}bindServices(){return new Promise(((e,t)=>{this.server.getPrimaryService(c.ServicesUUID.apiV2ControlService).then((t=>o(this,void 0,void 0,(function*(){this.apiV2Characteristic=yield t.getCharacteristic(c.CharacteristicUUID.apiV2Characteristic),this.server.getPrimaryService(c.ServicesUUID.nordicDfuService).then((t=>o(this,void 0,void 0,(function*(){this.antiDoSCharacteristic=yield t.getCharacteristic(c.CharacteristicUUID.antiDoSCharacteristic),this.dfuControlCharacteristic=yield t.getCharacteristic(c.CharacteristicUUID.dfuControlCharacteristic),this.subsCharacteristic=yield t.getCharacteristic(c.CharacteristicUUID.subsCharacteristic),e()}))))}))))}))}bindListeners(){this.apiV2Characteristic.startNotifications().then((()=>{this.apiV2Characteristic.addEventListener("characteristicvaluechanged",(e=>{this.onApiRead(new Uint8Array(e.target.value.buffer))}))})),this.dfuControlCharacteristic.startNotifications().then((()=>{this.dfuControlCharacteristic.addEventListener("characteristicvaluechanged",(e=>{this.onDFUControlNotify()}))}))}onPacketRead(e,t){e||(255===t.sequenceNumber?this.eventHandler(t):this.queue.onCommandProcessed({command:t}))}eventHandler(e){e.deviceId===r.DeviceId.sensor&&e.commandId===r.SensorCommandIds.collisionDetectedAsync?this.handleCollision(e):e.deviceId===r.DeviceId.sensor&&e.commandId===r.SensorCommandIds.sensorResponse&&this.handleSensorUpdate(e)}handleCollision(e){const t=this.eventsListeners.onCollision;t&&t(e)}handleSensorUpdate(e){const t=this.eventsListeners.onSensor;if(t){t((0,d.parseSensorEvent)(e.payload,this.sensorMask))}}onApiRead(e){e.forEach((e=>this.decoder.add(e)))}onDFUControlNotify(){return this.write(this.dfuControlCharacteristic,new Uint8Array([48]))}write(e,t){let n=Buffer.from(t);return e.writeValue(n)}}},76:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toys=void 0;const o=n(796),s=n(50),i=n(93),r=n(864),a=n(938),c=n(25);t.toys=[c.BB9E,a.LightningMcQueen,r.R2D2,i.R2Q5,s.SpheroMini,o.SpheroBolt].map((e=>e.advertisement))},938:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LightningMcQueen=void 0;const o=n(911);class LightningMcQueen extends o.RollableToy{driveAsRc(e,t){const n=this.commands.driving.driveAsRc(e,t);return this.queueCommand(n)}}t.LightningMcQueen=LightningMcQueen,LightningMcQueen.advertisement={name:"Lightning McQueen",prefix:"LM-",class:LightningMcQueen}},98:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Queue=void 0;t.Queue=class Queue{constructor(e){this.commandQueue=[],this.waitingForResponseQueue=[],this.queueListener=e}onCommandProcessed(e){const t=this.waitingForResponseQueue.find((t=>this.queueListener.match(t.payload,e)));t?(this.removeFromWaiting(t),t.success(e)):console.log("PACKET RECEIVED BUT NOT EXECUTING",e)}queue(e){return new Promise(((t,n)=>{this.commandQueue.push({payload:e,reject:n,success:t}),this.processCommand()}))}processCommand(){const e=this.commandQueue.shift();e&&(this.queueListener.onExecute(e.payload),this.waitingForResponseQueue.push(e),e.timeout=setTimeout((()=>this.onCommandTimedout(e)),5e3))}removeFromWaiting(e){const t=this.waitingForResponseQueue.indexOf(e);t>=0&&(this.waitingForResponseQueue.splice(t,1),clearTimeout(e.timeout))}onCommandTimedout(e){this.handleQueueError("Command Timedout",e),this.removeFromWaiting(e)}handleQueueError(e,t){t.reject(e)}}},864:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.R2D2=void 0;const o=n(911);class R2D2 extends o.RollableToy{constructor(){super(...arguments),this.maxVoltage=3.65,this.minVoltage=3.4}wake(){return this.queueCommand(this.commands.power.wake())}sleep(){return this.queueCommand(this.commands.power.sleep())}playAudioFile(e){return this.queueCommand(this.commands.userIo.playAudioFile(e))}turnDome(e){const t=this.calculateDomeAngle(e);return this.queueCommand(this.commands.userIo.turnDome(t))}setStance(e){return this.queueCommand(this.commands.userIo.setStance(e))}playAnimation(e){return this.queueCommand(this.commands.userIo.playAnimation(e))}calculateDomeAngle(e){const t=new Uint8Array(2);switch(e){case-1:return t[0]=191,t[1]=128,t;case 0:return t[0]=0,t[1]=0,t;case 1:return t[0]=63,t[1]=128,t}let n=Math.abs(e);const o=R2D2.hobIndex(n),s=Math.min(8-o,6),i=6-s;n<<=s,e<0&&(n|=32768),n|=16384;return 1===(4&i)>>2?n|=512:n&=512^n,1===(2&i)>>1?n|=256:n&=256^n,1===(1&i)?n|=128:n&=128^n,t[0]=255&n,t[1]=(65280&n)>>8,t}static hobIndex(e){const t=new Uint16Array(2);for(t[1]=0,t[0]=e;t[0]>0;)t[0]=t[0]>>1,t[1]=t[1]+1;return t[1]}}t.R2D2=R2D2,R2D2.advertisement={name:"R2-D2",prefix:"D2-",class:R2D2}},93:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.R2Q5=void 0;const o=n(864);class R2Q5 extends o.R2D2{}t.R2Q5=R2Q5,R2Q5.advertisement={name:"R2-Q5",prefix:"Q5-",class:R2Q5}},911:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(s,i){function r(e){try{c(o.next(e))}catch(e){i(e)}}function a(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RollableToy=void 0;const s=n(1);class RollableToy extends s.Core{roll(e,t,n){return this.queueCommand(this.commands.driving.drive(e,t,n))}rollTime(e,t,n,s){return o(this,void 0,void 0,(function*(){let o=!0;for(setTimeout((()=>o=!1),n);o;)yield this.queueCommand(this.commands.driving.drive(e,t,s));yield this.queueCommand(this.commands.driving.drive(0,t,s))}))}allLEDsRaw(e){return this.queueCommand(this.commands.userIo.allLEDsRaw(e))}setBackLedIntensity(e){return this.queueCommand(this.commands.userIo.setBackLedIntensity(e))}setMainLedBlueIntensity(e){return this.queueCommand(this.commands.userIo.setMainLedBlueIntensity(e))}setMainLedColor(e,t,n){return this.queueCommand(this.commands.userIo.setMainLedColor(e,t,n))}setMainLedGreenIntensity(e){return this.queueCommand(this.commands.userIo.setMainLedGreenIntensity(e))}setMainLedRedIntensity(e){return this.queueCommand(this.commands.userIo.setMainLedRedIntensity(e))}}t.RollableToy=RollableToy},796:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SpheroBolt=void 0;const o=n(842),s=n(911);class SpheroBolt extends s.RollableToy{constructor(){super(...arguments),this.maxVoltage=3.9,this.minVoltage=3.55,this.apiVersion=o.APIVersion.V21}}t.SpheroBolt=SpheroBolt,SpheroBolt.advertisement={name:"Sphero Bolt",prefix:"SB-",class:SpheroBolt}},50:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SpheroMini=void 0;const o=n(911);class SpheroMini extends o.RollableToy{constructor(){super(...arguments),this.maxVoltage=3.65,this.minVoltage=3.4}something1(){return this.queueCommand(this.commands.systemInfo.something())}something2(){return this.queueCommand(this.commands.power.something2())}something3(){return this.queueCommand(this.commands.power.something3())}something4(){return this.queueCommand(this.commands.power.something4())}something5(){return this.queueCommand(this.commands.somethingApi.something5())}something6(){return this.queueCommand(this.commands.systemInfo.something6())}something7(){return this.queueCommand(this.commands.systemInfo.something7())}}t.SpheroMini=SpheroMini,SpheroMini.advertisement={name:"Sphero Mini",prefix:"SM-",class:SpheroMini}},842:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SensorMaskV2=t.SensorControlDefaults=t.SensorMaskValues=t.APIVersion=t.Stance=t.CharacteristicUUID=t.ServicesUUID=void 0,function(e){e.apiV2ControlService="00010001-574f-4f20-5370-6865726f2121",e.nordicDfuService="00020001-574f-4f20-5370-6865726f2121"}(t.ServicesUUID||(t.ServicesUUID={})),function(e){e.apiV2Characteristic="00010002-574f-4f20-5370-6865726f2121",e.dfuControlCharacteristic="00020002-574f-4f20-5370-6865726f2121",e.dfuInfoCharacteristic="00020004-574f-4f20-5370-6865726f2121",e.antiDoSCharacteristic="00020005-574f-4f20-5370-6865726f2121",e.subsCharacteristic="00020003-574f-4f20-5370-6865726f2121"}(t.CharacteristicUUID||(t.CharacteristicUUID={})),function(e){e[e.tripod=1]="tripod",e[e.bipod=2]="bipod"}(t.Stance||(t.Stance={})),function(e){e[e.V2=0]="V2",e[e.V21=1]="V21"}(t.APIVersion||(t.APIVersion={})),function(e){e[e.off=0]="off",e[e.locator=1]="locator",e[e.gyro=2]="gyro",e[e.orientation=3]="orientation",e[e.accelerometer=4]="accelerometer"}(t.SensorMaskValues||(t.SensorMaskValues={})),function(e){e[e.intervalToHz=1e3]="intervalToHz",e[e.interval=250]="interval"}(t.SensorControlDefaults||(t.SensorControlDefaults={})),function(e){e[e.off=0]="off",e[e.velocityY=8]="velocityY",e[e.velocityX=16]="velocityX",e[e.locatorY=32]="locatorY",e[e.locatorX=64]="locatorX",e[e.gyroZFilteredV2=1024]="gyroZFilteredV2",e[e.gyroYFilteredV2=2048]="gyroYFilteredV2",e[e.gyroXFilteredV2=4096]="gyroXFilteredV2",e[e.gyroZFilteredV21=8388608]="gyroZFilteredV21",e[e.gyroYFilteredV21=16777216]="gyroYFilteredV21",e[e.gyroXFilteredV21=33554432]="gyroXFilteredV21",e[e.accelerometerZFiltered=8192]="accelerometerZFiltered",e[e.accelerometerYFiltered=16384]="accelerometerYFiltered",e[e.accelerometerXFiltered=32768]="accelerometerXFiltered",e[e.imuYawAngleFiltered=65536]="imuYawAngleFiltered",e[e.imuRollAngleFiltered=131072]="imuRollAngleFiltered",e[e.imuPitchAngleFiltered=262144]="imuPitchAngleFiltered",e[e.gyroFilteredAllV2=7168]="gyroFilteredAllV2",e[e.gyroFilteredAllV21=58720256]="gyroFilteredAllV21",e[e.imuAnglesFilteredAll=458752]="imuAnglesFilteredAll",e[e.accelerometerFilteredAll=57344]="accelerometerFilteredAll",e[e.locatorAll=120]="locatorAll"}(t.SensorMaskV2||(t.SensorMaskV2={}))},561:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseSensorEvent=t.convertBinaryToFloat=t.flatSensorMask=t.sensorValuesToRaw=void 0;const o=n(842),s=(e,t=o.APIVersion.V2)=>e.reduce(((e,n)=>{let s;switch(n){case o.SensorMaskValues.accelerometer:s=o.SensorMaskV2.accelerometerFilteredAll;break;case o.SensorMaskValues.locator:s=o.SensorMaskV2.locatorAll;break;case o.SensorMaskValues.orientation:s=o.SensorMaskV2.imuAnglesFilteredAll}return n===o.SensorMaskValues.gyro&&t===o.APIVersion.V2&&(s=o.SensorMaskV2.gyroFilteredAllV2),s?[...e,s]:e}),[]),i=(e,t=o.APIVersion.V2)=>e.reduce(((e,n)=>{let s;return n===o.SensorMaskValues.gyro&&t===o.APIVersion.V21&&(s=o.SensorMaskV2.gyroFilteredAllV21),s?[...e,s]:e}),[]);t.sensorValuesToRaw=(e,t=o.APIVersion.V2)=>({v2:s(e,t),v21:i(e,t)});t.flatSensorMask=e=>e.reduce(((e,t)=>e|t),0);t.convertBinaryToFloat=(e,t)=>{if(t+4>e.length)return console.log("offset exceeded Limit of array "+e.length),0;const n=new Uint8Array([e[0+t],e[1+t],e[2+t],e[3+t]]);return new DataView(n.buffer).getFloat32(0)};const r=e=>{const n=[];for(let o=0;o<e.length;o+=4)n.push((0,t.convertBinaryToFloat)(e,o));return n};t.parseSensorEvent=(e,t)=>{let n={floats:r(e),sensorMask:t,location:0,response:{}};return n=(e=>{const{sensorMask:t,floats:n,response:s,location:i}=e;return t.v2.indexOf(o.SensorMaskV2.imuAnglesFilteredAll)>=0?(s.angles={pitch:n[i],roll:n[i+1],yaw:n[i+2]},Object.assign(Object.assign({},e),{response:s,location:i+3})):e})(n),n=(e=>{const{sensorMask:t,floats:n,response:s,location:i}=e;return t.v2.indexOf(o.SensorMaskV2.accelerometerFilteredAll)>=0?(s.accelerometer={filtered:{x:n[i],y:n[i+1],z:n[i+2]}},Object.assign(Object.assign({},e),{response:s,location:i+3})):e})(n),n=(e=>{const{sensorMask:t,floats:n,response:s,location:i}=e;if(t.v2.indexOf(o.SensorMaskV2.gyroFilteredAllV2)>=0){const t=2e3/32767;return s.gyro={filtered:{x:n[i]*t,y:n[i+1]*t,z:n[i+2]*t}},Object.assign(Object.assign({},e),{response:s,location:i+3})}return e})(n),n=(e=>{const{sensorMask:t,floats:n,response:s,location:i}=e;if(t.v2.indexOf(o.SensorMaskV2.locatorAll)>=0){const t=100;return s.locator={position:{x:n[i]*t,y:n[i+1]*t},velocity:{x:n[i+2]*t,y:n[i+3]*t}},Object.assign(Object.assign({},e),{response:s,location:i+4})}return e})(n),n=(e=>{const{sensorMask:t,floats:n,response:s,location:i}=e;return t.v21.indexOf(o.SensorMaskV2.gyroFilteredAllV21)>=0?(s.gyro={filtered:{x:n[i],y:n[i+1],z:n[i+2]}},Object.assign(Object.assign({},e),{response:s,location:i+3})):e})(n),n.response}},310:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.combineFlags=t.wait=t.toPromise=void 0;t.toPromise=(e,t,n)=>new Promise(((o,s)=>{const i=n||[];t.bind(e)(...i,((e,...t)=>{e?s(e):o(t)}))}));t.wait=e=>new Promise((t=>setTimeout(t,e)));t.combineFlags=e=>e.reduce(((e,t)=>e|t),0)}},n={};function o(e){var s=n[e];if(void 0!==s)return s.exports;var i=n[e]={exports:{}};return t[e].call(i.exports,i,i.exports,o),i.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var s={};(()=>{o.d(s,{$b:()=>l,St:()=>d,x2:()=>SpheroInputSource,wG:()=>u,QL:()=>SpheroSensorSource});const t=(e=>{var t={};return o.d(t,e),t})({Absolute2DPosition:()=>e.Absolute2DPosition,Absolute3DPosition:()=>e.Absolute3DPosition,Acceleration:()=>e.Acceleration,AngleUnit:()=>e.AngleUnit,AngularVelocity:()=>e.AngularVelocity,AngularVelocityUnit:()=>e.AngularVelocityUnit,DataFrame:()=>e.DataFrame,DataObject:()=>e.DataObject,Gyroscope:()=>e.Gyroscope,LengthUnit:()=>e.LengthUnit,LinearAccelerationSensor:()=>e.LinearAccelerationSensor,LinearVelocity:()=>e.LinearVelocity,LinearVelocitySensor:()=>e.LinearVelocitySensor,LinearVelocityUnit:()=>e.LinearVelocityUnit,Orientation:()=>e.Orientation,Quaternion:()=>e.Quaternion,ReferenceSpace:()=>e.ReferenceSpace,RelativeOrientationSensor:()=>e.RelativeOrientationSensor,SerializableMember:()=>e.SerializableMember,SerializableObject:()=>e.SerializableObject,SourceNode:()=>e.SourceNode,TimeService:()=>e.TimeService,TimeUnit:()=>e.TimeUnit});function n(e,t,n,o){var s,i=arguments.length,r=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(r=(i<3?s(r):i>3?s(t,n,r):s(t,n))||r);return i>3&&r&&Object.defineProperty(t,n,r),r}function i(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function r(e,t,n,o){return new(n||(n=Promise))((function(s,i){function r(e){try{c(o.next(e))}catch(e){i(e)}}function a(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}c((o=o.apply(e,t||[])).next())}))}Object.create;Object.create;var a,c=o(529);let d=a=class SpheroDataObject extends t.DataObject{constructor(e,t,n){super(t,n),this.toy=e}static findSpheroMini(){return new Promise(((e,n)=>{c.ZY.findSpheroMini().then((n=>{const o=new a(n);o.setPosition(new t.Absolute3DPosition(0,0,0)),e(o)})).catch((e=>{n(e)}))}))}};d=a=n([(0,t.SerializableObject)(),i("design:paramtypes",[Object,String,String])],d);let l=class SpheroDataFrame extends t.DataFrame{constructor(e){super(e)}};n([(0,t.SerializableMember)(),i("design:type",Number)],l.prototype,"x",void 0),n([(0,t.SerializableMember)(),i("design:type",Number)],l.prototype,"y",void 0),l=n([(0,t.SerializableObject)(),i("design:paramtypes",[d])],l);class SpheroSensorSource extends t.SourceNode{constructor(e){super(e),this._calibrated=!1,this._calibrated=this.options.skipCalibration,this.once("build",this._initSensors.bind(this))}get toy(){return this.source.toy}_initSensors(){return new Promise(((e,n)=>{this.referenceSpace=new t.ReferenceSpace(this.graph.referenceSpace);const o=this.source;o.toy.on(c.ju.onSensor,this._onSensorEvent.bind(this)),this.options.skipSensorConfiguration?e():o.toy.configureSensorStream(this.options.interval).then((()=>{e()})).catch(n)}))}_onSensorEvent(e){this._calibrated||(this.referenceSpace.rotation(t.Quaternion.fromEuler({yaw:-e.angles.yaw,pitch:-e.angles.pitch,roll:-e.angles.roll,unit:t.AngleUnit.DEGREE})),this.referenceSpace.translation(-e.locator.position.x,-e.locator.position.y),this._calibrated=!0);const n=this.source,o=n.getPosition()||new t.Absolute2DPosition(0,0);o.timestamp=t.TimeService.now(),o.unit=t.LengthUnit.CENTIMETER,this.options.sensors.includes(u.VELOCITY)&&(o.velocity.linear=new t.LinearVelocity(e.locator.velocity.x,e.locator.velocity.y,0,t.LinearVelocityUnit.CENTIMETER_PER_SECOND)),this.options.sensors.includes(u.GYROSCOPE)&&(o.velocity.angular=new t.AngularVelocity(e.gyro.filtered.x,e.gyro.filtered.y,e.gyro.filtered.z,t.AngularVelocityUnit.DEGREE_PER_SECOND)),this.options.sensors.includes(u.LOCATION)&&(o.unit=t.LengthUnit.CENTIMETER,o.x=e.locator.position.x,o.y=e.locator.position.y,o.orientation=t.Orientation.fromEuler({yaw:e.angles.yaw,pitch:e.angles.pitch,roll:e.angles.roll,unit:t.AngleUnit.DEGREE})),n.setPosition(o,this.referenceSpace);const s=new l(n);new t.Gyroscope(this.uid+"_gyro").value=o.velocity.angular.clone();new t.LinearVelocitySensor(this.uid+"_linearvel").value=o.velocity.linear.clone();new t.RelativeOrientationSensor(this.uid+"_relativeorientation").value=o.orientation.clone();new t.LinearAccelerationSensor(this.uid+"_linearaccl").value=new t.Acceleration(e.accelerometer.filtered.x,e.accelerometer.filtered.y,e.accelerometer.filtered.z),s.x=o.x,s.y=o.y,this.push(s)}onPull(){return new Promise((e=>{e(new l(this.source))}))}}var u;!function(e){e[e.LOCATION=0]="LOCATION",e[e.GYROSCOPE=1]="GYROSCOPE",e[e.ACCELEROMETER=2]="ACCELEROMETER",e[e.VELOCITY=3]="VELOCITY"}(u||(u={}));class SpheroInputSource extends t.SourceNode{constructor(e){super(e)}get toy(){return this.source.toy}onPull(){return new Promise((e=>{e(new l(this.source))}))}roll(e,n,o=[]){return new Promise(((s,i)=>{const r=this.source,a=r.getPosition()||new t.Absolute2DPosition(0,0);a.unit=t.LengthUnit.CENTIMETER,a.timestamp=t.TimeService.now(),a.orientation=t.Orientation.fromEuler({yaw:n,pitch:0,roll:0,unit:t.AngleUnit.DEGREE}),a.velocity.linear=new t.LinearVelocity(1/255*e,0,0,t.LinearVelocityUnit.METER_PER_SECOND),r.setPosition(a);const c=new l(r);r.toy.roll(e,n,o).then((()=>this.push(c))).then((()=>{setTimeout((()=>{s()}),10)})).catch(i)}))}rollTime(e,n,o,s,i=[]){return new Promise(((a,c)=>r(this,void 0,void 0,(function*(){let r=!0;for(setTimeout((()=>r=!1),s.convert(o,t.TimeUnit.MILLISECOND));r;)yield this.roll(e,n,i);this.roll(0,n,i).then((()=>{a()})).catch((e=>{c(e)}))}))))}}})();var i=s.$b,r=s.St,a=s.x2,c=s.wG,d=s.QL;export{i as SpheroDataFrame,r as SpheroDataObject,a as SpheroInputSource,c as SpheroSensor,d as SpheroSensorSource};
//# sourceMappingURL=openhps-sphero.es.min.js.map