Procházet zdrojové kódy

Delete PROTOCOL.md -- is now in wiki

Chris Mullins před 8 roky
rodič
revize
0c038560df
1 změnil soubory, kde provedl 0 přidání a 51 odebrání
  1. 0 51
      PROTOCOL.md

+ 0 - 51
PROTOCOL.md

@@ -1,51 +0,0 @@
-# Protocol
-
-Here are some sloppy notes on the 2.4GHz protocols. Borrows from [Henryk's work](https://hackaday.io/project/5888-reverse-engineering-the-milight-on-air-protocol).
-
-## Structure
-
-As far as I can tell, packets are:
-
-* Unidirectional. Bulbs never send packets.
-* Always 7 bytes.
-* Not fully byte-oriented. One field uses fractional bytes.
-
-The packets are structured as follows:
-
-
-| Field           | Length  | Notes                                                                                     |
-|-----------------|---------|-------------------------------------------------------------------------------------------|
-| Request Type    | 1 byte  | One of 0xB0 or 0xB8. Seems to be ignored.                                                                     |
-| Device ID       | 2 bytes |                                                                                           |
-| Color           | 1 byte  | Maps roughly to `((hue + 40)%360)*(255/359.0)`                                              |
-| Brightness      | 5 bits  | Values are [0,25] and aren't ordered intuitively. See extended notes for further details. |
-| Group ID        | 3 bits  | Should be in [1,4].                                                                       |
-| Button ID       | 1 byte  | Should be in [0x0,0x1A]. See extended notes for list.                                     |
-| Sequence Number | 1 byte  | Used by receiver to detect duplicates. Should be incremented each time packets are sent.  |
-
-## Extended Notes
-
-### Brightness
-
-Though the field is 5 bits, only values in the range [0,25] are used. Values from least bright to most bright are:
-
-```
-[16, 15, ..., 0, 31, ..., 23]
-```
-
-To map a value `x` in `[0,100]` to the protocol value, use:
-
-```c++
-  // Expect an input value in [0, 100]. Map it down to [0, 25].
-  const uint8_t adjustedBrightness = round(brightness * (25 / 100.0));
-  
-  // The actual protocol uses a bizarre range where min is 16, max is 23:
-  // [16, 15, ..., 0, 31, ..., 23]
-  const uint8_t packetBrightnessValue = (
-    ((31 - adjustedBrightness) + 17) % 32
-  );
-```
-
-### Button ID
-
-Basically determines what the request does. See a list of values in [the code](https://github.com/sidoh/esp8266_milight_hub/blob/master/lib/MiLight/MiLightClient.h#L16).