Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
interface_chauffage_-_local_process_bus_lpb [2018/01/01 14:57] 88.164.131.165 [Liste des télégramme et décodage] |
interface_chauffage_-_local_process_bus_lpb [2018/04/22 20:42] 88.164.131.165 [Le format de la trame] |
||
---|---|---|---|
Ligne 69: | Ligne 69: | ||
* FF : Destination - Adresse de destination du telegramme (0xFF Broadcast à touts les périphériques sur le bus) | * FF : Destination - Adresse de destination du telegramme (0xFF Broadcast à touts les périphériques sur le bus) | ||
* 00 : Expéditeur - Adresse de l'expediteur du telegramme | * 00 : Expéditeur - Adresse de l'expediteur du telegramme | ||
- | * CC 02 00 14 02 05 00 02 1D 00 : Nom du telegramme (Reste à preciser) - Toujours de 10 octects | + | * CC : Flag d'envoi ou de réception ? |
+ | * 02 : inconnu | ||
+ | * 00 : inconnu | ||
+ | * 14 : inconnu | ||
+ | * 02 : type ? 2 : info / 3 : Set / 4: Ack to Set / 6 : Request / 7 : reply to request - Le type est augmenté de 0x20 entre chaque échange | ||
+ | * 05 : (cmd & 0x00ff0000) >> 16; | ||
+ | * 00 : (cmd & 0xff000000) >> 24; | ||
+ | * 02 : (cmd & 0x0000ff00) >> 8; | ||
+ | * 1D : (cmd & 0x000000ff); | ||
+ | * 00 : valeur | ||
+ | |||
+ | Les octect 1 et 2 sont inversés entre la demande et la réponse : | ||
+ | |||
+ | Exemple : | ||
+ | * Demande : 053D0064 type 86 | ||
+ | * Réponse : 3D050064 type 87 | ||
+ | |||
+ | Echange suivant +0x20 | ||
+ | |||
+ | * Demande : 053D0064 type A6 | ||
+ | * Réponse : 3D050064 type A7 | ||
* 0F 06 : Valeur du telegramme | * 0F 06 : Valeur du telegramme | ||
+ | * F2 B4 : CRC | ||
+ | |||
+ | ==== Calcul du CRC ==== | ||
+ | |||
+ | Le CRC se calcule avec l'ensemble des reçus | ||
+ | |||
+ | <code csharp> | ||
+ | public static string CRC_LPB(byte[] bytes) | ||
+ | { | ||
+ | int crc = 0; | ||
+ | int len = bytes.Length-1; | ||
+ | crc = (257 - len) * 256 + len - 2; | ||
+ | |||
+ | if (bytes != null && bytes.Length > 0) | ||
+ | { | ||
+ | for(int i=0;i<(len-1);i++) | ||
+ | { | ||
+ | crc += bytes[i]; | ||
+ | } | ||
+ | } | ||
+ | return String.Format("{0:X2}", crc); | ||
+ | } | ||
+ | </code> | ||
+ | | ||
+ | Si bytes[] = {0x78,0x11,0xFF,0x00,0xCC,0x02,0x00,0x14,0x02,0x05,0x00,0x02,0x1D,0x00,0x0F,0x06,0xF2,0xB4} | ||
| | ||
+ | Alors crc = F2B4 | ||
==== Liste des télégramme et décodage ==== | ==== Liste des télégramme et décodage ==== | ||
Ligne 109: | Ligne 156: | ||
* 0C : 12 (mois) | * 0C : 12 (mois) | ||
* 1F : 31 (jour) | * 1F : 31 (jour) | ||
- | * 07 : ?? | + | * 07 : 7eme jour de la semaine donc dimanche |
* 10 : 16 (heure) | * 10 : 16 (heure) | ||
* 0E : 14 (min) | * 0E : 14 (min) | ||
* 1A : 26 (secondes ?) | * 1A : 26 (secondes ?) | ||
* 00 : ?? | * 00 : ?? |