giovedì 21 maggio 2020

Social Distancing WristBand

In questo periodo in cui c'e' la corsa a creare dispositivi per il distanziamento sociale ho voluto vedere quanto era difficile realizzare un dispositivo di questo tipo


Come base hardware ho provato la M5StickC dotata di ESP32, Bluetooth, display a colori e batteria integrata. Il costo e' di circa 15 euro



L'idea generale e' il dispositivo espone un servizio bluetooth "Social Distance" (in realta' si dovrebbe dire social distancing..ma il display e' troppo piccolo :>) e scansiona i dispositivi bluetooth vicini per trovare altri nomi uguali. Usando il parametro RSSI si ha una stima approssimativa di quanto i braccialetti siano vicini

Il problema maggiore riscontrato durante lo sviluppo e' che la scansione Bluetooth richiede molta energia e scarica rapidamente la piccola batteria del braccialetto; anche accendendo lo schermo al minimo necessario e diradando il tempo di scansione non sono riuscito a superare i 40 minuti continuativi di utilizzo 

Il display diventa rossso quando i dispositivi sono vicini. Il tasto serve a vedere lo stato di carica della batteria. Il led rosso e' acceso quando il braccialetto e' in carica ma non ha raggiunto il 100% di carica e quando e' disconnesso dalla ricarica  

Questo e' il codice   

=================================================
//Bluetooth
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>
#include <BLEServer.h>
#include <BLE2902.h>

//Grafica
#include <M5StickC.h>

//Power management
#include "AXP192.h"

//BLE
int scanTime = 2; //In seconds
BLEScan* pBLEScan;

// Speaker
//const int servo_pin = 26;
//int freq = 50;
//int ledChannel = 0;
//int resolution = 10;
//extern const unsigned char m5stack_startup_music[];

int contatore = 1;



// Immagini  formato XBitmap
#define batteria_reverse_width 80
#define batteria_reverse_height 160

