{"id":252306,"date":"2015-03-03T15:38:02","date_gmt":"2015-03-03T11:38:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=252306"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=252306","title":{"rendered":"\u0427\u0442\u0435\u043d\u0438\u0435 GATT-\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a Bluetooth \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"},"content":{"rendered":"<p>     \t\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u0430\u044e\u0437\u0435\u0440\u044b!<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u0441\u0432\u043e\u0435\u0439 ANE \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Bluetooth LE \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f iOS+OSX, \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u0432\u0430\u0448\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u0443 bluetooth-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u044d\u0442\u0438\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 \u044f \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u043d\u0430\u0442\u043e\u043a bluetooth \u0438 \u0432\u0441\u0435\u0433\u043e \u0447\u0442\u043e \u0441 \u043d\u0438\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043e, \u0438 \u0434\u043b\u044f \u043c\u043d\u0435 \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043d\u043e\u0432\u0438\u043d\u043a\u0443 \ud83d\ude42 \u041f\u043e\u0435\u0445\u0430\u043b\u0438\u2026<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 OSX \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<br \/>\n  \u0421\u043a\u0430\u043d\u0438\u0440\u0443\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e macbook, \u0443\u0432\u0438\u0434\u0435\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b:<br \/>\n    UUID: 180A \u2014 Device Information  UUID: D0611E78-BBB4-4591-A5F8-487910AE4366 \u2014 Continuity  &#8230;  <\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 Continuity<br \/>\n  \u0421\u0435\u0440\u0432\u0438\u0441 Continuity \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 Apple \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0437\u0434\u0435\u0441\u044c: www.apple.com\/ru\/ios\/whats-new\/continuity\/. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043d\u0430\u043f\u0438\u0448\u0443 \u043e\u0431 \u044d\u0442\u043e\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 180A (Device Information)<br \/>\n  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441 180A \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c GATT-\u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 GATT-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 180A. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438:<br \/>\n    Manufacturer Name String  Model Number String  \u2026 \u0438 \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e<br \/>\n  \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043c\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438:<br \/>\n    UUID: 2A29 \u2014 Manufacturer Name String  UUID: 2A24 \u2014 Model Number String<br \/>\n  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 GATT-\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e uuid, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 2A29. \u0412 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0438 \u043e\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 utf8s:<\/p>\n<p>  \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c:<br \/>\n  var bytes:ByteArray = &#8230;; var string:String = bytes.readUTFBytes(bytes.bytesAvailable);<br \/>\n  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>\n  2A29 &#8212; Apple Inc 2A24 &#8212; MacBookPro10,2<br \/>\n  \u0421 \u044d\u0442\u0438\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u044b\u043b\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0438\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<br \/>\n  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u041c\u043e\u0439 iPhone \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b:<br \/>\n    UUID: 180F   UUID: 1805   UUID: 7905F431-B5CE-4E99-A40F-4B1E122D00D0   \u2026   <\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 7905F431-B5CE-4E99-A40F-4B1E122D00D0, \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 Apple, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0437\u0434\u0435\u0441\u044c: developer.apple.com\/library\/ios\/documentation\/CoreBluetooth\/Reference\/AppleNotificationCenterServiceSpecification\/Specification\/Specification.html. \u0411\u0443\u0434\u0435\u0442 \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u043f\u0438\u0448\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 bluetooth-\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Apple.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 180F (Battery Service)<br \/>\n  \u0421\u0435\u0440\u0432\u0438\u0441 180F \u2014 \u044d\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u0440\u044f\u0434\u0435 \u0431\u0430\u0442\u0430\u0440\u0435\u0438. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u0443 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 2A19, \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 uint8:<\/p>\n<p>  \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<br \/>\n  var bytes:ByteArray = &#8230;; var level:int = bytes.readByte();<br \/>\n  \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 0 \u0434\u043e 100, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0443\u0440\u043e\u0432\u043d\u044e \u0437\u0430\u0440\u044f\u0434\u0430 \u0431\u0430\u0442\u0430\u0440\u0435\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 1805 (Current Time Service)<br \/>\n  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 1805 \u2014 \u044d\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u043e\u0435 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0443 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430:<br \/>\n    UUID: 2A0F \u2014 Local Time Information   UUID: 2A2B \u2014 Current Time   <\/p>\n<p>  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A0F (Local Time Information)<br \/>\n  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A0F \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u043f\u043e\u043b\u044f:<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f Time Zone \u0438 \u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e \u043e\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 sint8.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043b\u0435 \u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 2A0F \u044d\u0442\u043e Daylight Saving Time \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u0444\u043e\u0440\u043c\u0430\u0442: uint8.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 2A0F \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<br \/>\n  var bytes:ByteArray = &#8230;; var timeZoneValue:int = bytes.readByte(); \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c Time Zone var dstValue:int = bytes.readUnsignedByte(); \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c Daylight Saving Time<br \/>\n  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>\n  TimeZone: 12 Daylight Saving Time: 0<br \/>\n  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 12 \u0432 \u043f\u043e\u043b\u0435 TimeZone \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0437\u043e\u043d\u0435 UTC+3:00, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e XML \u0444\u0430\u0439\u043b\u0443:<br \/>\n  \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043e\u043d \u0432 XML&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;!&#8212; Copyright 2011 Bluetooth SIG, Inc. All rights reserved. &#8212;&gt; &lt;Characteristic xsi:noNamespaceSchemaLocation=&quot;http:\/\/schemas.bluetooth.org\/Documents\/characteristic.xsd&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; name=&quot;Time Zone&quot; type=&quot;org.bluetooth.characteristic.time_zone&quot; uuid=&quot;2A0E&quot;&gt; \t&lt;InformativeText&gt; \t&lt;\/InformativeText&gt; \t&lt;Value&gt; \t\t&lt;Field name=&quot;Time Zone&quot;&gt; \t\t\t&lt;Requirement&gt;Mandatory&lt;\/Requirement&gt; \t\t\t&lt;Format&gt;sint8&lt;\/Format&gt; \t\t\t&lt;Minimum&gt;-48&lt;\/Minimum&gt; \t\t\t&lt;Maximum&gt;56&lt;\/Maximum&gt; \t\t\t&lt;Enumerations&gt; \t\t\t\t&lt;Enumeration key=&quot;-48&quot; value=&quot;UTC-12:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-44&quot; value=&quot;UTC-11:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-40&quot; value=&quot;UTC-10:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-38&quot; value=&quot;UTC-9:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-36&quot; value=&quot;UTC-9:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-32&quot; value=&quot;UTC-8:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-28&quot; value=&quot;UTC-7:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-24&quot; value=&quot;UTC-6:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-20&quot; value=&quot;UTC-5:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-18&quot; value=&quot;UTC-4:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-16&quot; value=&quot;UTC-4:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-14&quot; value=&quot;UTC-3:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-12&quot; value=&quot;UTC-3:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-8&quot; value=&quot;UTC-2:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-4&quot; value=&quot;UTC-1:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;0&quot; value=&quot;UTC+0:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;4&quot; value=&quot;UTC+1:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;8&quot; value=&quot;UTC+2:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;12&quot; value=&quot;UTC+3:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;14&quot; value=&quot;UTC+3:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;16&quot; value=&quot;UTC+4:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;18&quot; value=&quot;UTC+4:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;20&quot; value=&quot;UTC+5:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;22&quot; value=&quot;UTC+5:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;23&quot; value=&quot;UTC+5:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;24&quot; value=&quot;UTC+6:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;26&quot; value=&quot;UTC+6:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;28&quot; value=&quot;UTC+7:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;32&quot; value=&quot;UTC+8:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;35&quot; value=&quot;UTC+8:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;36&quot; value=&quot;UTC+9:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;38&quot; value=&quot;UTC+9:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;40&quot; value=&quot;UTC+10:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;42&quot; value=&quot;UTC+10:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;44&quot; value=&quot;UTC+11:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;46&quot; value=&quot;UTC+11:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;48&quot; value=&quot;UTC+12:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;51&quot; value=&quot;UTC+12:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;52&quot; value=&quot;UTC+13:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;56&quot; value=&quot;UTC+14:00&quot; \/&gt; \t\t\t&lt;\/Enumerations&gt;             &lt;AdditionalValues&gt; \t\t\t\t&lt;Enumeration key=&quot;-128&quot; value=&quot;time zone offset is not known&quot;\/&gt; \t\t\t&lt;\/AdditionalValues&gt;  \t\t&lt;\/Field&gt; \t&lt;\/Value&gt; &lt;\/Characteristic&gt;  <\/p>\n<p>  c\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u044f Time Zone \u043d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 Download \/ View \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044f.<\/p>\n<p>  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A2B (Current Time)<br \/>\n  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A2B \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0438 \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u043e\u0433\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0439, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u042f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0434, \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430:<br \/>\n  var bytes:ByteArray = &#8230;; bytes.endian = Endian.LITTLE_ENDIAN; \/\/ var year:int = b.readUnsignedShort(); \/\/ \u0433\u043e\u0434  var month:int = b.readUnsignedByte(); \/\/ \u043c\u0435\u0441\u044f\u0446 (\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 1) var day:int = b.readUnsignedByte(); \/\/ \u0434\u0435\u043d\u044c  (\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 1) var hours:int = b.readUnsignedByte(); \/\/ \u0447\u0430\u0441\u044b var minutes:int = b.readUnsignedByte(); \/\/ \u043c\u0438\u043d\u0443\u0442\u044b var seconds:int = b.readUnsignedByte(); \/\/ \u0441\u0435\u043a\u0443\u043d\u0434\u044b \/\/ var dayOfWeek:int = b.readUnsignedByte(); \/\/ \u0434\u0435\u043d\u044c \u043d\u0435\u0434\u0435\u043b\u0438  (\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 0) var fraction:int = b.readUnsignedByte(); \/\/ \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b var adjustReason:int = b.readUnsignedByte(); \/\/ ??? <\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432.<br \/>\n  \u041f\u0435\u0440\u0432\u043e\u0435: \u0432 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u0445 \u0432\u0441\u0435\u0445 GATT \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u0441\u043a\u0430\u0437\u0430\u043d\u043e:<br \/>\n  The fields in the above table are in the order of LSO to MSO. Where LSO = Least Significant Octet and MSO = Most Significant Octet.<br \/>\n  \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0432 ByteArray \u043f\u0435\u0440\u0432\u044b\u043c \u0438\u0434\u0435\u0442 \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0430\u0439\u0442, \u0432 AIR \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 endian:<br \/>\n  bytes.endian = Endian.LITTLE_ENDIAN; <\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0435: \u043f\u043e\u043b\u0435 fraction, \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u2014 \u044d\u0442\u043e 1\/256\u044f \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0442.\u0435. \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434:<br \/>\n  var milliseconds:int = Math.floor(fraction\/256*1000); <\/p>\n<p>  \u0418 \u0442\u0440\u0435\u0442\u044c\u0435: \u044f \u0442\u0430\u043a \u0438 \u043d\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Adjust Reason. \u041a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u2014 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 :).<\/p>\n<p>  \u0421\u0441\u044b\u043b\u043a\u0438:<br \/>\n    GATT \u0441\u0435\u0440\u0432\u0438\u0441\u044b  GATT \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438  \u0412\u0438\u0434\u0435\u043e, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 GATT-\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0441 OSX \u0438 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438  ANE \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Bluetooth \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u0422\u0430\u043c \u0436\u0435 \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 iOS \u0438 OSX \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a        \t \t   \thttp:\/\/habrahabr.ru\/post\/251937\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u0430\u044e\u0437\u0435\u0440\u044b!<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u0441\u0432\u043e\u0435\u0439 ANE \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Bluetooth LE \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f iOS+OSX, \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u0432\u0430\u0448\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u0443 bluetooth-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u044d\u0442\u0438\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 \u044f \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u043d\u0430\u0442\u043e\u043a bluetooth \u0438 \u0432\u0441\u0435\u0433\u043e \u0447\u0442\u043e \u0441 \u043d\u0438\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043e, \u0438 \u0434\u043b\u044f \u043c\u043d\u0435 \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043d\u043e\u0432\u0438\u043d\u043a\u0443 \ud83d\ude42 \u041f\u043e\u0435\u0445\u0430\u043b\u0438\u2026<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 OSX \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<br \/>\n  \u0421\u043a\u0430\u043d\u0438\u0440\u0443\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e macbook, \u0443\u0432\u0438\u0434\u0435\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b:<br \/>\n    UUID: 180A \u2014 Device Information  UUID: D0611E78-BBB4-4591-A5F8-487910AE4366 \u2014 Continuity  &#8230;  <\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 Continuity<br \/>\n  \u0421\u0435\u0440\u0432\u0438\u0441 Continuity \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 Apple \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0437\u0434\u0435\u0441\u044c: www.apple.com\/ru\/ios\/whats-new\/continuity\/. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043d\u0430\u043f\u0438\u0448\u0443 \u043e\u0431 \u044d\u0442\u043e\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 180A (Device Information)<br \/>\n  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441 180A \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c GATT-\u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 GATT-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 180A. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438:<br \/>\n    Manufacturer Name String  Model Number String  \u2026 \u0438 \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e<br \/>\n  \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043c\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438:<br \/>\n    UUID: 2A29 \u2014 Manufacturer Name String  UUID: 2A24 \u2014 Model Number String<br \/>\n  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 GATT-\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e uuid, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 2A29. \u0412 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0438 \u043e\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 utf8s:<\/p>\n<p>  \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c:<br \/>\n  var bytes:ByteArray = &#8230;; var string:String = bytes.readUTFBytes(bytes.bytesAvailable);<br \/>\n  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>\n  2A29 &#8212; Apple Inc 2A24 &#8212; MacBookPro10,2<br \/>\n  \u0421 \u044d\u0442\u0438\u043c\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u044b\u043b\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0438\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<br \/>\n  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u041c\u043e\u0439 iPhone \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043c\u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b:<br \/>\n    UUID: 180F   UUID: 1805   UUID: 7905F431-B5CE-4E99-A40F-4B1E122D00D0   \u2026   <\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 7905F431-B5CE-4E99-A40F-4B1E122D00D0, \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 Apple, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0437\u0434\u0435\u0441\u044c: developer.apple.com\/library\/ios\/documentation\/CoreBluetooth\/Reference\/AppleNotificationCenterServiceSpecification\/Specification\/Specification.html. \u0411\u0443\u0434\u0435\u0442 \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u043f\u0438\u0448\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0441\u0442 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 bluetooth-\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Apple.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 180F (Battery Service)<br \/>\n  \u0421\u0435\u0440\u0432\u0438\u0441 180F \u2014 \u044d\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0437\u0430\u0440\u044f\u0434\u0435 \u0431\u0430\u0442\u0430\u0440\u0435\u0438. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u0443 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 2A19, \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 uint8:<\/p>\n<p>  \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<br \/>\n  var bytes:ByteArray = &#8230;; var level:int = bytes.readByte();<br \/>\n  \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 0 \u0434\u043e 100, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0443\u0440\u043e\u0432\u043d\u044e \u0437\u0430\u0440\u044f\u0434\u0430 \u0431\u0430\u0442\u0430\u0440\u0435\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0421\u0435\u0440\u0432\u0438\u0441 1805 (Current Time Service)<br \/>\n  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 1805 \u2014 \u044d\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u043e\u0435 iOS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0443 \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430:<br \/>\n    UUID: 2A0F \u2014 Local Time Information   UUID: 2A2B \u2014 Current Time   <\/p>\n<p>  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A0F (Local Time Information)<br \/>\n  \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 2A0F \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u043f\u043e\u043b\u044f:<\/p>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f Time Zone \u0438 \u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e \u043e\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 sint8.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043b\u0435 \u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 2A0F \u044d\u0442\u043e Daylight Saving Time \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u0444\u043e\u0440\u043c\u0430\u0442: uint8.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0443 2A0F \u0432 AIR \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<br \/>\n  var bytes:ByteArray = &#8230;; var timeZoneValue:int = bytes.readByte(); \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c Time Zone var dstValue:int = bytes.readUnsignedByte(); \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c Daylight Saving Time<br \/>\n  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<br \/>\n  TimeZone: 12 Daylight Saving Time: 0<br \/>\n  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 12 \u0432 \u043f\u043e\u043b\u0435 TimeZone \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0437\u043e\u043d\u0435 UTC+3:00, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e XML \u0444\u0430\u0439\u043b\u0443:<br \/>\n  \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043e\u043d \u0432 XML&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;!&#8212; Copyright 2011 Bluetooth SIG, Inc. All rights reserved. &#8212;&gt; &lt;Characteristic xsi:noNamespaceSchemaLocation=&quot;http:\/\/schemas.bluetooth.org\/Documents\/characteristic.xsd&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; name=&quot;Time Zone&quot; type=&quot;org.bluetooth.characteristic.time_zone&quot; uuid=&quot;2A0E&quot;&gt; \t&lt;InformativeText&gt; \t&lt;\/InformativeText&gt; \t&lt;Value&gt; \t\t&lt;Field name=&quot;Time Zone&quot;&gt; \t\t\t&lt;Requirement&gt;Mandatory&lt;\/Requirement&gt; \t\t\t&lt;Format&gt;sint8&lt;\/Format&gt; \t\t\t&lt;Minimum&gt;-48&lt;\/Minimum&gt; \t\t\t&lt;Maximum&gt;56&lt;\/Maximum&gt; \t\t\t&lt;Enumerations&gt; \t\t\t\t&lt;Enumeration key=&quot;-48&quot; value=&quot;UTC-12:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-44&quot; value=&quot;UTC-11:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-40&quot; value=&quot;UTC-10:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-38&quot; value=&quot;UTC-9:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-36&quot; value=&quot;UTC-9:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-32&quot; value=&quot;UTC-8:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-28&quot; value=&quot;UTC-7:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-24&quot; value=&quot;UTC-6:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-20&quot; value=&quot;UTC-5:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-18&quot; value=&quot;UTC-4:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-16&quot; value=&quot;UTC-4:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-14&quot; value=&quot;UTC-3:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-12&quot; value=&quot;UTC-3:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-8&quot; value=&quot;UTC-2:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;-4&quot; value=&quot;UTC-1:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;0&quot; value=&quot;UTC+0:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;4&quot; value=&quot;UTC+1:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;8&quot; value=&quot;UTC+2:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;12&quot; value=&quot;UTC+3:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;14&quot; value=&quot;UTC+3:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;16&quot; value=&quot;UTC+4:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;18&quot; value=&quot;UTC+4:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;20&quot; value=&quot;UTC+5:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;22&quot; value=&quot;UTC+5:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;23&quot; value=&quot;UTC+5:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;24&quot; value=&quot;UTC+6:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;26&quot; value=&quot;UTC+6:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;28&quot; value=&quot;UTC+7:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;32&quot; value=&quot;UTC+8:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;35&quot; value=&quot;UTC+8:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;36&quot; value=&quot;UTC+9:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;38&quot; value=&quot;UTC+9:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;40&quot; value=&quot;UTC+10:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;42&quot; value=&quot;UTC+10:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;44&quot; value=&quot;UTC+11:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;46&quot; value=&quot;UTC+11:30&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;48&quot; value=&quot;UTC+12:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;51&quot; value=&quot;UTC+12:45&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;52&quot; value=&quot;UTC+13:00&quot; \/&gt; \t\t\t\t&lt;Enumeration key=&quot;56&quot; value=&quot;UTC+14:00&quot; \/&gt; \t\t\t&lt;\/Enumerations&gt;             &lt;AdditionalValues&gt; \t\t\t\t&lt;Enumeration key=&quot;-128&quot; value=&quot;time zone offset is not known&quot;\/&gt; \t\t\t&lt;\/AdditionalValues&gt;  \t\t&lt;\/Field&gt; \t&lt;\/Value&gt; &lt;\/Characteristic&gt;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-252306","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=252306"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252306\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=252306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=252306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=252306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}