Commit 8a75e25170426a632d7e86f96edfa503db78312e
1 parent
43f91fb6
--no commit message
Showing
8 changed files
with
273 additions
and
334 deletions
DUREX Vendor Control/CommunicationProtocol.h
@@ -6,10 +6,12 @@ | @@ -6,10 +6,12 @@ | ||
6 | // Copyright (c) 2014 Emmoco. All rights reserved. | 6 | // Copyright (c) 2014 Emmoco. All rights reserved. |
7 | // | 7 | // |
8 | 8 | ||
9 | +@class CommunicationProtocol; | ||
10 | + | ||
9 | #import <Foundation/Foundation.h> | 11 | #import <Foundation/Foundation.h> |
10 | #import "EMFramework.h" | 12 | #import "EMFramework.h" |
11 | 13 | ||
12 | -#define SLEEP_MS ((int)100) | 14 | +#define SLEEP_TIME ((NSTimeInterval)0.1) |
13 | #define MAX_STRING_LENGTH ((int)200) | 15 | #define MAX_STRING_LENGTH ((int)200) |
14 | #define MAX_RETRIES ((int)3) | 16 | #define MAX_RETRIES ((int)3) |
15 | #define MAX_PRODUCT_NAME_LENGTH ((int)64) | 17 | #define MAX_PRODUCT_NAME_LENGTH ((int)64) |
@@ -21,16 +23,23 @@ | @@ -21,16 +23,23 @@ | ||
21 | #define SALE_STRING_LENGTH ((int)36) | 23 | #define SALE_STRING_LENGTH ((int)36) |
22 | #define REPORT_SERVER_URL @"http://seneca.upc.es:8090/machine" | 24 | #define REPORT_SERVER_URL @"http://seneca.upc.es:8090/machine" |
23 | 25 | ||
26 | +@protocol CommunicationProtocolDelegate <NSObject> | ||
27 | +- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response; | ||
28 | + | ||
29 | +@end | ||
30 | + | ||
24 | @interface CommunicationProtocol : NSObject | 31 | @interface CommunicationProtocol : NSObject |
25 | 32 | ||
33 | +@property (nonatomic, strong) id <CommunicationProtocolDelegate> delegate; | ||
34 | + | ||
26 | -(void) writeMessage: (NSString*) message; | 35 | -(void) writeMessage: (NSString*) message; |
27 | -(void) readMessage; | 36 | -(void) readMessage; |
28 | --(Boolean) establishConnection; | ||
29 | --(Boolean) updateTime: (NSDateComponents*) date; | ||
30 | --(Boolean) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents; | ||
31 | --(Boolean) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name; | ||
32 | --(NSString*) readSensorData; | ||
33 | --(NSString*) readSalesLog: (NSDateComponents*) start : (NSDateComponents*) end; | 37 | +-(void) establishConnection; |
38 | +-(void) updateTime: (NSDateComponents*) date; | ||
39 | +-(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents; | ||
40 | +-(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name; | ||
41 | +-(void) readSensorData; | ||
42 | +-(void) readSalesLog: (NSDateComponents*) start : (NSDateComponents*) end; | ||
34 | +(id) sharedProtocol; | 43 | +(id) sharedProtocol; |
35 | 44 | ||
36 | @end | 45 | @end |
DUREX Vendor Control/CommunicationProtocol.m
@@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
41 | -(void) readMessage | 41 | -(void) readMessage |
42 | { | 42 | { |
43 | self.numPackets = -1; | 43 | self.numPackets = -1; |
44 | - [self waitForMessage]; | 44 | + [self waitForMessage: 0]; |
45 | } | 45 | } |
46 | 46 | ||
47 | - (void) readNextFragment | 47 | - (void) readNextFragment |
@@ -66,7 +66,7 @@ | @@ -66,7 +66,7 @@ | ||
66 | { | 66 | { |
67 | NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); | 67 | NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); |
68 | NSLog(@"[CommunicationProtocol.m]: packet read"); | 68 | NSLog(@"[CommunicationProtocol.m]: packet read"); |
69 | - [self waitForMessage]; | 69 | + [self waitForMessage: 0]; |
70 | }onFail:^(NSError *error) | 70 | }onFail:^(NSError *error) |
71 | { | 71 | { |
72 | NSLog(@"[CommunicationProtocol.m]: On setMessageAvailableDevice to FALSE: %@",error); | 72 | NSLog(@"[CommunicationProtocol.m]: On setMessageAvailableDevice to FALSE: %@",error); |
@@ -85,7 +85,7 @@ | @@ -85,7 +85,7 @@ | ||
85 | } | 85 | } |
86 | else | 86 | else |
87 | { | 87 | { |
88 | - //processMessage | 88 | + [[self delegate] processMessage:self didFinishEnteringItem:self.message]; |
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
@@ -103,81 +103,42 @@ | @@ -103,81 +103,42 @@ | ||
103 | }]; | 103 | }]; |
104 | } | 104 | } |
105 | 105 | ||
106 | -- (void) waitForMessage | 106 | +- (void) waitForMessage: (uint8_t) retries |
107 | { | 107 | { |
108 | - NSLog(@"[CommunicationProtocol.m]: Reading messageAvailable from device"); | ||
109 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) | ||
110 | - { | ||
111 | - [self setMessageAvailableDevice:[readValue intValue]]; | ||
112 | - if(![self messageAvailableDevice]) | ||
113 | - { | ||
114 | - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); | ||
115 | - [NSThread sleepForTimeInterval:SLEEP_MS]; | ||
116 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) | ||
117 | - { | ||
118 | - [self setMessageAvailableDevice:[readValue intValue]]; | ||
119 | - if(![self messageAvailableDevice]) | ||
120 | - { | ||
121 | - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); | ||
122 | - [NSThread sleepForTimeInterval:SLEEP_MS]; | ||
123 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) | ||
124 | - { | ||
125 | - [self setMessageAvailableDevice:[readValue intValue]]; | ||
126 | - if(![self messageAvailableDevice]) | ||
127 | - { | ||
128 | - NSLog(@"[CommunicationProtocol.m]: Device not ready."); | ||
129 | - NSLog(@"[CommunicationProtocol.m]: Timeout while expecting message"); | ||
130 | - } | ||
131 | - else | ||
132 | - { | ||
133 | - if(self.numPackets == -1) | ||
134 | - { | ||
135 | - [self readNumPackets]; | ||
136 | - } | ||
137 | - else | ||
138 | - { | ||
139 | - [self readNextFragment]; | ||
140 | - } | ||
141 | - } | ||
142 | - }onFail:^(NSError *error) | ||
143 | - { | ||
144 | - NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); | ||
145 | - [self reportError:[NSString stringWithFormat:@"Error occurred while reading answer from device: %@",[error localizedDescription]]]; | ||
146 | - }]; | ||
147 | - } | ||
148 | - else | ||
149 | - { | ||
150 | - if(self.numPackets == -1) | ||
151 | - { | ||
152 | - [self readNumPackets]; | ||
153 | - } | ||
154 | - else | ||
155 | - { | ||
156 | - [self readNextFragment]; | ||
157 | - } | ||
158 | - } | ||
159 | - }onFail:^(NSError *error) | ||
160 | - { | ||
161 | - NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); | ||
162 | - [self reportError:[NSString stringWithFormat:@"Error occurred while reading answer from device: %@",[error localizedDescription]]]; | ||
163 | - }]; | ||
164 | - } | ||
165 | - else | ||
166 | - { | ||
167 | - if(self.numPackets == -1) | ||
168 | - { | ||
169 | - [self readNumPackets]; | ||
170 | - } | ||
171 | - else | ||
172 | - { | ||
173 | - [self readNextFragment]; | ||
174 | - } | ||
175 | - } | ||
176 | - }onFail:^(NSError *error) | ||
177 | - { | ||
178 | - NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); | ||
179 | - [self reportError:[NSString stringWithFormat:@"Error occurred while reading answer from device: %@",[error localizedDescription]]]; | ||
180 | - }]; | 108 | + if(retries == MAX_RETRIES) |
109 | + { | ||
110 | + NSLog(@"[CommunicationProtocol.m]: Device not ready."); | ||
111 | + NSLog(@"[CommunicationProtocol.m]: Timeout while expecting message"); | ||
112 | + } | ||
113 | + else | ||
114 | + { | ||
115 | + NSLog(@"[CommunicationProtocol.m]: Reading messageAvailable from device"); | ||
116 | + [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) | ||
117 | + { | ||
118 | + [self setMessageAvailableDevice:[readValue intValue]]; | ||
119 | + if(![self messageAvailableDevice]) | ||
120 | + { | ||
121 | + NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); | ||
122 | + [NSThread sleepForTimeInterval:SLEEP_TIME]; | ||
123 | + [self waitForMessage:retries + 1]; | ||
124 | + } | ||
125 | + else | ||
126 | + { | ||
127 | + if(self.numPackets == -1) | ||
128 | + { | ||
129 | + [self readNumPackets]; | ||
130 | + } | ||
131 | + else | ||
132 | + { | ||
133 | + [self readNextFragment]; | ||
134 | + } | ||
135 | + } | ||
136 | + }onFail:^(NSError *error) | ||
137 | + { | ||
138 | + NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); | ||
139 | + [self reportError:[NSString stringWithFormat:@"Error occurred while reading answer from device: %@",[error localizedDescription]]]; | ||
140 | + }]; | ||
141 | + } | ||
181 | } | 142 | } |
182 | 143 | ||
183 | -(void) writeMessage: (NSString*) message | 144 | -(void) writeMessage: (NSString*) message |
@@ -228,7 +189,7 @@ | @@ -228,7 +189,7 @@ | ||
228 | { | 189 | { |
229 | NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to TRUE"); | 190 | NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to TRUE"); |
230 | NSLog(@"[CommunicationProtocol.m]: Packet written"); | 191 | NSLog(@"[CommunicationProtocol.m]: Packet written"); |
231 | - [self readACK]; | 192 | + [self readACK: 0]; |
232 | }onFail:^(NSError *error) | 193 | }onFail:^(NSError *error) |
233 | { | 194 | { |
234 | NSLog(@"[CommunicationProtocol.m]: On setMessageAvailable to TRUE: %@",error); | 195 | NSLog(@"[CommunicationProtocol.m]: On setMessageAvailable to TRUE: %@",error); |
@@ -247,6 +208,7 @@ | @@ -247,6 +208,7 @@ | ||
247 | } | 208 | } |
248 | else | 209 | else |
249 | { | 210 | { |
211 | + NSLog(@"[CommunicationProtocol.m]: Finished sending message"); | ||
250 | [self readMessage]; | 212 | [self readMessage]; |
251 | } | 213 | } |
252 | 214 | ||
@@ -257,81 +219,45 @@ | @@ -257,81 +219,45 @@ | ||
257 | }]; | 219 | }]; |
258 | } | 220 | } |
259 | 221 | ||
260 | -- (void) readACK | 222 | +- (void) readACK: (uint8_t) retries |
261 | { | 223 | { |
262 | - NSLog(@"[CommunicationProtocol.m]: Reading ACK from device"); | ||
263 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) | 224 | + if(retries == MAX_RETRIES) |
264 | { | 225 | { |
265 | - [self setMessageAvailableMobile:[readValue intValue]]; | ||
266 | - if([self messageAvailableMobile]) | 226 | + NSLog(@"[CommunicationProtocol.m]: Device not ready."); |
227 | + NSLog(@"[CommunicationProtocol.m]: Timeout while expecting ACK"); | ||
228 | + } | ||
229 | + else | ||
230 | + { | ||
231 | + NSLog(@"[CommunicationProtocol.m]: Reading ACK from device"); | ||
232 | + [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) | ||
267 | { | 233 | { |
268 | - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); | ||
269 | - [NSThread sleepForTimeInterval:SLEEP_MS]; | ||
270 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) | 234 | + [self setMessageAvailableMobile:[readValue intValue]]; |
235 | + if([self messageAvailableMobile]) | ||
271 | { | 236 | { |
272 | - [self setMessageAvailableMobile:[readValue intValue]]; | ||
273 | - if([self messageAvailableMobile]) | ||
274 | - { | ||
275 | - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); | ||
276 | - [NSThread sleepForTimeInterval:SLEEP_MS]; | ||
277 | - [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) | ||
278 | - { | ||
279 | - [self setMessageAvailableMobile:[readValue intValue]]; | ||
280 | - if([self messageAvailableMobile]) | ||
281 | - { | ||
282 | - NSLog(@"[CommunicationProtocol.m]: Device not ready."); | ||
283 | - NSLog(@"[CommunicationProtocol.m]: Timeout while expecting ACK"); | ||
284 | - } | ||
285 | - else | ||
286 | - { | ||
287 | - [self sendNextFragment]; | ||
288 | - } | ||
289 | - }onFail:^(NSError *error) | ||
290 | - { | ||
291 | - NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); | ||
292 | - [self reportError:[NSString stringWithFormat:@"Error occurred while sending command to device: %@",[error localizedDescription]]]; | ||
293 | - }]; | ||
294 | - } | ||
295 | - else | ||
296 | - { | ||
297 | - [self sendNextFragment]; | ||
298 | - } | ||
299 | - }onFail:^(NSError *error) | 237 | + NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); |
238 | + [NSThread sleepForTimeInterval:SLEEP_TIME]; | ||
239 | + [self readACK:retries + 1]; | ||
240 | + } | ||
241 | + else | ||
300 | { | 242 | { |
301 | - NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); | ||
302 | - [self reportError:[NSString stringWithFormat:@"Error occurred while sending command to device: %@",[error localizedDescription]]]; | ||
303 | - }]; | ||
304 | - } | ||
305 | - else | 243 | + [self sendNextFragment]; |
244 | + } | ||
245 | + }onFail:^(NSError *error) | ||
306 | { | 246 | { |
307 | - [self sendNextFragment]; | ||
308 | - } | ||
309 | - }onFail:^(NSError *error) | ||
310 | - { | ||
311 | - NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); | ||
312 | - [self reportError:[NSString stringWithFormat:@"Error occurred while sending command to device: %@",[error localizedDescription]]]; | ||
313 | - }]; | 247 | + NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); |
248 | + [self reportError:[NSString stringWithFormat:@"Error occurred while sending command to device: %@",[error localizedDescription]]]; | ||
249 | + }]; | ||
250 | + } | ||
314 | } | 251 | } |
315 | 252 | ||
316 | --(Boolean) establishConnection | 253 | +-(void) establishConnection |
317 | { | 254 | { |
318 | NSLog(@"[CommunicationProtocol.m]: Establishing connection..."); | 255 | NSLog(@"[CommunicationProtocol.m]: Establishing connection..."); |
319 | - if([self writeMessage:@"Hello"]) | ||
320 | - { | ||
321 | - NSLog(@"[CommunicationProtocol.m]: Hello sent"); | ||
322 | - NSString *answer = [self readMessage]; | ||
323 | - NSLog(@"[CommunicationProtocol.m]: Answer received"); | ||
324 | - if([answer isEqualToString:@"Hello"]) | ||
325 | - { | ||
326 | - NSLog(@"[CommunicationProtocol.m]: Connection established"); | ||
327 | - return TRUE; | ||
328 | - } | ||
329 | - } | ||
330 | - NSLog(@"[CommunicationProtocol.m]: Error while establishing connection"); | ||
331 | - return TRUE; //HACK! | 256 | + [self writeMessage:@"Hello"]; |
257 | + NSLog(@"[CommunicationProtocol.m]: Hello sent"); | ||
332 | } | 258 | } |
333 | 259 | ||
334 | --(Boolean) updateTime: (NSDateComponents*) date | 260 | +-(void) updateTime: (NSDateComponents*) date |
335 | { | 261 | { |
336 | NSMutableString *command = [NSMutableString stringWithFormat: @"A5"]; | 262 | NSMutableString *command = [NSMutableString stringWithFormat: @"A5"]; |
337 | NSInteger year = [date year]; | 263 | NSInteger year = [date year]; |
@@ -339,27 +265,15 @@ | @@ -339,27 +265,15 @@ | ||
339 | [command appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; | 265 | [command appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; |
340 | [command appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld%02ld",(long)[date month],(long)[date day],(long)[date hour],(long)[date minute],(long)[date second]]]; | 266 | [command appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld%02ld",(long)[date month],(long)[date day],(long)[date hour],(long)[date minute],(long)[date second]]]; |
341 | [self writeMessage:command]; | 267 | [self writeMessage:command]; |
342 | - NSString *answer = [self readMessage]; | ||
343 | - if([answer isEqualToString:@"P51"]) | ||
344 | - { | ||
345 | - return TRUE; | ||
346 | - } | ||
347 | - return FALSE; | ||
348 | } | 268 | } |
349 | 269 | ||
350 | --(Boolean) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents | 270 | +-(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents |
351 | { | 271 | { |
352 | NSMutableString *command = [NSMutableString stringWithFormat: @"A6%01d%01d%02d%02d",channel,product,eur,cents]; | 272 | NSMutableString *command = [NSMutableString stringWithFormat: @"A6%01d%01d%02d%02d",channel,product,eur,cents]; |
353 | [self writeMessage:command]; | 273 | [self writeMessage:command]; |
354 | - NSString *answer = [self readMessage]; | ||
355 | - if([answer isEqualToString:@"P61"]) | ||
356 | - { | ||
357 | - return TRUE; | ||
358 | - } | ||
359 | - return FALSE; | ||
360 | } | 274 | } |
361 | 275 | ||
362 | --(Boolean) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name | 276 | +-(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name |
363 | { | 277 | { |
364 | if([name length] > MAX_PRODUCT_NAME_LENGTH) | 278 | if([name length] > MAX_PRODUCT_NAME_LENGTH) |
365 | { | 279 | { |
@@ -367,21 +281,14 @@ | @@ -367,21 +281,14 @@ | ||
367 | } | 281 | } |
368 | NSMutableString *command = [NSMutableString stringWithFormat: @"A7%01d%01d%@",channel,product,name]; | 282 | NSMutableString *command = [NSMutableString stringWithFormat: @"A7%01d%01d%@",channel,product,name]; |
369 | [self writeMessage:command]; | 283 | [self writeMessage:command]; |
370 | - NSString *answer = [self readMessage]; | ||
371 | - if([answer isEqualToString:@"P71"]) | ||
372 | - { | ||
373 | - return TRUE; | ||
374 | - } | ||
375 | - return FALSE; | ||
376 | } | 284 | } |
377 | 285 | ||
378 | --(NSString*) readSensorData | 286 | +-(void) readSensorData |
379 | { | 287 | { |
380 | NSString *command = @"A4"; | 288 | NSString *command = @"A4"; |
381 | [self writeMessage:command]; | 289 | [self writeMessage:command]; |
382 | - //NSString *answer = [self readMessage]; | ||
383 | 290 | ||
384 | - NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P400015000150001500000001001003005002000001002"]; | 291 | + /*NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P400015000150001500000001001003005002000001002"]; |
385 | for(int i = 0; i < 4; i++) | 292 | for(int i = 0; i < 4; i++) |
386 | { | 293 | { |
387 | [answer appendString:@"0"]; | 294 | [answer appendString:@"0"]; |
@@ -394,17 +301,10 @@ | @@ -394,17 +301,10 @@ | ||
394 | } | 301 | } |
395 | 302 | ||
396 | [answer appendString:@"0"]; | 303 | [answer appendString:@"0"]; |
397 | - [answer appendString:@"0"]; | ||
398 | - | ||
399 | - if([answer length] > 1 && [[answer substringToIndex:2]isEqualToString:@"P4"]) | ||
400 | - { | ||
401 | - NSLog(@"[CommunicationProtocol.m]: sensorStatus returned: %@",answer); | ||
402 | - return answer; | ||
403 | - } | ||
404 | - return nil; | 304 | + [answer appendString:@"0"];*/ |
405 | } | 305 | } |
406 | 306 | ||
407 | --(NSString*) readSalesLog : (NSDateComponents*) start : (NSDateComponents*) end | 307 | +-(void) readSalesLog : (NSDateComponents*) start : (NSDateComponents*) end |
408 | { | 308 | { |
409 | NSMutableString *startDate = [NSMutableString stringWithString:@""]; | 309 | NSMutableString *startDate = [NSMutableString stringWithString:@""]; |
410 | NSMutableString *endDate = [NSMutableString stringWithString:@""]; | 310 | NSMutableString *endDate = [NSMutableString stringWithString:@""]; |
@@ -435,15 +335,8 @@ | @@ -435,15 +335,8 @@ | ||
435 | [command appendString:@"-"]; | 335 | [command appendString:@"-"]; |
436 | [command appendString:endDate]; | 336 | [command appendString:endDate]; |
437 | [self writeMessage:command]; | 337 | [self writeMessage:command]; |
438 | - //NSString *answer = [self readMessage]; | ||
439 | 338 | ||
440 | - NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P21408161036000001000000110450000001P21409012216000100000000220900000100P21409032307000000010502330800000000P21409070540000000020000440350000001P2P2"]; | ||
441 | - if([answer length] > 1 && [[answer substringToIndex:2]isEqualToString:@"P2"]) | ||
442 | - { | ||
443 | - NSLog(@"[CommunicationProtocol.m]: saleLog returned: %@",answer); | ||
444 | - return answer; | ||
445 | - } | ||
446 | - return nil; | 339 | + //NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P21408161036000001000000110450000001P21409012216000100000000220900000100P21409032307000000010502330800000000P21409070540000000020000440350000001P2P2"]; |
447 | } | 340 | } |
448 | 341 | ||
449 | @end | 342 | @end |
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -26,11 +26,11 @@ | @@ -26,11 +26,11 @@ | ||
26 | ignoreCount = "0" | 26 | ignoreCount = "0" |
27 | continueAfterRunningActions = "No" | 27 | continueAfterRunningActions = "No" |
28 | filePath = "MenuTableViewController.m" | 28 | filePath = "MenuTableViewController.m" |
29 | - timestampString = "432265160.899922" | 29 | + timestampString = "434037601.622012" |
30 | startingColumnNumber = "9223372036854775807" | 30 | startingColumnNumber = "9223372036854775807" |
31 | endingColumnNumber = "9223372036854775807" | 31 | endingColumnNumber = "9223372036854775807" |
32 | - startingLineNumber = "717" | ||
33 | - endingLineNumber = "717" | 32 | + startingLineNumber = "770" |
33 | + endingLineNumber = "770" | ||
34 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 34 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
35 | landmarkType = "5"> | 35 | landmarkType = "5"> |
36 | </BreakpointContent> | 36 | </BreakpointContent> |
@@ -42,11 +42,11 @@ | @@ -42,11 +42,11 @@ | ||
42 | ignoreCount = "0" | 42 | ignoreCount = "0" |
43 | continueAfterRunningActions = "No" | 43 | continueAfterRunningActions = "No" |
44 | filePath = "MenuTableViewController.m" | 44 | filePath = "MenuTableViewController.m" |
45 | - timestampString = "432265160.899922" | 45 | + timestampString = "434037601.622012" |
46 | startingColumnNumber = "9223372036854775807" | 46 | startingColumnNumber = "9223372036854775807" |
47 | endingColumnNumber = "9223372036854775807" | 47 | endingColumnNumber = "9223372036854775807" |
48 | - startingLineNumber = "659" | ||
49 | - endingLineNumber = "659" | 48 | + startingLineNumber = "712" |
49 | + endingLineNumber = "712" | ||
50 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 50 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
51 | landmarkType = "5"> | 51 | landmarkType = "5"> |
52 | </BreakpointContent> | 52 | </BreakpointContent> |
@@ -58,11 +58,11 @@ | @@ -58,11 +58,11 @@ | ||
58 | ignoreCount = "0" | 58 | ignoreCount = "0" |
59 | continueAfterRunningActions = "No" | 59 | continueAfterRunningActions = "No" |
60 | filePath = "MenuTableViewController.m" | 60 | filePath = "MenuTableViewController.m" |
61 | - timestampString = "432265052.909736" | 61 | + timestampString = "434037601.622012" |
62 | startingColumnNumber = "9223372036854775807" | 62 | startingColumnNumber = "9223372036854775807" |
63 | endingColumnNumber = "9223372036854775807" | 63 | endingColumnNumber = "9223372036854775807" |
64 | - startingLineNumber = "511" | ||
65 | - endingLineNumber = "511" | 64 | + startingLineNumber = "571" |
65 | + endingLineNumber = "571" | ||
66 | landmarkName = "-tableView:didSelectRowAtIndexPath:" | 66 | landmarkName = "-tableView:didSelectRowAtIndexPath:" |
67 | landmarkType = "5"> | 67 | landmarkType = "5"> |
68 | </BreakpointContent> | 68 | </BreakpointContent> |
@@ -74,12 +74,12 @@ | @@ -74,12 +74,12 @@ | ||
74 | ignoreCount = "0" | 74 | ignoreCount = "0" |
75 | continueAfterRunningActions = "No" | 75 | continueAfterRunningActions = "No" |
76 | filePath = "CommunicationProtocol.m" | 76 | filePath = "CommunicationProtocol.m" |
77 | - timestampString = "433360607.314289" | 77 | + timestampString = "434038085.179085" |
78 | startingColumnNumber = "9223372036854775807" | 78 | startingColumnNumber = "9223372036854775807" |
79 | endingColumnNumber = "9223372036854775807" | 79 | endingColumnNumber = "9223372036854775807" |
80 | - startingLineNumber = "363" | ||
81 | - endingLineNumber = "363" | ||
82 | - landmarkName = "-readNextFragment" | 80 | + startingLineNumber = "341" |
81 | + endingLineNumber = "341" | ||
82 | + landmarkName = "-updateProductName:::" | ||
83 | landmarkType = "5"> | 83 | landmarkType = "5"> |
84 | </BreakpointContent> | 84 | </BreakpointContent> |
85 | </BreakpointProxy> | 85 | </BreakpointProxy> |
@@ -90,12 +90,12 @@ | @@ -90,12 +90,12 @@ | ||
90 | ignoreCount = "0" | 90 | ignoreCount = "0" |
91 | continueAfterRunningActions = "No" | 91 | continueAfterRunningActions = "No" |
92 | filePath = "CommunicationProtocol.m" | 92 | filePath = "CommunicationProtocol.m" |
93 | - timestampString = "433360607.314289" | 93 | + timestampString = "434038085.179085" |
94 | startingColumnNumber = "9223372036854775807" | 94 | startingColumnNumber = "9223372036854775807" |
95 | endingColumnNumber = "9223372036854775807" | 95 | endingColumnNumber = "9223372036854775807" |
96 | - startingLineNumber = "362" | ||
97 | - endingLineNumber = "362" | ||
98 | - landmarkName = "-readNextFragment" | 96 | + startingLineNumber = "340" |
97 | + endingLineNumber = "340" | ||
98 | + landmarkName = "-updateProductName:::" | ||
99 | landmarkType = "5"> | 99 | landmarkType = "5"> |
100 | </BreakpointContent> | 100 | </BreakpointContent> |
101 | </BreakpointProxy> | 101 | </BreakpointProxy> |
@@ -106,12 +106,12 @@ | @@ -106,12 +106,12 @@ | ||
106 | ignoreCount = "0" | 106 | ignoreCount = "0" |
107 | continueAfterRunningActions = "No" | 107 | continueAfterRunningActions = "No" |
108 | filePath = "CommunicationProtocol.m" | 108 | filePath = "CommunicationProtocol.m" |
109 | - timestampString = "433360607.314289" | 109 | + timestampString = "434038085.179085" |
110 | startingColumnNumber = "9223372036854775807" | 110 | startingColumnNumber = "9223372036854775807" |
111 | endingColumnNumber = "9223372036854775807" | 111 | endingColumnNumber = "9223372036854775807" |
112 | - startingLineNumber = "381" | ||
113 | - endingLineNumber = "381" | ||
114 | - landmarkName = "-readNextFragment" | 112 | + startingLineNumber = "353" |
113 | + endingLineNumber = "353" | ||
114 | + landmarkName = "-readSensorData" | ||
115 | landmarkType = "5"> | 115 | landmarkType = "5"> |
116 | </BreakpointContent> | 116 | </BreakpointContent> |
117 | </BreakpointProxy> | 117 | </BreakpointProxy> |
@@ -186,11 +186,11 @@ | @@ -186,11 +186,11 @@ | ||
186 | ignoreCount = "0" | 186 | ignoreCount = "0" |
187 | continueAfterRunningActions = "No" | 187 | continueAfterRunningActions = "No" |
188 | filePath = "MenuTableViewController.m" | 188 | filePath = "MenuTableViewController.m" |
189 | - timestampString = "432265160.899922" | 189 | + timestampString = "434037601.622012" |
190 | startingColumnNumber = "9223372036854775807" | 190 | startingColumnNumber = "9223372036854775807" |
191 | endingColumnNumber = "9223372036854775807" | 191 | endingColumnNumber = "9223372036854775807" |
192 | - startingLineNumber = "768" | ||
193 | - endingLineNumber = "768" | 192 | + startingLineNumber = "821" |
193 | + endingLineNumber = "821" | ||
194 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 194 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
195 | landmarkType = "5"> | 195 | landmarkType = "5"> |
196 | </BreakpointContent> | 196 | </BreakpointContent> |
@@ -202,27 +202,11 @@ | @@ -202,27 +202,11 @@ | ||
202 | ignoreCount = "0" | 202 | ignoreCount = "0" |
203 | continueAfterRunningActions = "No" | 203 | continueAfterRunningActions = "No" |
204 | filePath = "MenuTableViewController.m" | 204 | filePath = "MenuTableViewController.m" |
205 | - timestampString = "432263020.427289" | ||
206 | - startingColumnNumber = "9223372036854775807" | ||
207 | - endingColumnNumber = "9223372036854775807" | ||
208 | - startingLineNumber = "92" | ||
209 | - endingLineNumber = "92" | ||
210 | - landmarkName = "-generateMaintenanceLevel" | ||
211 | - landmarkType = "5"> | ||
212 | - </BreakpointContent> | ||
213 | - </BreakpointProxy> | ||
214 | - <BreakpointProxy | ||
215 | - BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
216 | - <BreakpointContent | ||
217 | - shouldBeEnabled = "No" | ||
218 | - ignoreCount = "0" | ||
219 | - continueAfterRunningActions = "No" | ||
220 | - filePath = "MenuTableViewController.m" | ||
221 | - timestampString = "432265052.909736" | 205 | + timestampString = "434037601.622012" |
222 | startingColumnNumber = "9223372036854775807" | 206 | startingColumnNumber = "9223372036854775807" |
223 | endingColumnNumber = "9223372036854775807" | 207 | endingColumnNumber = "9223372036854775807" |
224 | - startingLineNumber = "114" | ||
225 | - endingLineNumber = "114" | 208 | + startingLineNumber = "105" |
209 | + endingLineNumber = "105" | ||
226 | landmarkName = "-generateSaleListNavLevel" | 210 | landmarkName = "-generateSaleListNavLevel" |
227 | landmarkType = "5"> | 211 | landmarkType = "5"> |
228 | </BreakpointContent> | 212 | </BreakpointContent> |
@@ -234,11 +218,11 @@ | @@ -234,11 +218,11 @@ | ||
234 | ignoreCount = "0" | 218 | ignoreCount = "0" |
235 | continueAfterRunningActions = "No" | 219 | continueAfterRunningActions = "No" |
236 | filePath = "MenuTableViewController.m" | 220 | filePath = "MenuTableViewController.m" |
237 | - timestampString = "432265052.909736" | 221 | + timestampString = "434037601.622012" |
238 | startingColumnNumber = "9223372036854775807" | 222 | startingColumnNumber = "9223372036854775807" |
239 | endingColumnNumber = "9223372036854775807" | 223 | endingColumnNumber = "9223372036854775807" |
240 | - startingLineNumber = "117" | ||
241 | - endingLineNumber = "117" | 224 | + startingLineNumber = "108" |
225 | + endingLineNumber = "108" | ||
242 | landmarkName = "-generateSaleListNavLevel" | 226 | landmarkName = "-generateSaleListNavLevel" |
243 | landmarkType = "5"> | 227 | landmarkType = "5"> |
244 | </BreakpointContent> | 228 | </BreakpointContent> |
@@ -250,11 +234,11 @@ | @@ -250,11 +234,11 @@ | ||
250 | ignoreCount = "0" | 234 | ignoreCount = "0" |
251 | continueAfterRunningActions = "No" | 235 | continueAfterRunningActions = "No" |
252 | filePath = "MenuTableViewController.m" | 236 | filePath = "MenuTableViewController.m" |
253 | - timestampString = "432265052.909736" | 237 | + timestampString = "434037601.622012" |
254 | startingColumnNumber = "9223372036854775807" | 238 | startingColumnNumber = "9223372036854775807" |
255 | endingColumnNumber = "9223372036854775807" | 239 | endingColumnNumber = "9223372036854775807" |
256 | - startingLineNumber = "125" | ||
257 | - endingLineNumber = "125" | 240 | + startingLineNumber = "116" |
241 | + endingLineNumber = "116" | ||
258 | landmarkName = "-generateSaleListNavLevel" | 242 | landmarkName = "-generateSaleListNavLevel" |
259 | landmarkType = "5"> | 243 | landmarkType = "5"> |
260 | </BreakpointContent> | 244 | </BreakpointContent> |
@@ -266,11 +250,11 @@ | @@ -266,11 +250,11 @@ | ||
266 | ignoreCount = "0" | 250 | ignoreCount = "0" |
267 | continueAfterRunningActions = "No" | 251 | continueAfterRunningActions = "No" |
268 | filePath = "MenuTableViewController.m" | 252 | filePath = "MenuTableViewController.m" |
269 | - timestampString = "432265052.909736" | 253 | + timestampString = "434037601.622012" |
270 | startingColumnNumber = "9223372036854775807" | 254 | startingColumnNumber = "9223372036854775807" |
271 | endingColumnNumber = "9223372036854775807" | 255 | endingColumnNumber = "9223372036854775807" |
272 | - startingLineNumber = "197" | ||
273 | - endingLineNumber = "197" | 256 | + startingLineNumber = "188" |
257 | + endingLineNumber = "188" | ||
274 | landmarkName = "-changeNavLevel::" | 258 | landmarkName = "-changeNavLevel::" |
275 | landmarkType = "5"> | 259 | landmarkType = "5"> |
276 | </BreakpointContent> | 260 | </BreakpointContent> |
@@ -282,11 +266,11 @@ | @@ -282,11 +266,11 @@ | ||
282 | ignoreCount = "0" | 266 | ignoreCount = "0" |
283 | continueAfterRunningActions = "No" | 267 | continueAfterRunningActions = "No" |
284 | filePath = "MenuTableViewController.m" | 268 | filePath = "MenuTableViewController.m" |
285 | - timestampString = "432265052.909736" | 269 | + timestampString = "434037601.622012" |
286 | startingColumnNumber = "9223372036854775807" | 270 | startingColumnNumber = "9223372036854775807" |
287 | endingColumnNumber = "9223372036854775807" | 271 | endingColumnNumber = "9223372036854775807" |
288 | - startingLineNumber = "496" | ||
289 | - endingLineNumber = "496" | 272 | + startingLineNumber = "556" |
273 | + endingLineNumber = "556" | ||
290 | landmarkName = "-tableView:numberOfRowsInSection:" | 274 | landmarkName = "-tableView:numberOfRowsInSection:" |
291 | landmarkType = "5"> | 275 | landmarkType = "5"> |
292 | </BreakpointContent> | 276 | </BreakpointContent> |
@@ -298,11 +282,11 @@ | @@ -298,11 +282,11 @@ | ||
298 | ignoreCount = "0" | 282 | ignoreCount = "0" |
299 | continueAfterRunningActions = "No" | 283 | continueAfterRunningActions = "No" |
300 | filePath = "MenuTableViewController.m" | 284 | filePath = "MenuTableViewController.m" |
301 | - timestampString = "432265160.899922" | 285 | + timestampString = "434037601.622012" |
302 | startingColumnNumber = "9223372036854775807" | 286 | startingColumnNumber = "9223372036854775807" |
303 | endingColumnNumber = "9223372036854775807" | 287 | endingColumnNumber = "9223372036854775807" |
304 | - startingLineNumber = "644" | ||
305 | - endingLineNumber = "644" | 288 | + startingLineNumber = "697" |
289 | + endingLineNumber = "697" | ||
306 | landmarkName = "-tableView:indentationLevelForRowAtIndexPath:" | 290 | landmarkName = "-tableView:indentationLevelForRowAtIndexPath:" |
307 | landmarkType = "5"> | 291 | landmarkType = "5"> |
308 | </BreakpointContent> | 292 | </BreakpointContent> |
@@ -314,11 +298,11 @@ | @@ -314,11 +298,11 @@ | ||
314 | ignoreCount = "0" | 298 | ignoreCount = "0" |
315 | continueAfterRunningActions = "No" | 299 | continueAfterRunningActions = "No" |
316 | filePath = "MenuTableViewController.m" | 300 | filePath = "MenuTableViewController.m" |
317 | - timestampString = "432265160.899922" | 301 | + timestampString = "434037601.622012" |
318 | startingColumnNumber = "9223372036854775807" | 302 | startingColumnNumber = "9223372036854775807" |
319 | endingColumnNumber = "9223372036854775807" | 303 | endingColumnNumber = "9223372036854775807" |
320 | - startingLineNumber = "664" | ||
321 | - endingLineNumber = "664" | 304 | + startingLineNumber = "717" |
305 | + endingLineNumber = "717" | ||
322 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 306 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
323 | landmarkType = "5"> | 307 | landmarkType = "5"> |
324 | </BreakpointContent> | 308 | </BreakpointContent> |
@@ -330,11 +314,11 @@ | @@ -330,11 +314,11 @@ | ||
330 | ignoreCount = "0" | 314 | ignoreCount = "0" |
331 | continueAfterRunningActions = "No" | 315 | continueAfterRunningActions = "No" |
332 | filePath = "MenuTableViewController.m" | 316 | filePath = "MenuTableViewController.m" |
333 | - timestampString = "432265160.899922" | 317 | + timestampString = "434037601.622012" |
334 | startingColumnNumber = "9223372036854775807" | 318 | startingColumnNumber = "9223372036854775807" |
335 | endingColumnNumber = "9223372036854775807" | 319 | endingColumnNumber = "9223372036854775807" |
336 | - startingLineNumber = "857" | ||
337 | - endingLineNumber = "857" | 320 | + startingLineNumber = "910" |
321 | + endingLineNumber = "910" | ||
338 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 322 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
339 | landmarkType = "5"> | 323 | landmarkType = "5"> |
340 | </BreakpointContent> | 324 | </BreakpointContent> |
@@ -346,11 +330,11 @@ | @@ -346,11 +330,11 @@ | ||
346 | ignoreCount = "0" | 330 | ignoreCount = "0" |
347 | continueAfterRunningActions = "No" | 331 | continueAfterRunningActions = "No" |
348 | filePath = "MenuTableViewController.m" | 332 | filePath = "MenuTableViewController.m" |
349 | - timestampString = "432265160.899922" | 333 | + timestampString = "434037601.622012" |
350 | startingColumnNumber = "9223372036854775807" | 334 | startingColumnNumber = "9223372036854775807" |
351 | endingColumnNumber = "9223372036854775807" | 335 | endingColumnNumber = "9223372036854775807" |
352 | - startingLineNumber = "858" | ||
353 | - endingLineNumber = "858" | 336 | + startingLineNumber = "911" |
337 | + endingLineNumber = "911" | ||
354 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 338 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
355 | landmarkType = "5"> | 339 | landmarkType = "5"> |
356 | </BreakpointContent> | 340 | </BreakpointContent> |
@@ -378,11 +362,11 @@ | @@ -378,11 +362,11 @@ | ||
378 | ignoreCount = "0" | 362 | ignoreCount = "0" |
379 | continueAfterRunningActions = "No" | 363 | continueAfterRunningActions = "No" |
380 | filePath = "MenuTableViewController.m" | 364 | filePath = "MenuTableViewController.m" |
381 | - timestampString = "432265160.899922" | 365 | + timestampString = "434037601.622012" |
382 | startingColumnNumber = "9223372036854775807" | 366 | startingColumnNumber = "9223372036854775807" |
383 | endingColumnNumber = "9223372036854775807" | 367 | endingColumnNumber = "9223372036854775807" |
384 | - startingLineNumber = "977" | ||
385 | - endingLineNumber = "977" | 368 | + startingLineNumber = "1030" |
369 | + endingLineNumber = "1030" | ||
386 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 370 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
387 | landmarkType = "5"> | 371 | landmarkType = "5"> |
388 | </BreakpointContent> | 372 | </BreakpointContent> |
@@ -394,11 +378,11 @@ | @@ -394,11 +378,11 @@ | ||
394 | ignoreCount = "0" | 378 | ignoreCount = "0" |
395 | continueAfterRunningActions = "No" | 379 | continueAfterRunningActions = "No" |
396 | filePath = "MenuTableViewController.m" | 380 | filePath = "MenuTableViewController.m" |
397 | - timestampString = "432265052.909736" | 381 | + timestampString = "434037601.622012" |
398 | startingColumnNumber = "9223372036854775807" | 382 | startingColumnNumber = "9223372036854775807" |
399 | endingColumnNumber = "9223372036854775807" | 383 | endingColumnNumber = "9223372036854775807" |
400 | - startingLineNumber = "452" | ||
401 | - endingLineNumber = "452" | 384 | + startingLineNumber = "512" |
385 | + endingLineNumber = "512" | ||
402 | landmarkName = "-toggleDropList:" | 386 | landmarkName = "-toggleDropList:" |
403 | landmarkType = "5"> | 387 | landmarkType = "5"> |
404 | </BreakpointContent> | 388 | </BreakpointContent> |
@@ -410,11 +394,11 @@ | @@ -410,11 +394,11 @@ | ||
410 | ignoreCount = "0" | 394 | ignoreCount = "0" |
411 | continueAfterRunningActions = "No" | 395 | continueAfterRunningActions = "No" |
412 | filePath = "MenuTableViewController.m" | 396 | filePath = "MenuTableViewController.m" |
413 | - timestampString = "432265160.899922" | 397 | + timestampString = "434037601.622012" |
414 | startingColumnNumber = "9223372036854775807" | 398 | startingColumnNumber = "9223372036854775807" |
415 | endingColumnNumber = "9223372036854775807" | 399 | endingColumnNumber = "9223372036854775807" |
416 | - startingLineNumber = "1062" | ||
417 | - endingLineNumber = "1062" | 400 | + startingLineNumber = "1115" |
401 | + endingLineNumber = "1115" | ||
418 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 402 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
419 | landmarkType = "5"> | 403 | landmarkType = "5"> |
420 | </BreakpointContent> | 404 | </BreakpointContent> |
@@ -426,11 +410,11 @@ | @@ -426,11 +410,11 @@ | ||
426 | ignoreCount = "0" | 410 | ignoreCount = "0" |
427 | continueAfterRunningActions = "No" | 411 | continueAfterRunningActions = "No" |
428 | filePath = "MenuTableViewController.m" | 412 | filePath = "MenuTableViewController.m" |
429 | - timestampString = "432265160.899922" | 413 | + timestampString = "434037601.622012" |
430 | startingColumnNumber = "9223372036854775807" | 414 | startingColumnNumber = "9223372036854775807" |
431 | endingColumnNumber = "9223372036854775807" | 415 | endingColumnNumber = "9223372036854775807" |
432 | - startingLineNumber = "1054" | ||
433 | - endingLineNumber = "1054" | 416 | + startingLineNumber = "1107" |
417 | + endingLineNumber = "1107" | ||
434 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 418 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
435 | landmarkType = "5"> | 419 | landmarkType = "5"> |
436 | </BreakpointContent> | 420 | </BreakpointContent> |
@@ -442,11 +426,11 @@ | @@ -442,11 +426,11 @@ | ||
442 | ignoreCount = "0" | 426 | ignoreCount = "0" |
443 | continueAfterRunningActions = "No" | 427 | continueAfterRunningActions = "No" |
444 | filePath = "MenuTableViewController.m" | 428 | filePath = "MenuTableViewController.m" |
445 | - timestampString = "432265160.899922" | 429 | + timestampString = "434037601.622012" |
446 | startingColumnNumber = "9223372036854775807" | 430 | startingColumnNumber = "9223372036854775807" |
447 | endingColumnNumber = "9223372036854775807" | 431 | endingColumnNumber = "9223372036854775807" |
448 | - startingLineNumber = "849" | ||
449 | - endingLineNumber = "849" | 432 | + startingLineNumber = "902" |
433 | + endingLineNumber = "902" | ||
450 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 434 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
451 | landmarkType = "5"> | 435 | landmarkType = "5"> |
452 | </BreakpointContent> | 436 | </BreakpointContent> |
@@ -458,11 +442,11 @@ | @@ -458,11 +442,11 @@ | ||
458 | ignoreCount = "0" | 442 | ignoreCount = "0" |
459 | continueAfterRunningActions = "No" | 443 | continueAfterRunningActions = "No" |
460 | filePath = "MenuTableViewController.m" | 444 | filePath = "MenuTableViewController.m" |
461 | - timestampString = "432265160.899922" | 445 | + timestampString = "434037601.622012" |
462 | startingColumnNumber = "9223372036854775807" | 446 | startingColumnNumber = "9223372036854775807" |
463 | endingColumnNumber = "9223372036854775807" | 447 | endingColumnNumber = "9223372036854775807" |
464 | - startingLineNumber = "847" | ||
465 | - endingLineNumber = "847" | 448 | + startingLineNumber = "900" |
449 | + endingLineNumber = "900" | ||
466 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 450 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
467 | landmarkType = "5"> | 451 | landmarkType = "5"> |
468 | </BreakpointContent> | 452 | </BreakpointContent> |
@@ -474,11 +458,11 @@ | @@ -474,11 +458,11 @@ | ||
474 | ignoreCount = "0" | 458 | ignoreCount = "0" |
475 | continueAfterRunningActions = "No" | 459 | continueAfterRunningActions = "No" |
476 | filePath = "MenuTableViewController.m" | 460 | filePath = "MenuTableViewController.m" |
477 | - timestampString = "432265160.899922" | 461 | + timestampString = "434037601.622012" |
478 | startingColumnNumber = "9223372036854775807" | 462 | startingColumnNumber = "9223372036854775807" |
479 | endingColumnNumber = "9223372036854775807" | 463 | endingColumnNumber = "9223372036854775807" |
480 | - startingLineNumber = "708" | ||
481 | - endingLineNumber = "708" | 464 | + startingLineNumber = "761" |
465 | + endingLineNumber = "761" | ||
482 | landmarkName = "-tableView:cellForRowAtIndexPath:" | 466 | landmarkName = "-tableView:cellForRowAtIndexPath:" |
483 | landmarkType = "5"> | 467 | landmarkType = "5"> |
484 | </BreakpointContent> | 468 | </BreakpointContent> |
@@ -554,11 +538,11 @@ | @@ -554,11 +538,11 @@ | ||
554 | ignoreCount = "0" | 538 | ignoreCount = "0" |
555 | continueAfterRunningActions = "No" | 539 | continueAfterRunningActions = "No" |
556 | filePath = "MenuTableViewController.m" | 540 | filePath = "MenuTableViewController.m" |
557 | - timestampString = "432823134.280139" | 541 | + timestampString = "434037601.622012" |
558 | startingColumnNumber = "9223372036854775807" | 542 | startingColumnNumber = "9223372036854775807" |
559 | endingColumnNumber = "9223372036854775807" | 543 | endingColumnNumber = "9223372036854775807" |
560 | - startingLineNumber = "1176" | ||
561 | - endingLineNumber = "1176" | 544 | + startingLineNumber = "1230" |
545 | + endingLineNumber = "1230" | ||
562 | landmarkName = "-passDateRangeViewController:didFinishEnteringItem::" | 546 | landmarkName = "-passDateRangeViewController:didFinishEnteringItem::" |
563 | landmarkType = "5"> | 547 | landmarkType = "5"> |
564 | </BreakpointContent> | 548 | </BreakpointContent> |
@@ -570,11 +554,11 @@ | @@ -570,11 +554,11 @@ | ||
570 | ignoreCount = "0" | 554 | ignoreCount = "0" |
571 | continueAfterRunningActions = "No" | 555 | continueAfterRunningActions = "No" |
572 | filePath = "MenuTableViewController.m" | 556 | filePath = "MenuTableViewController.m" |
573 | - timestampString = "432823146.488089" | 557 | + timestampString = "434037601.622012" |
574 | startingColumnNumber = "9223372036854775807" | 558 | startingColumnNumber = "9223372036854775807" |
575 | endingColumnNumber = "9223372036854775807" | 559 | endingColumnNumber = "9223372036854775807" |
576 | - startingLineNumber = "1159" | ||
577 | - endingLineNumber = "1159" | 560 | + startingLineNumber = "1215" |
561 | + endingLineNumber = "1215" | ||
578 | landmarkName = "-passDateRangeViewController:didFinishEnteringItem::" | 562 | landmarkName = "-passDateRangeViewController:didFinishEnteringItem::" |
579 | landmarkType = "5"> | 563 | landmarkType = "5"> |
580 | </BreakpointContent> | 564 | </BreakpointContent> |
DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m
@@ -106,7 +106,7 @@ | @@ -106,7 +106,7 @@ | ||
106 | 106 | ||
107 | -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath | 107 | -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath |
108 | { | 108 | { |
109 | - [self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; | 109 | + //[self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; |
110 | if(![[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text] isEqualToString:NSLocalizedString(@"Searching for devices...",nil)]) | 110 | if(![[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text] isEqualToString:NSLocalizedString(@"Searching for devices...",nil)]) |
111 | { | 111 | { |
112 | [self _showConnectingView]; | 112 | [self _showConnectingView]; |
DUREX Vendor Control/MenuTableViewController.h
@@ -57,11 +57,21 @@ enum { | @@ -57,11 +57,21 @@ enum { | ||
57 | } navigationLevel; | 57 | } navigationLevel; |
58 | 58 | ||
59 | enum { | 59 | enum { |
60 | + HELLO = 0, | ||
61 | + A2, | ||
62 | + A3, | ||
63 | + A4, | ||
64 | + A5, | ||
65 | + A6, | ||
66 | + A7, | ||
67 | +} commandTypes; | ||
68 | + | ||
69 | +enum { | ||
60 | SALES_LOG = 0, | 70 | SALES_LOG = 0, |
61 | INCIDENT_LOG, | 71 | INCIDENT_LOG, |
62 | } logType; | 72 | } logType; |
63 | 73 | ||
64 | -@interface MenuTableViewController : UITableViewController <DatePickerViewControllerDelegate,PriceChangerViewControllerDelegate,NameChangerViewControllerDelegate, DateRangePickerViewControllerDelegate, NSURLConnectionDataDelegate> | 74 | +@interface MenuTableViewController : UITableViewController <DatePickerViewControllerDelegate,PriceChangerViewControllerDelegate,NameChangerViewControllerDelegate, DateRangePickerViewControllerDelegate, CommunicationProtocolDelegate, NSURLConnectionDataDelegate> |
65 | 75 | ||
66 | @property (strong,nonatomic) Stack *parentLayout; | 76 | @property (strong,nonatomic) Stack *parentLayout; |
67 | @property (strong,nonatomic) DatePickerViewController *datePickerViewController; | 77 | @property (strong,nonatomic) DatePickerViewController *datePickerViewController; |
DUREX Vendor Control/MenuTableViewController.m
@@ -43,6 +43,7 @@ | @@ -43,6 +43,7 @@ | ||
43 | @property const NSMutableArray *currentHeaders; | 43 | @property const NSMutableArray *currentHeaders; |
44 | 44 | ||
45 | @property uint8_t requestedLog; | 45 | @property uint8_t requestedLog; |
46 | +@property uint8_t sentCommand; | ||
46 | @end | 47 | @end |
47 | 48 | ||
48 | @implementation MenuTableViewController | 49 | @implementation MenuTableViewController |
@@ -84,18 +85,9 @@ | @@ -84,18 +85,9 @@ | ||
84 | [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; | 85 | [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; |
85 | } | 86 | } |
86 | 87 | ||
87 | -- (Boolean) generateMaintenanceLevel | 88 | +- (void) generateMaintenanceLevel |
88 | { | 89 | { |
89 | //Initialize sensor status | 90 | //Initialize sensor status |
90 | - [self setSensorStatus:[[Sensors alloc]init]]; | ||
91 | - | ||
92 | - NSString *sensorData = [_protocol readSensorData]; | ||
93 | - if(sensorData == nil) | ||
94 | - { | ||
95 | - NSLog(@"[MenuTableViewController.m]: Error reading sensor data"); | ||
96 | - return FALSE; | ||
97 | - } | ||
98 | - [[self sensorStatus] setResponseValue:sensorData]; | ||
99 | [self setMaintenanceElements:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_ELEMENTS, nil]]; | 91 | [self setMaintenanceElements:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_ELEMENTS, nil]]; |
100 | [self setMaintenanceStructure:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_CELLS_PER_SECTION, nil]]; | 92 | [self setMaintenanceStructure:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_CELLS_PER_SECTION, nil]]; |
101 | if([[self maintenanceStructure] count] > 1) | 93 | if([[self maintenanceStructure] count] > 1) |
@@ -106,7 +98,6 @@ | @@ -106,7 +98,6 @@ | ||
106 | { | 98 | { |
107 | [self setMaintenanceHeaders:nil]; | 99 | [self setMaintenanceHeaders:nil]; |
108 | } | 100 | } |
109 | - return TRUE; | ||
110 | } | 101 | } |
111 | 102 | ||
112 | - (void) generateSaleListNavLevel | 103 | - (void) generateSaleListNavLevel |
@@ -263,6 +254,87 @@ | @@ -263,6 +254,87 @@ | ||
263 | [self.view makeToast:NSLocalizedString(@"Connection to server failed", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; | 254 | [self.view makeToast:NSLocalizedString(@"Connection to server failed", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; |
264 | } | 255 | } |
265 | 256 | ||
257 | +- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response | ||
258 | +{ | ||
259 | + NSLog(@"[MenuTableViewController.m]: Answer received"); | ||
260 | + if(self.sentCommand == HELLO) | ||
261 | + { | ||
262 | + if([response isEqualToString:@"Hello"]) | ||
263 | + { | ||
264 | + NSLog(@"[MenuTableViewController.m]: Connection established"); | ||
265 | + [self changeNavLevel:MENU:FALSE]; | ||
266 | + } | ||
267 | + else | ||
268 | + { | ||
269 | + NSLog(@"[CommunicationProtocol.m]: Error while establishing connection"); | ||
270 | + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Error while trying to connect to the device",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; | ||
271 | + [alert show]; | ||
272 | + UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; | ||
273 | + [[self navigationController] popToViewController:previous animated:YES]; | ||
274 | + } | ||
275 | + } | ||
276 | + else if(self.sentCommand == A2 && [[response substringToIndex:2]isEqualToString:@"P2"]) | ||
277 | + { | ||
278 | + NSLog(@"[MenuTableViewController.m]: Received A2 answer"); | ||
279 | + [self setSalesLog:[[SalesLog alloc]init]]; | ||
280 | + [[self salesLog] setResponseValue:response]; | ||
281 | + [self generateSaleListNavLevel]; | ||
282 | + [self changeNavLevel:SALE_LIST:TRUE]; | ||
283 | + } | ||
284 | + else if(self.sentCommand == A3 && [[response substringToIndex:2]isEqualToString:@"P3"]) | ||
285 | + { | ||
286 | + | ||
287 | + } | ||
288 | + else if(self.sentCommand == A4 && [[response substringToIndex:2]isEqualToString:@"P4"]) | ||
289 | + { | ||
290 | + NSLog(@"[MenuTableViewController.m]: Received A4 answer"); | ||
291 | + [self setSensorStatus:[[Sensors alloc]init]]; | ||
292 | + [[self sensorStatus] setResponseValue:response]; | ||
293 | + [self generateMaintenanceLevel]; | ||
294 | + [self changeNavLevel:MAINTENANCE:TRUE]; | ||
295 | + } | ||
296 | + else if(self.sentCommand == A5 && [[response substringToIndex:2]isEqualToString:@"P5"]) | ||
297 | + { | ||
298 | + NSLog(@"[MenuTableViewController.m]: Received A5 answer"); | ||
299 | + if([response isEqualToString:@"P51"]) | ||
300 | + { | ||
301 | + | ||
302 | + } | ||
303 | + else if([response isEqualToString:@"P52"]) | ||
304 | + { | ||
305 | + NSLog(@"[MenuTableViewController.m]: Device returned error for command A5"); | ||
306 | + } | ||
307 | + } | ||
308 | + else if(self.sentCommand == A6 && [[response substringToIndex:2]isEqualToString:@"P6"]) | ||
309 | + { | ||
310 | + NSLog(@"[MenuTableViewController.m]: Received A6 answer"); | ||
311 | + if([response isEqualToString:@"P61"]) | ||
312 | + { | ||
313 | + | ||
314 | + } | ||
315 | + else if([response isEqualToString:@"P62"]) | ||
316 | + { | ||
317 | + NSLog(@"[MenuTableViewController.m]: Device returned error for command A6"); | ||
318 | + } | ||
319 | + } | ||
320 | + else if(self.sentCommand == A7 && [[response substringToIndex:2]isEqualToString:@"P7"]) | ||
321 | + { | ||
322 | + NSLog(@"[MenuTableViewController.m]: Received A7 answer"); | ||
323 | + if([response isEqualToString:@"P71"]) | ||
324 | + { | ||
325 | + | ||
326 | + } | ||
327 | + else if([response isEqualToString:@"P72"]) | ||
328 | + { | ||
329 | + NSLog(@"[MenuTableViewController.m]: Device returned error for command A7"); | ||
330 | + } | ||
331 | + } | ||
332 | + else | ||
333 | + { | ||
334 | + NSLog(@"[MenuTableViewController]: Unknown response received. Data discarded."); | ||
335 | + } | ||
336 | +} | ||
337 | + | ||
266 | - (void)viewDidLoad | 338 | - (void)viewDidLoad |
267 | { | 339 | { |
268 | [super viewDidLoad]; | 340 | [super viewDidLoad]; |
@@ -284,6 +356,7 @@ | @@ -284,6 +356,7 @@ | ||
284 | _protocol = [CommunicationProtocol sharedProtocol]; | 356 | _protocol = [CommunicationProtocol sharedProtocol]; |
285 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; | 357 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; |
286 | [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; | 358 | [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; |
359 | + self.protocol.delegate = self; | ||
287 | 360 | ||
288 | //Initialize parentLayout stack | 361 | //Initialize parentLayout stack |
289 | [self setParentLayout:[[Stack alloc]init]]; | 362 | [self setParentLayout:[[Stack alloc]init]]; |
@@ -291,21 +364,8 @@ | @@ -291,21 +364,8 @@ | ||
291 | //Set navigation level | 364 | //Set navigation level |
292 | [self initializeMenuEntries]; | 365 | [self initializeMenuEntries]; |
293 | self.currentNavLevel = 255; | 366 | self.currentNavLevel = 255; |
294 | - [self changeNavLevel:MENU:FALSE]; | ||
295 | - } | ||
296 | - | ||
297 | --(void)viewDidAppear:(BOOL)animated | ||
298 | -{ | ||
299 | - [super viewDidAppear:animated]; | ||
300 | - | ||
301 | - //DUREX protocol | ||
302 | - if(![_protocol establishConnection]) | ||
303 | - { | ||
304 | - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Error while trying to connect to the device",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; | ||
305 | - [alert show]; | ||
306 | - UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; | ||
307 | - [[self navigationController] popToViewController:previous animated:YES]; | ||
308 | - } | 367 | + [_protocol establishConnection]; |
368 | + [self setSentCommand:HELLO]; | ||
309 | } | 369 | } |
310 | 370 | ||
311 | -(void)didReceiveNotification:(NSNotification*) notification | 371 | -(void)didReceiveNotification:(NSNotification*) notification |
@@ -509,15 +569,8 @@ | @@ -509,15 +569,8 @@ | ||
509 | if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) | 569 | if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) |
510 | { | 570 | { |
511 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); | 571 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); |
512 | - if([self generateMaintenanceLevel]) | ||
513 | - { | ||
514 | - [NSThread sleepForTimeInterval:1]; //HACK! | ||
515 | - [self changeNavLevel:MAINTENANCE:TRUE]; | ||
516 | - } | ||
517 | - else | ||
518 | - { | ||
519 | - NSLog(@"[MenuTableViewController.m]: Error while changing to navLevel: MAINTENANCE"); | ||
520 | - } | 572 | + [[self protocol] readSensorData]; |
573 | + [self setSentCommand:A4]; | ||
521 | } | 574 | } |
522 | else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)]) | 575 | else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)]) |
523 | { | 576 | { |
@@ -1074,6 +1127,7 @@ | @@ -1074,6 +1127,7 @@ | ||
1074 | NSDateComponents *components = [calendar components:units fromDate:date]; | 1127 | NSDateComponents *components = [calendar components:units fromDate:date]; |
1075 | NSLog(@"[MenuTableViewController.m]: %@", components); | 1128 | NSLog(@"[MenuTableViewController.m]: %@", components); |
1076 | [_protocol updateTime: components]; | 1129 | [_protocol updateTime: components]; |
1130 | + [self setSentCommand:A5]; | ||
1077 | } | 1131 | } |
1078 | 1132 | ||
1079 | - (void)passPriceViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data | 1133 | - (void)passPriceViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data |
@@ -1114,6 +1168,7 @@ | @@ -1114,6 +1168,7 @@ | ||
1114 | int code = [codeString intValue]; | 1168 | int code = [codeString intValue]; |
1115 | NSArray *price = [priceString componentsSeparatedByString:@"."]; | 1169 | NSArray *price = [priceString componentsSeparatedByString:@"."]; |
1116 | [_protocol updatePrice:channel :code :[[price objectAtIndex:0] intValue] :[[price objectAtIndex:1] intValue]]; | 1170 | [_protocol updatePrice:channel :code :[[price objectAtIndex:0] intValue] :[[price objectAtIndex:1] intValue]]; |
1171 | + [self setSentCommand:A6]; | ||
1117 | } | 1172 | } |
1118 | } | 1173 | } |
1119 | 1174 | ||
@@ -1149,6 +1204,7 @@ | @@ -1149,6 +1204,7 @@ | ||
1149 | int channel = [channelString intValue]; | 1204 | int channel = [channelString intValue]; |
1150 | int code = [codeString intValue]; | 1205 | int code = [codeString intValue]; |
1151 | [_protocol updateProductName:channel :code :name]; | 1206 | [_protocol updateProductName:channel :code :name]; |
1207 | + [self setSentCommand:A7]; | ||
1152 | } | 1208 | } |
1153 | } | 1209 | } |
1154 | 1210 | ||
@@ -1159,9 +1215,6 @@ | @@ -1159,9 +1215,6 @@ | ||
1159 | { | 1215 | { |
1160 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALE_LIST"); | 1216 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALE_LIST"); |
1161 | 1217 | ||
1162 | - //Initialize sales log | ||
1163 | - [self setSalesLog:[[SalesLog alloc]init]]; | ||
1164 | - | ||
1165 | NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; | 1218 | NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; |
1166 | NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; | 1219 | NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; |
1167 | NSDateComponents *componentsFrom = nil; | 1220 | NSDateComponents *componentsFrom = nil; |
@@ -1174,17 +1227,7 @@ | @@ -1174,17 +1227,7 @@ | ||
1174 | { | 1227 | { |
1175 | componentsTo = [calendar components:units fromDate:to]; | 1228 | componentsTo = [calendar components:units fromDate:to]; |
1176 | } | 1229 | } |
1177 | - NSString *salesData = [_protocol readSalesLog: componentsFrom : componentsTo]; | ||
1178 | - if(salesData == nil) | ||
1179 | - { | ||
1180 | - NSLog(@"[MenuTableViewController.m]: Error reading sales log"); | ||
1181 | - } | ||
1182 | - else | ||
1183 | - { | ||
1184 | - [[self salesLog] setResponseValue:salesData]; | ||
1185 | - [self generateSaleListNavLevel]; | ||
1186 | - [self changeNavLevel:SALE_LIST:TRUE]; | ||
1187 | - } | 1230 | + [_protocol readSalesLog: componentsFrom : componentsTo]; |
1188 | } | 1231 | } |
1189 | else if([self requestedLog] == INCIDENT_LOG) | 1232 | else if([self requestedLog] == INCIDENT_LOG) |
1190 | { | 1233 | { |
TODO
@@ -5,8 +5,8 @@ BUGS: | @@ -5,8 +5,8 @@ BUGS: | ||
5 | - On date change, response is overwritten by previous query, trimming needed according to numBytes | 5 | - On date change, response is overwritten by previous query, trimming needed according to numBytes |
6 | 6 | ||
7 | TODO: | 7 | TODO: |
8 | -- processMessage with Delegate | ||
9 | - Error reporting function | 8 | - Error reporting function |
9 | +- Toast if success or error on processMessage (except nav changes) | ||
10 | - Incident class | 10 | - Incident class |
11 | - Incident parser | 11 | - Incident parser |
12 | - A3 command | 12 | - A3 command |