static unsigned char logo_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00,
   0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
   0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
   0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03,
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8,
   0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00,
   0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
   0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
   0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03,
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8,
   0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00,
   0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
   0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
   0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03,
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8,
   0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00,
   0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00,
   0x7c, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
   0xe0, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x03,
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xe0, 0x07, 0x00, 0xf8,
   0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
   0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
   0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xe0, 0x00, 0x70, 0x00, 0x00,
   0x00, 0x00, 0xc0, 0x00, 0x00, 0xe0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
   0xe0, 0x01, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03,
   0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x70,
   0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x70, 0x00, 0xe0,
   0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x70, 0x00, 0xe0, 0x00, 0x00,
   0x00, 0x00, 0xfe, 0x1f, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
   0xfe, 0x1f, 0x00, 0xe0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f,
   0x00, 0xe0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xc0,
   0x03, 0x3c, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xc0, 0xff, 0x3f,
   0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x80, 0xff, 0x1f, 0x00, 0x00,
   0x00, 0xe0, 0xff, 0xff, 0x01, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00,
   0xe0, 0x01, 0x00, 0x00, 0xf0, 0x00, 0xff, 0xff, 0xff, 0x01, 0xe0, 0x01,
   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0xe0, 0x01, 0x00, 0x00,
   0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00,
   0xe0, 0x39, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d,
   0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d, 0x00, 0xe0,
   0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d, 0x00, 0xe0, 0x01, 0x00,
   0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf8,
   0xff, 0x03, 0xe0, 0x39, 0x00, 0x70, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03,
   0xe0, 0x39, 0x00, 0x70, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0xe0, 0x39,
   0x00, 0x60, 0x00, 0x00, 0x00, 0xc7, 0xf1, 0x00, 0xe0, 0x39, 0x00, 0x60,
   0x00, 0x00, 0x80, 0xc3, 0xc1, 0x01, 0xe0, 0x79, 0x00, 0xe0, 0x00, 0x00,
   0x80, 0xc3, 0x81, 0x01, 0xe0, 0x79, 0x00, 0xc0, 0x01, 0x00, 0x80, 0xc3,
   0x81, 0x03, 0xe0, 0x79, 0x00, 0x80, 0x03, 0x00, 0x80, 0xc1, 0x01, 0x03,
   0xe0, 0x79, 0x00, 0xe0, 0xff, 0x7f, 0x80, 0xc1, 0x01, 0x03, 0xe0, 0x79,
   0x00, 0xe0, 0xff, 0x7f, 0x80, 0xc1, 0x81, 0x03, 0xe0, 0x79, 0x00, 0xe0,
   0xff, 0x7f, 0x80, 0xc3, 0x81, 0x03, 0xe0, 0x79, 0x00, 0x00, 0x00, 0x00,
   0x80, 0x83, 0xc3, 0x03, 0xe0, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83,
   0xff, 0x01, 0xe0, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x01,
   0xe0, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0xe0, 0x79,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xe0, 0x79, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x00, 0x00, 0xf0, 0x7f,
   0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00,
   0x00, 0x00, 0xe0, 0x79, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
   0xe0, 0x79, 0x00, 0xc0, 0x7b, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79,
   0x00, 0xe0, 0x30, 0x38, 0x8f, 0xff, 0xff, 0x03, 0xe0, 0x79, 0x00, 0xe0,
   0x30, 0x30, 0x8f, 0xff, 0xff, 0x03, 0xe0, 0x79, 0x00, 0x70, 0x30, 0x60,
   0x8f, 0xff, 0xff, 0x01, 0xe0, 0x79, 0x00, 0x70, 0x30, 0x60, 0x00, 0x00,
   0x00, 0x00, 0xe0, 0x79, 0x00, 0x70, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
   0xe0, 0x79, 0x00, 0x70, 0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79,
   0x00, 0x70, 0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x00, 0x60,
   0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x00, 0x60, 0xf0, 0x70,
   0x00, 0x03, 0x80, 0x01, 0xe0, 0x79, 0x00, 0xe0, 0xe0, 0x7f, 0x00, 0x03,
   0x80, 0x01, 0xe0, 0x79, 0x00, 0xc0, 0xc0, 0x3f, 0x80, 0x03, 0x80, 0x03,
   0xe0, 0x79, 0x00, 0x00, 0x80, 0x1f, 0x80, 0x03, 0x80, 0x03, 0xe0, 0x79,
   0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0xe0, 0x79, 0x00, 0x00,
   0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0xe0, 0x79, 0x00, 0x00, 0x00, 0x00,
   0x80, 0x01, 0x00, 0x03, 0xe0, 0x79, 0x00, 0x60, 0x00, 0x60, 0x80, 0x03,
   0x80, 0x03, 0xe0, 0x79, 0x00, 0x60, 0x00, 0x60, 0x80, 0x03, 0x80, 0x03,
   0xe0, 0x79, 0x00, 0x60, 0x00, 0x60, 0x80, 0x07, 0xc0, 0x01, 0xe0, 0x79,
   0x00, 0x60, 0x00, 0x60, 0x00, 0x0f, 0xe0, 0x01, 0xe0, 0x79, 0x00, 0x60,
   0x00, 0x60, 0x00, 0x7e, 0xfc, 0x00, 0xe0, 0x79, 0x00, 0x60, 0x00, 0x70,
   0x00, 0xfc, 0x7f, 0x00, 0xe0, 0x79, 0x00, 0xff, 0xff, 0x7f, 0x00, 0xf8,
   0x3f, 0x00, 0xe0, 0x79, 0x00, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0x0f, 0x00,
   0xe0, 0x79, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79,
   0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x00, 0x60,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x60, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
   0x1f, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00,
   0x00, 0x78, 0x00, 0x00, 0x00, 0x06, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x78,
   0x00, 0xc0, 0x80, 0x1f, 0x00, 0x1f, 0xf0, 0x01, 0x00, 0x78, 0x00, 0xe0,
   0xc0, 0x3f, 0x00, 0x07, 0xc0, 0x01, 0xf8, 0xff, 0x7f, 0x60, 0xc0, 0x7b,
   0x80, 0x03, 0x80, 0x03, 0xf0, 0xff, 0x3f, 0x60, 0xe0, 0x70, 0x80, 0x03,
   0x80, 0x03, 0xf0, 0xff, 0x1f, 0x70, 0xe0, 0x60, 0x80, 0x01, 0x80, 0x03,
   0xe0, 0xff, 0x1f, 0x70, 0xe0, 0xe0, 0x80, 0x01, 0x00, 0x03, 0xc0, 0xff,
   0x0f, 0x70, 0x70, 0xe0, 0x80, 0x03, 0x80, 0x03, 0x80, 0xff, 0x07, 0x70,
   0x70, 0xe0, 0x80, 0x03, 0x80, 0x03, 0x80, 0xff, 0x07, 0x60, 0x70, 0x60,
   0x80, 0x07, 0xc0, 0x03, 0x00, 0xff, 0x03, 0xe0, 0x78, 0x60, 0x00, 0x0f,
   0xe0, 0x01, 0x00, 0xfe, 0x01, 0xe0, 0x3d, 0x60, 0x00, 0x3f, 0xf8, 0x01,
   0x00, 0xfc, 0x01, 0xc0, 0x3f, 0x70, 0x00, 0xfe, 0xff, 0x00, 0x00, 0xf8,
   0x00, 0x80, 0x1f, 0x70, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x78, 0x00, 0x00,
   0x02, 0x30, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
   0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xfe, 0xff, 0x07, 0xc0, 0xe1,
   0xff, 0x7f, 0xfc, 0x00, 0x00, 0xff, 0xff, 0x0f, 0xc0, 0xe3, 0xff, 0x7f,
   0x7c, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xc0, 0xe1, 0xff, 0x7f, 0x7e, 0x00,
   0x80, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xc0, 0x7f,
   0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xc0, 0x3f, 0x80, 0x3f,
   0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xc0, 0x1f, 0x00, 0x3f, 0x00, 0x00,
   0x00, 0x00, 0x3f, 0x00, 0xe0, 0x0f, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
   0x1f, 0x00, 0xe0, 0x0f, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
   0xe0, 0x07, 0x00, 0x7c, 0xc0, 0xff, 0xff, 0x7f, 0x1f, 0x00, 0xe0, 0x07,
   0x00, 0x7c, 0xc0, 0xff, 0xff, 0x7f, 0x1f, 0x00, 0xf0, 0x07, 0x00, 0x7c,
   0xc0, 0xff, 0xff, 0x7f, 0x1f, 0x00, 0xf0, 0x03, 0x00, 0x7c, 0x00, 0x80,
   0x07, 0x1e, 0x1f, 0x00, 0xf0, 0x03, 0x00, 0x7c, 0x00, 0xc0, 0x01, 0x38,
   0x1f, 0x00, 0xf0, 0x03, 0x00, 0xfc, 0x00, 0xe0, 0x00, 0x70, 0x1f, 0x00,
   0xf0, 0x03, 0x00, 0xfc, 0x00, 0x60, 0x00, 0x60, 0x1f, 0x00, 0xf8, 0x03,
   0x00, 0x7c, 0x00, 0x60, 0x00, 0x60, 0x1f, 0x00, 0xf8, 0x01, 0x00, 0x7c,
   0x00, 0x70, 0x00, 0xe0, 0x3f, 0x00, 0xf8, 0x01, 0x00, 0x7c, 0x00, 0x70,
   0x00, 0xe0, 0x3e, 0x00, 0xfc, 0x01, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x60,
   0x7e, 0x00, 0xfc, 0x01, 0x00, 0x7c, 0x00, 0xe0, 0x00, 0x70, 0xfe, 0x00,
   0xfe, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x01, 0x78, 0xfc, 0x01, 0xff, 0x00,
   0x00, 0x7e, 0x00, 0xc0, 0x0f, 0x3f, 0xfc, 0xc7, 0x7f, 0x00, 0x00, 0x3e,
   0x00, 0x80, 0xff, 0x1f, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x3e, 0x00, 0x00,
   0xff, 0x0f, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x01,
   0xf0, 0xff, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff,
   0x1f, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00,
   0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x80, 0x1f,
   0x00, 0x00, 0x00, 0x00 };

