ini
[aversive.git] / modules / devices / control_system / filters / biquad / test / results / telemetry.m
1 function sortie = teletry(filename)\r
2 \r
3 global SER_PORT_ID;\r
4 \r
5 \r
6 if ~exist('filename')\r
7   filename = 'COM1';\r
8 end\r
9 \r
10 if isnumeric(filename)\r
11     filename = strcat('COM', num2str(filename));\r
12 end\r
13 \r
14 % detection port ou ficier \r
15 if isnumeric(sscanf(filename, 'COM%i'))        \r
16     % Set serial port mode \r
17     SER_PORT_ID = serial(filename, 'baudrate',38400);\r
18     fopen(SER_PORT_ID);\r
19     SER_PORT_ID.Terminator = 10; % LF\r
20 \r
21     SER_PORT_ID.Timeout = 2;\r
22     \r
23     com = 1;\r
24 else\r
25     SER_PORT_ID = fopen(filename);\r
26     com = 0;\r
27 end\r
28 \r
29 %init\r
30 sortie = [];\r
31 labels = cell(0);\r
32 time = 2;\r
33 \r
34 \r
35 % waiting for first input\r
36 while 1 \r
37     read = fgetl(SER_PORT_ID);\r
38     if ~ strcmp(read, '')\r
39         break;\r
40     end\r
41 end\r
42 \r
43 read = fgetl(SER_PORT_ID); % skip first entry, coz could be incomplete\r
44 \r
45 % main loop\r
46 while 1\r
47     \r
48     %exit when finished\r
49     if strcmp(read, '') || ~isstr(read)\r
50         fclose(SER_PORT_ID);\r
51         break;\r
52     end\r
53  \r
54     % convertir\r
55     result = sscanf(read,'%c%i');\r
56     \r
57     sortie(time, :) = NaN;\r
58     for no_param=1:length(result)/2\r
59         % classement\r
60         a_classer = 1;\r
61         for i=1:length(labels)\r
62             if strcmp(labels{i}, char(result(no_param*2 -1)))\r
63                 sortie(time, i) = result(no_param*2);\r
64                 a_classer = 0;\r
65                 break;\r
66             end\r
67         end\r
68         % ajout\r
69         if a_classer\r
70             labels{length(labels)+1} = char(result(no_param*2 -1));\r
71             sortie(1, length(labels)) = result(no_param*2 -1); % label 2\r
72             sortie(time, length(labels)) = result(no_param*2);\r
73         end\r
74     end\r
75         \r
76     % lecture suivant\r
77     read = fgetl(SER_PORT_ID);\r
78     time = time +1;\r
79 end\r
80 \r
81 \r
82 \r
83 \r
84 \r
85 \r