# SensoræœåŠ¡æ¦‚è¿° ## 简介 SensoræœåŠ¡å系统æä¾›äº†è½»é‡çº§ä¼ 感器æœåŠ¡åŸºç¡€æ¡†æž¶ï¼Œæ‚¨å¯ä»¥ä½¿ç”¨è¯¥æ¡†æž¶æŽ¥å£å®žçŽ°ä¼ æ„Ÿå™¨åˆ—è¡¨æŸ¥è¯¢ã€ä¼ 感器控制ã€ä¼ 感器订阅去订阅ç‰åŠŸèƒ½ã€‚è½»é‡çº§ä¼ 感器æœåŠ¡æ¡†æž¶å¦‚ä¸‹å›¾æ‰€ç¤ºï¼š **图1** SensoræœåŠ¡æ¡†æž¶å›¾  - Sensor API:æä¾›ä¼ 感器的基础API,主è¦åŒ…嫿Ÿ¥è¯¢ä¼ 感器的列表ã€è®¢é˜…/å–æ¶ˆä¼ 感器数æ®ã€æ‰§è¡ŒæŽ§åˆ¶å‘½ä»¤ç‰ï¼Œç®€åŒ–应用开å‘。 - Sensor Framework:主è¦å®žçŽ°ä¼ æ„Ÿå™¨çš„è®¢é˜…ç®¡ç†ã€æ•°æ®é€šé“的创建ã€é”€æ¯ç‰ï¼Œå®žçŽ°ä¸Žä¼ æ„Ÿå™¨æœåŠ¡å±‚çš„é€šä¿¡ã€‚ - Sensor Service:主è¦å®žçްHDFå±‚æ•°æ®æŽ¥æ”¶ã€è§£æžã€åˆ†å‘ï¼Œå¯¹è®¾å¤‡ä¼ æ„Ÿå™¨çš„ç®¡ç†ï¼Œæ•°æ®ä¸ŠæŠ¥ç®¡ç†ä»¥åŠä¼ 感器æƒé™ç®¡æŽ§ç‰ã€‚ ## 接å£è¯´æ˜Ž **表1** SensoræœåŠ¡æ¡†æž¶API接å£åŠŸèƒ½ä»‹ç» | 接å£å | 接å£è¯´æ˜Ž | 傿•°è¦æ±‚ | | -------- | -------- | -------- | | int32_t **GetAllSensors**( <br/> SensorInfo \*\*sensorIn <br/> fo, int32_t \*count) | **作用**:获å–ç³»ç»Ÿä¸æ‰€æœ‰ä¼ 感器的信æ¯ã€‚<br/>**返回值**:0表示æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorInfo**(NOT NULL)ï¼šè¾“å‡ºç³»ç»Ÿä¸æ‰€æœ‰ä¼ 感器的信æ¯ï¼›<br/>**count**(NOT NULL)ï¼šè¾“å‡ºç³»ç»Ÿä¸æ‰€æœ‰ä¼ 感器的数é‡ã€‚ | | int32_t **SubscribeSensor** <br/> (int32_t sensorTypeId, <br/> SensorUser \*user) | **作用**ï¼šè®¢é˜…ä¼ æ„Ÿå™¨æ•°æ®ï¼Œç³»ç»Ÿä¼šå°†èŽ·å–åˆ°çš„ä¼ æ„Ÿå™¨æ•°æ®ä¸ŠæŠ¥ç»™è®¢é˜…者。<br/>**返回值**: 0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹;<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器。 | | int32_t **UnsubscribeSensor** <br/> (int32_t sensorTypeId, SensorUser \*user) | **作用**ï¼šåŽ»è®¢é˜…ä¼ æ„Ÿå™¨æ•°æ®ï¼Œç³»ç»Ÿå°†å–æ¶ˆä¼ æ„Ÿå™¨æ•°æ®ä¸ŠæŠ¥ç»™è®¢é˜…者。<br/>**返回值**:0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹;<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器。 | | int32_t **SetBatch**(int32_t sensorTypeId, SensorUser <br/> \*user, int64_t samplingInterval, int64_t reportInterval) | **作用**ï¼šè®¾ç½®ä¼ æ„Ÿå™¨çš„æ•°æ®é‡‡æ ·é—´éš”和数æ®ä¸ŠæŠ¥é—´éš”<br/>**返回值**:0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹;<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器;<br/>**samplingInterval**ï¼šä¼ æ„Ÿå™¨æ•°æ®é‡‡æ ·é—´éš”,å•ä½çº³ç§’;<br/>**reportInterval**ï¼šä¼ æ„Ÿå™¨æ•°æ®ä¸ŠæŠ¥é—´éš”,å•ä½çº³ç§’。 | | int32_t **ActivateSensor**(int32_t sensorTypeId, <br/> SensorUser \*user) | **作用**ï¼šä½¿èƒ½ä¸€ä¸ªä¼ æ„Ÿå™¨è®¢é˜…ç”¨æˆ·ã€‚<br/>**返回值**:0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹ï¼›<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器。 | | int32_t **DeactivateSensor**(int32_t sensor <br/> TypeId, SensorUser \*user) | **作用**ï¼šåŽ»ä½¿èƒ½ä¸€ä¸ªä¼ æ„Ÿå™¨è®¢é˜…ç”¨æˆ·<br/>**返回值**:0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹ï¼›<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器。 | | int32_t **SetMode**(int32_t sensorTypeId, <br/> SensorUser \*user, int32_t mode) | **作用**ï¼šè®¾ç½®ä¼ æ„Ÿå™¨çš„å·¥ä½œæ¨¡å¼<br/>**返回值**:0为æˆåŠŸï¼Œå…¶ä»–è¿”å›žå€¼è¡¨ç¤ºå¤±è´¥ã€‚ | **sensorTypeId**ï¼šå”¯ä¸€æ ‡è¯†ä¸€ä¸ªä¼ æ„Ÿå™¨ç±»åž‹ï¼›<br/>**user**(NOT NULL)ï¼šä¼ æ„Ÿå™¨çš„ç”¨æˆ·ï¼Œç”¨äºŽä»Žä¼ æ„Ÿå™¨èŽ·å–æ•°æ®ï¼Œä¸€èˆ¬ä¸€ä¸ªç”¨æˆ·åªå±žäºŽä¸€ä¸ªä¼ 感器;<br/>**mode**ï¼šä¼ æ„Ÿå™¨çš„æ•°æ®ä¸ŠæŠ¥æ¨¡å¼ã€‚ |