static unsigned char batteria_reverse_full_bits[] = {
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x5f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xaa,
   0xaa, 0xaa, 0xaa, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0xff, 0x7b, 0xef, 0xbd, 0xf7, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff };


static unsigned char batteria_reverse_34_bits[] = {
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x5b, 0x00, 0x00, 0x00, 0x80, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xaa,
   0xaa, 0xaa, 0xaa, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xdd, 0xdd, 0xdd, 0xbd, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff };


static unsigned char batteria_reverse__mezzo_bits[] = {
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x5b, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x55, 0x55, 0x55, 0x55, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xbb, 0xbb, 0xbb, 0x7b, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff };

   static unsigned char batteria_reverse_14_bits[] = {
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x56, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00,
   0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff,
   0xff, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00,
   0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x7f, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x00,
   0x00, 0x7e, 0x80, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x7e,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xee, 0xee, 0xee, 0xee, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xfe, 0xff,
   0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff,
   0xff, 0x7f, 0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
   0x80, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff,
   0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
   0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff };

static unsigned char batteria_charge_bits[] = {
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xaa, 0xaa, 0xaa,
   0xaa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8,
   0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
   0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff,
   0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
   0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00,
   0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8,
   0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
   0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff,
   0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
   0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00,
   0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8,
   0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
   0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff,
   0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
   0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00,
   0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xc0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xc0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0x3f, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0x1f, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0x07, 0xe0,
   0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xc0, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x7f,
   0xe0, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0x07, 0xf8, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0x03, 0xf8, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x01,
   0xfc, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x7f, 0x00, 0xfe, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0x0f, 0x00, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x07, 0x00,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0x7f, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x3f,
   0x00, 0xe0, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x1f, 0x00, 0xe0,
   0xaf, 0xf8, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xfc,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x00,
   0x00, 0x00, 0xc0, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0x7f, 0x00, 0x00, 0x00,
   0xe0, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0x3f, 0xe8, 0x0f, 0x00, 0xf0, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0xf8, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0x07, 0x00, 0xfc, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0x07, 0x00, 0xfe, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0x03, 0x00, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x03, 0x80,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0x01, 0xe0, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0x00, 0xf8, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x7f,
   0x00, 0xfc, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x7f, 0x00, 0xfe,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0x3f, 0xc0, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0x1f, 0xe0, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x1f,
   0xf0, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x0f, 0xf8, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x0f, 0xfc, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0x07, 0xfe, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xc3,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xe3, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0x7f, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0,
   0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0x07, 0xe0, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0x07, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x2f, 0x49, 0x92, 0x24,
   0x49, 0x92, 0x24, 0x22, 0x91, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0xff };

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;
bool deviceConnected = false;
bool oldDeviceConnected = false;
uint32_t value = 0;

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"


