Bonjour à tous
J'ai besoin d'un petit coup de main de ceux qui connaissent les règles de codage BER.
Voici l'énoncé de l'exercice :
En utilisant la syntaxe abstraite ASN.1 et les règles de codage BER.
Rappel des types :
Code Hexadécimal Type Signification
2 INTEGER Entier de longueur variable
10 SEQUENCE Collection ordonnée d’éléments de type différent
14 T61STRING Chaîne de caractères ISO Latin 1
18 UTC TIME Temps universel yymmddhhmmZ (heure GMT)
et la définition de l'enregistrement " BulletinMétéo "
BulletinMétéo ::= SEQUENCE {
localisation T61STRING,
date UTC TIME,
temp INTEGER,
hygro INTEGER,
pluvio INTEGER
}
-> Coder le Bulletin Météo :
Paris, 1er Mai 2004 12 heures précises GMT, 16 degrés, hygrométrie 64, pluviométrie 6.
Voici ma réponse :
1) codage Localisation :
-Type :classe : 2 bits -> universelle -> (00)b
forme : 1 bit -> primitive -> (0)b
Numéro : 5 bits -> (14)h -> (10100)b
Soit : (00010100)b = (14)h
-Longueur : Paris = 5 lettres donc il faut 5 octets pour coder la localisation => (05)h
-Valeur : Avec le tableau ISO latin-1 :
P = (50)h
a = (61)h
r = (72)h
i = (69)h
s = (73)h
Soit : 14055061726973
2) codage date UTC TIME :
- type : (18)h
- longueur : (06)h
- valeur : (0405010C005A)h
Soit : 08060405010C005A
3) codage temp :
- type : classe : 2 bits -> universelle-> (00)b
forme : 1 bit -> primitive -> (0)b
numéro : 5 bits -> (00010)b
soit : (00000010)b -> (02)h
- longueur : 1 octet pour coder la température -> (01)h
- valeur : (16)d -> (10)h
Soit : 020110
4) codage hygro :
- type : classe : 2 bits -> universelle-> (00)b
forme : 1 bit -> primitive -> (0)b
numéro : 5 bits -> (00010)b
soit : (00000010)b -> (02)h
- longueur : 1 octet pour coder la température -> (01)h
- valeur : (64)d -> (40)h
Soit : 020140
5) codage pluvio :
- type : classe : 2 bits -> universelle-> (00)b
forme : 1 bit -> primitive -> (0)b
numéro : 5 bits -> (00010)b
soit : (00000010)b -> (02)h
- longueur : 1 octet pour coder la température -> (01)h
- valeur : (6)d -> (06)h
Soit : 020106
6) codage bulletinMétéo:
- type : classe : 2 bits -> universelle-> (00)b
forme : 1 bit -> composée -> (1)b
numéro : 5 bits -> (10)h -> (10000)b
soit : (00100000)b -> (30)h
- longueur : Localisation (Type Longueur Valeur) + date (TLV) + temp (TLV) + hygro (TLV) + pluvio (TLV)
soit 24 octets -> (18)h
Soit : 3018
7) Soit le codage suivant :
3018 14055061726973 18060405010C005A 020110 020140 020106
D'avance merci à ceux qui prendront le temps de lire mon exercice et surtout de me dire si le codage est bon ou pas !!!
Message édité par doh-ko le 15-12-2008 à 18:05:25