как проверить процент заряда батареи Apple airpods и чехла в Linux?

Вот версия сценария Кусалананды, который использует perl для преобразования file1 из : разделены на TAB, разделенные ранее загрузив его в sqlite3 .

Встроенный скрипт perl проверяет наличие 5 полей, а не 4. Если есть, он добавляет поле 3 к полю 2 (восстанавливая : , которое было удалено autosplit), затем удаляет поле 3.

#!/bin/sh

address_file="file2"
data_file="file1"

database="database.db"

rm -f "$database"

sqlite3 "$database" <

IMO, sqlite не подходит для такой большой базы данных. Я бы рекомендовал вместо этого использовать mysql или postgresql . Для такого рода задач чистая скорость mysql , вероятно, делает его лучшим выбором - он быстрее для простых вещей, таких как эта, но postgresql намного быстрее для более сложных задач - по моему опыту, pg «умный и быстрый» "(т.е.он может добиться значительных улучшений скорости в сложных задачах, работая умно, а не усердно), mysql «тупой быстрый» (то есть он много работает, не имея особых возможностей для умной работы).

Приведенный выше сценарий можно легко адаптировать для работы с клиентами командной строки psql или mysql вместо sqlite3 , но я бы изменил ] CREATE TABLE команды для использования фиксированного размера CHARACTER (size) вместо TEXT , где size - разумное предположение, какой максимальный размер для каждое поле - например, возможно 255 символов для поля adr и 10-50 символов для остальных.

одна из возможных оптимизаций состоит в том, чтобы тщательно выбирать размеры полей, чтобы каждая запись была четным делителем размера блока вашего диска (с учетом накладных расходов mysql / postgresql на каждую запись). 512 байтов должно хватить для всех распространенных размеров блоков. сделайте поля любого необходимого размера и добавьте дополнительное неиспользуемое поле CHARACTER (size) , чтобы компенсировать разницу. Смысл этого в том, чтобы записи никогда не пересекали границу блока, поэтому движку db нужно читать только один дисковый блок, чтобы получить все данные для данной записи (фактически, он будет читать несколько записей в одном блоке с большинство текущих размеров блоков, но это только помогает производительности, не может повредить ей).

https://dba.stackexchange.com/ , вероятно, лучший сайт для поиска или запроса информации об оптимизации размеров записей.

0
18.07.2020, 17:25
1 ответ

Вы можете использовать этот код с github https://github.com/delphiki/AirStatus.

git clone git@github.com:delphiki/AirStatus.git
cd AirStatus
pip3 install bleak
python3 main.py

Вы увидите следующее при использовании:

{"status": 1, "charge": {"left": 90, "right": 90, "case": -1}, "charging": "N/A", "model": "AirPods", "date": "2021-09-21 12:30:30", "raw": "0719010f202b998f000005521019d293ae902e66fbc70XXXXXXXX"}
1
21.09.2021, 18:31

Теги

Похожие вопросы