class MyServerCallbacks: public BLEServerCallbacks {
    void onConnect(BLEServer* pServer) {
      deviceConnected = true;
    };

    void onDisconnect(BLEServer* pServer) {
      deviceConnected = false;
    }
};


class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
    void onResult(BLEAdvertisedDevice advertisedDevice) {
//      prova = 
      //Serial.printf("Advertised Device: %s \n", advertisedDevice.toString().c_str());
      
      //Serial.printf("%s : ",advertisedDevice.getAddress().toString().c_str());
      //Serial.printf("%s : ",advertisedDevice.getServiceUUID().toString().c_str());
      //Serial.printf("%i\n",advertisedDevice.getRSSI());
      
      String address = advertisedDevice.getAddress().toString().c_str();
      String name;
      if (advertisedDevice.haveName ())
            {
                name = advertisedDevice.getName().c_str();
                //Serial.printf("%s\n",name);
            }

      int rssi = advertisedDevice.getRSSI();
      if (name.equals("SocialDistance"))
        {
         //Serial.println(address);
         //Serial.println(rssi);
         //Serial.println("=="); 
            if (rssi > -55)
            {
                // Se e' vicino accende lo schermo di colore rosso
                M5.Axp.SetLDO2(true);
                //M5.Axp.SetLDO3(true);
                M5.Lcd.fillScreen(RED);
                // ed emette suono
                //ledcWriteTone(ledChannel, 1250);
                //delay(500);
                //ledcWriteTone(ledChannel, 0);
            }
            else
            {
                // turn off screen
                M5.Axp.SetLDO2(false);
                //M5.Axp.SetLDO3(false);
                //M5.Lcd.fillScreen(GREEN);
            }
        }
        
      
    }
};

// Non usata
void blink_led()
  {
    pinMode(M5_LED,OUTPUT);
    digitalWrite(M5_LED,HIGH);
    //delay(100);
    //digitalWrite(M5_LED,LOW);
    //delay(100);
  }


double getBatteryLevel(void)
{
  uint16_t vbatData = M5.Axp.GetVbatData();
  double vbat = vbatData * 1.1 / 1000;
  Serial.print("Livello Batteria % ");
  Serial.println(100.0 * ((vbat - 3.14) / (4.14 - 3.14)));
  //M5.Lcd.setCursor(0, 0);
  //M5.Lcd.println(vbat);
  return 100.0 * ((vbat - 3.14) / (4.14 - 3.14));
}

/*// genera il tono

void playMusic(const uint8_t* music_data, uint16_t sample_rate) {
  uint32_t length = strlen((char*)music_data);
  uint16_t delay_interval = ((uint32_t)1000000 / sample_rate);
    for(int i = 0; i < length; i++) {
      ledcWriteTone(ledChannel, music_data[i]*50);
      delayMicroseconds(delay_interval);
    } 
}*/

