Révision 28e2e227

Voir les différences:

TestXamConnections/TestXamConnections/Models/Device.cs
4 4

  
5 5
namespace TestXamConnections.Models
6 6
{
7
    /// <summary>
8
    /// Représente un appareil caractérisé par un nom et une adresse MAC.
9
    /// </summary>
7 10
    public class Device
8 11
    {
12
        /// <summary>
13
        /// Le nom de l'appareil.
14
        /// </summary>
9 15
        public string Name { get; set; }
16

  
17
        /// <summary>
18
        /// L'adresse MAC de l'appareil
19
        /// </summary>
10 20
        public string MACAddress { get; set; }
11 21

  
12 22
        public override string ToString()
TestXamConnections/TestXamConnections/Models/ReponsePesee.cs
8 8
    public class ReponsePesee
9 9
    {
10 10
        private int numPlateau;
11

  
11
        /// <summary>
12
        /// Le numéro du plateau.
13
        /// </summary>
12 14
        public int NumPlateau
13 15
        {
14 16
            get { return numPlateau; }
......
16 18
        }
17 19

  
18 20
        private int typePlateau;
19

  
21
        /// <summary>
22
        /// Le type du plateau.
23
        /// </summary>
20 24
        public int TypePlateau
21 25
        {
22 26
            get { return typePlateau; }
......
24 28
        }
25 29

  
26 30
        private string poidsMesure;
27

  
31
        /// <summary>
32
        /// Le poids mesuré, en kilogramme. 
33
        /// </summary>
28 34
        public string PoidsMesure
29 35
        {
30 36
            get { return poidsMesure; }
......
32 38
        }
33 39

  
34 40
        private bool isNegative;
35

  
41
        /// <summary>
42
        /// Indique si le poids mesurée est négatif. True = poids négatif. 
43
        /// </summary>
36 44
        public bool IsNegative
37 45
        {
38 46
            get { return isNegative; }
TestXamConnections/TestXamConnections/Models/TeoBalance.cs
9 9

  
10 10
namespace TestXamConnections.Models
11 11
{
12
    /// <summary>
13
    /// Liste des commandes disponibles pour la balance Teo, pour le programme INRAE.
14
    /// </summary>
12 15
    public enum TeoCommandType
13 16
    {
14 17
        // Voir documentation TEO INRAE 
......
31 34
    public class TeoBalance : Device
32 35
    {
33 36
        private IConnectionService ConnectionService { get; set; }
37

  
38
        /// <summary>
39
        /// Evenement déclenché à la réception d'une donnée de la part du Teo, autre qu'une pesée.
40
        /// </summary>
34 41
        public EventHandler<string> TeoDataReceivedEvent { get; set; }
42
        /// <summary>
43
        /// Evenement déclenché à la reception d'une pesée de la part du Teo.
44
        /// </summary>
35 45
        public EventHandler<ReponsePesee> TeoPeseeReceivedEvent { get; set; }
36 46

  
37 47
        public TeoBalance(Device device)
......
48 58
        }
49 59

  
50 60
        /* 
51
         * Fonction déclenchée à la reception de données
52
         * Trigger l'evenement TeoDataReceivedEvent
61
         * Fonction déclenchée à la reception de données par le ConnectionService
62
         * Trigger l'evenement TeoDataReceivedEvent ou TeoPeseeReceivedEvent.
53 63
         * 
54 64
         * IMPORTANT: Les trames du Teo peuvent arriver découpées,
55 65
         * Donc les données sont gardées dans un buffer d'envoi
56 66
         * nommé _bufferedData
57 67
         */
58 68
        private string _bufferedData;
59

  
60
        // Fonction appelée lors de la reception de données par le ConnectionService
61 69
        private void TeoDataReceived(object sender, byte[] buffer)
62 70
        {
63 71
            // Si le premier character est 2 (ASCII: STX)
......
85 93
                // Conversion en chaîne de caractères
86 94
                // Et on complète le buffer d'envoi
87 95
                _bufferedData += Encoding.ASCII.GetString(buffer);
88
                // Trigger evènement en fonction de la trame
89 96
                
97
                // Trigger evènement en fonction de la trame
90 98
                if (_bufferedData.Length == 12)
91 99
                {
92 100
                    TeoPeseeReceivedEvent.Invoke(this, new ReponsePesee(_bufferedData));
93
                } else if (_bufferedData[2] == '6')
101
                }
102
                else if (_bufferedData[2] == '6')
94 103
                {
95 104
                    TeoDataReceivedEvent.Invoke(this, "Erreur pesée");
96 105
                } 
......
101 110
            }
102 111
        }
103 112

  
104
        // Connexion à l'appareil en fonction de son addr MAC
113
        /// <summary>
114
        /// Permet d’établir une connection bluetooth avec la balance Teo. 
115
        /// Important : le bluetooth doit être activé, la balance allumée et les appareils doivent déjà être appairés.
116
        /// </summary>
117
        /// <returns>true si la connection a réussi, false sinon.</returns>
105 118
        public async Task<bool> ConnectToTeoAsync()
106 119
        {
107 120
            Dictionary<string, string> param = new Dictionary<string, string>()
......
118 131
            return await ConnectionService.SendCommand(GetCommandCode(c));
119 132
        }
120 133

  
121
        // Retourne la chaine d'octets d'une commande Teo (prog INRAE)
122
        public static byte[] GetCommandCode(TeoCommandType c)
134
        /// <summary>
135
        /// Récupère le code hexadécimal d'une commande donnée.
136
        /// </summary>
137
        /// <param name="commandType">La commande dont on souhaite le code hexa.</param>
138
        /// <returns>Le code héxadécimal de la command sur forme de tableau d'octet.</returns>
139
        public static byte[] GetCommandCode(TeoCommandType commandType)
123 140
        {
124 141
            // Les commandes envoyées sont sur 3 octets
125 142
            byte[] ret = new byte[3];
......
129 146
            ret[2] = 0x0D;
130 147

  
131 148
            // Commande
132
            switch (c)
149
            switch (commandType)
133 150
            {
134 151
                case TeoCommandType.ModeOrdre:
135 152
                    ret[1] = 0x61;
......
187 204
            return ret;
188 205
        }
189 206

  
190
        // Retourne le nom d'une commande Teo (prog INRAE)
191
        public static string GetCommandName(TeoCommandType c)
207
        /// <summary>
208
        /// Recupère le nom d'une commande donnée.
209
        /// </summary>
210
        /// <param name="commandType">La commande dont on souhaite le nom.</param>
211
        /// <returns>Le nom de la commande.</returns>
212
        public static string GetCommandName(TeoCommandType commandType)
192 213
        {
193 214
            // Les commandes envoyées sont sur 3 octets
194 215
            string ret = "";
195 216

  
196 217
            // Commande
197
            switch (c)
218
            switch (commandType)
198 219
            {
199 220
                case TeoCommandType.ModeOrdre:
200 221
                    ret = "Mode attente ordre";

Formats disponibles : Unified diff