void setup() {
  M5.begin();  
  pinMode(M5_LED,OUTPUT);
  // al contrario di quanto si puo' pensare
  // LOW accende il LED mentre HIGH lo spenge
  digitalWrite(M5_LED,LOW);

  // Setup Speaker 
  //ledcSetup(ledChannel, freq, resolution);
  //ledcAttachPin(servo_pin, ledChannel);
  //ledcWrite(ledChannel, 256);//0°
  
  // mostra il logo
  M5.Lcd.fillScreen(WHITE);
  M5.Lcd.drawXBitmap (0, 0, logo_bits, batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
  delay(4000);
  M5.Axp.SetLDO2(false);
  //M5.Axp.SetLDO3(false);


  //M5.Lcd.setTextSize(2);


  //controllo della luminosita' dello schermo
  //per risparmiare energia (valori da 7 a 15)
  M5.Axp.ScreenBreath(15);


  M5.Axp.EnableCoulombcounter();

  Serial.begin(9600);
  //Serial.println("Scanning...");

  BLEDevice::init("SocialDistance");

  // Advertise
  pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());
  BLEService *pService = pServer->createService(SERVICE_UUID);
  pCharacteristic = pService->createCharacteristic(
                      CHARACTERISTIC_UUID,
                      BLECharacteristic::PROPERTY_READ   |
                      BLECharacteristic::PROPERTY_WRITE  |
                      BLECharacteristic::PROPERTY_NOTIFY |
                      BLECharacteristic::PROPERTY_INDICATE
                    );
  pCharacteristic->addDescriptor(new BLE2902());
  pService->start();
  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->addServiceUUID(SERVICE_UUID);
  pAdvertising->setScanResponse(false);
  pAdvertising->setMinPreferred(0x0); 
  BLEDevice::startAdvertising();

  
  pBLEScan = BLEDevice::getScan(); //create new scan
  pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
  pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
  pBLEScan->setInterval(5000); // in millisecondi default 100
  pBLEScan->setWindow(2500);  // less or equal setInterval value default 99
}

void loop() {
  BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
  //Serial.print("Devices found: ");
  //Serial.println(foundDevices.getCount());
  //Serial.println("Scan done!");
  pBLEScan->clearResults();   // delete results fromBLEScan buffer to release memory
  delay(1000);

  //controllo dello stato batteria
  // 4.1 V Full
  // 3.4 V Dead
  // 3.7 V Good
  //Serial.println(M5.Axp.GetBatVoltage());
  //controllo amper corrente
  //se negativo in scarica
  
  // Battery 
  //Serial.println("Battery Level "); 
  //Serial.println(getBatteryLevel());
  //Serial.print("Ampere ");
  //Serial.println(M5.Axp.GetBatCurrent());
  int bat = (int) getBatteryLevel();
  if (bat >= 99)
      {
          // la ricarica e' finita spenge il led
          digitalWrite(M5_LED,HIGH);
      }
      else
      {
          // altrimenti se e' in ricarica od in uso
          // tiene il led acceso 
          digitalWrite(M5_LED,LOW);
      }
      
  M5.update();
  // se si preme il tasto mette le informazioni sulla batteria
  if(M5.BtnA.wasPressed())
    {
                M5.Axp.SetLDO2(true);
                M5.Lcd.fillScreen(WHITE);
                if (bat > 100) bat = 100;
                if (M5.Axp.GetBatCurrent() > 0)
                    {
                     M5.Lcd.drawCentreString("Chg", 40, 10, 1);
                     M5.Lcd.drawXBitmap (0, 0, batteria_charge_bits, batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
                    }
                    else
                    {
                    M5.Lcd.drawCentreString(String(bat), 40, 10, 1);
                    if (getBatteryLevel() > 75)
                            M5.Lcd.drawXBitmap (0, 0, batteria_reverse_full_bits, batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
    
                    if ((getBatteryLevel() <= 75) && (getBatteryLevel() > 50))
                            M5.Lcd.drawXBitmap (0, 0, batteria_reverse_34_bits, batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
    
                    if ((getBatteryLevel() <= 50) && (getBatteryLevel() > 25))
                            M5.Lcd.drawXBitmap (0, 0,batteria_reverse__mezzo_bits , batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
                  
                    if (getBatteryLevel() <= 25)
                            M5.Lcd.drawXBitmap (0, 0, batteria_reverse_14_bits, batteria_reverse_width, batteria_reverse_height, TFT_BLACK); 
                    }
                delay(2000);
                M5.Axp.SetLDO2(false);
    }
}


Nessun commento:

Posta un commento

Perche' investire su Unix

 Un libro trovato nel libero scambio alla Coop su cio' che poteva essere e non e' stato...interessante la storia su Unix del primo c...