Commit 23d072ffea70ca8e61dfee689dc55eeeea0d355b

Authored by Calvin Bulla
1 parent fdb1b2ce
Exists in master and in 1 other branch dev

More Communication Stuff - Setup T1

app/src/inoChannel.cpp
... ... @@ -15,6 +15,10 @@ void inoChannel::exit() {
15 15 if(serial.isInitialized()) serial.close();
16 16 }
17 17  
  18 +bool inoChannel::isActive() {
  19 + return isThreadRunning() && serial.isInitialized();
  20 +}
  21 +
18 22 void inoChannel::urgentCommand(const inoCommand & cmd) {
19 23 commandsMtx.lock();
20 24 commands.push_front(cmd);
... ... @@ -50,6 +54,15 @@ void inoChannel::sleepArduino() {
50 54 addCommand(cmd);
51 55 }
52 56  
  57 +void inoChannel::setSampleRate(float new_rate) {
  58 + inoCommand cmd;
  59 + int rate = round(1000 * new_rate);
  60 + cmd.push_back(HW_SMPL_RATE);
  61 + cmd.push_back(rate/256);
  62 + cmd.push_back(rate%256);
  63 + addCommand(cmd);
  64 +}
  65 +
53 66 bool inoChannel::establish() {
54 67 serial.setup(device, 115200);
55 68 serial.flush();
... ... @@ -69,6 +82,12 @@ bool inoChannel::establish() {
69 82 return true;
70 83 }
71 84  
  85 +void inoChannel::flush() {
  86 + commandsMtx.lock();
  87 + commands.clear();
  88 + commandsMtx.unlock();
  89 +}
  90 +
72 91 void inoChannel::identify() {
73 92 inoCommand cmd;
74 93 cmd.push_back(HW_HELO);
... ... @@ -107,11 +126,11 @@ void inoChannel::handleInput() throw(runtime_error) {
107 126 }
108 127 frameMtx.lock();
109 128 serial.readBytes(buffer, 256);
110   - //cout << "new buffer" << endl;
111 129 for(int i = 0; i < 256; ++i) {
112   - printf("[[%d]] %d\n", i, buffer[i]);
  130 + // printf("%d => %d\n", i, buffer[i]);
113 131 }
114 132 frameMtx.unlock();
  133 + ofNotifyEvent(receiveFrame, this);
115 134 break;
116 135 }
117 136 case 74:
... ...
app/src/inoChannel.h
... ... @@ -24,6 +24,10 @@ public:
24 24 void identify();
25 25 void setTime();
26 26 void sleepArduino();
  27 + void setSampleRate(float new_rate);
  28 + void flush();
  29 +
  30 + bool isActive();
27 31  
28 32 private:
29 33 //TODO C++ Newbie question:
... ...
app/src/inoControl.cpp
... ... @@ -21,6 +21,7 @@ inoControl::inoControl(string device) : device(device), channel(device) {
21 21 channel.receiveFrame,
22 22 this,
23 23 &inoControl::onReceiveFrame);
  24 +
24 25 }
25 26  
26 27 inoControl::~inoControl() {
... ... @@ -37,12 +38,15 @@ ofxGuiGroup * inoControl::getGui() {
37 38 void inoControl::setupGui() {
38 39 connect.addListener(this, &inoControl::toggleConnection);
39 40 reset.addListener(this, &inoControl::resetSettings);
  41 + sample_rate.setUpdateOnReleaseOnly(true);
  42 + sample_rate.addListener(this, &inoControl::changeSampleRate);
40 43 gui.setup(device);
41 44 gui.add(status.setup("Status", "Setup"));
42 45 gui.add(connect.setup("Connect", false));
43 46 gui.add(hide.setup("Hide", false));
  47 + gui.add(sample_rate.setup("Sample [kHz]", 1, 1, 10));
44 48 gui.add(settings.setup("Settings"));
45   - settings.add(reset.setup("Reset"));
  49 + settings.add(reset.setup("Reset"));
46 50 settings.add(color.setup("Color",
47 51 ofColor(100, 100, 140),
48 52 ofColor(0, 0), ofColor(255, 255)));
... ... @@ -66,17 +70,23 @@ void inoControl::toggleConnection(bool &amp; isSet) {
66 70 string statusStr = status;
67 71 if(isSet) {
68 72 if(statusStr == "Setup" || statusStr == "Error") {
  73 + channel.flush();
69 74 channel.setup();
70 75 channel.identify();
71   - //channel.setTime();
  76 + channel.setTime();
72 77 }
73   - //channel.startStream();
  78 + channel.startStream();
74 79 } else {
75   - //channel.stopStream();
76   - //channel.sleepArduino();
  80 + channel.stopStream();
  81 + channel.sleepArduino();
77 82 }
78 83 }
79 84  
  85 +void inoControl::changeSampleRate(float & new_rate) {
  86 + if(channel.isActive())
  87 + channel.setSampleRate(new_rate);
  88 +}
  89 +
80 90 void inoControl::onStatusChanged(string & str) {
81 91 status = str;
82 92 if(str == "Error") {
... ... @@ -115,8 +125,9 @@ void inoControl::resetSettings() {
115 125 }
116 126  
117 127 void inoControl::onReceiveFrame() {
118   - channel.getFrame(&buffer[bufferIdx]);
119   - if(++bufferIdx == BUF_COUNT) {
120   - bufferIdx = 0;
121   - }
  128 + printf("[%lu] New Frame\n", time(NULL));
  129 + // channel.getFrame(&buffer[bufferIdx]);
  130 + // if(++bufferIdx == BUF_COUNT) {
  131 + // bufferIdx = 0;
  132 + // }
122 133 }
... ...
app/src/inoControl.h
... ... @@ -14,10 +14,12 @@ public:
14 14 inoControl(string device);
15 15 ~inoControl();
16 16 ofxGuiGroup * getGui();
17   - void toggleConnection(bool & status);
18 17 void onStatusChanged(string & status);
19 18 void onReceiveFrame();
  19 +
20 20 void resetSettings();
  21 + void toggleConnection(bool & status);
  22 + void changeSampleRate(float & new_rate);
21 23  
22 24 void drawWave(float zoom);
23 25  
... ... @@ -34,6 +36,7 @@ private:
34 36 ofxToggle connect;
35 37 ofxToggle hide;
36 38 ofxLabel status;
  39 + ofxFloatSlider sample_rate;
37 40  
38 41 ofxGuiGroup settings;
39 42 ofxButton reset;
... ...
ino/lib/LCD/LCD.cpp
... ... @@ -3,7 +3,6 @@
3 3 LCD::LCD() {
4 4 lcd_addr = LCD_DEFAULT_ADDRESS >> 1;
5 5 rowpos = 0;
6   - set_timeout(1);
7 6 for(uint8_t i = 0; i < LCD_HEIGHT; ++i) {
8 7 for(uint8_t j = 0; j < LCD_ROW_SIZE; ++j) {
9 8 // TODO Only for debugging purposes
... ... @@ -128,16 +127,7 @@ void LCD::set_row(uint8_t idx, const char *str, uint8_t len, uint8_t pos) {
128 127 memcpy(&rows[idx][pos], str, len);
129 128 }
130 129  
131   -void LCD::set_timeout(uint8_t ticks) {
132   - tick_ovf = ticks;
133   - // Force next update
134   - tick_cnt = ticks;
135   -}
136   -
137   -/*
138 130 bool LCD::tick() {
139   - // Serial.write(76);
140   - // Serial.write((unsigned char)rowpos);
141 131 print_frame();
142 132 if(++rowpos == LCD_ROW_SIZE) {
143 133 rowpos = 0;
... ... @@ -162,43 +152,8 @@ void LCD::print_frame() {
162 152 }
163 153 Wire.endTransmission();
164 154 }
165   -}*/
166   -
167   -bool LCD::tick() {
168   - // Check Timeout
169   - if(++tick_cnt < tick_ovf) {
170   - return false;
171   - }
172   - tick_cnt = 0;
173   -
174   - clear_screen();
175   - print_frame();
176   -
177   - if(++rowpos == LCD_ROW_SIZE) {
178   - rowpos = 0;
179   - return true;
180   - }
181   - return false;
182   -}
183   -
184   -void LCD::print_frame() {
185   - for(uint8_t i = 0; i < LCD_HEIGHT; ++i) {
186   - set_cursor(1, i+1);
187   - Wire.beginTransmission(lcd_addr);
188   - Wire.write(LCD_COMMAND);
189   - uint8_t towrite = LCD_ROW_SIZE - rowpos;
190   - if(towrite < LCD_WIDTH) {
191   - // Leftovers
192   - Wire.write(&rows[i][rowpos], towrite);
193   - Wire.write(rows[i], LCD_WIDTH - towrite);
194   - } else {
195   - // No leftovers
196   - Wire.write(&rows[i][rowpos], LCD_WIDTH);
197   - }
198   - Wire.endTransmission();
199   - }
200 155 }
201 156  
202   -void LCD::clean_row(uint8_t idx) {
  157 +void LCD::clear_row(uint8_t idx) {
203 158 memset(rows[idx], ' ', LCD_ROW_SIZE);
204 159 }
... ...
ino/lib/LCD/LCD.h
... ... @@ -74,17 +74,13 @@ class LCD {
74 74  
75 75 void print_frame();
76 76 void set_row(uint8_t idx, const char *str, uint8_t len, uint8_t pos = 0);
77   - void clean_row(uint8_t idx);
78   - void set_timeout(uint8_t ticks);
  77 + void clear_row(uint8_t idx);
79 78 // true if frame finishes
80 79 bool tick();
81 80 private:
82 81 char rows[LCD_HEIGHT][LCD_ROW_SIZE];
83 82 uint8_t rowpos;
84 83  
85   - uint8_t tick_cnt;
86   - uint8_t tick_ovf;
87   -
88 84 uint8_t lcd_addr;
89 85  
90 86 void command(byte cmd);
... ...
ino/src/sketch.ino
... ... @@ -7,6 +7,9 @@
7 7 #define ONE_SECOND_TCKS 15625
8 8 #define SIZE 256
9 9  
  10 +// Broken Debug Macro
  11 +#define DEBUG_16(M, ...) { char buf[16]; lcd.clear_row(0); lcd.set_row(0, buf, sprintf(buf, M, ##__VA_ARGS__)); }
  12 +
10 13 // General stuff
11 14  
12 15 volatile uint32_t timestamp = 0;
... ... @@ -37,6 +40,16 @@ struct time_formated {
37 40 uint8_t seconds, minutes, hours, day, month, year;
38 41 };
39 42  
  43 +uint16_t sample_rate;
  44 +#define T1_MS 0.016
  45 +
  46 +void set_sample_rate(uint16_t new_rate) {
  47 + sample_rate = new_rate; // Hz
  48 + int cnt = round((1.0 / (double)new_rate)/T1_MS);
  49 + OCR1B = cnt;
  50 + OCR1A = cnt;
  51 +}
  52 +
40 53 // ISR routines
41 54  
42 55 ISR(ADC_vect) {
... ... @@ -54,6 +67,9 @@ ISR(ADC_vect) {
54 67 }
55 68 }
56 69  
  70 +ISR(TIMER1_COMPB_vect) {
  71 +}
  72 +
57 73 // Each ms
58 74 ISR(TIMER2_COMPA_vect) {
59 75 TCNT2 = 0; // we won't lose ticks
... ... @@ -65,18 +81,13 @@ ISR(TIMER2_COMPA_vect) {
65 81 }
66 82 }
67 83  
68   -// ISR(TIMER1_COMPA_vect) {
69   -// TCNT1 = 0; // we won't lose ticks
70   -// if(ticks.step()) {
71   -// timestamp++; // inc. 1 sec
72   -// }
73   -// if(lcd_ticks.step()) {
74   -// lcd_step = true;
75   -// }
76   -// }
77   -
78 84 // Procedures && functions
79 85  
  86 +unsigned char serial_read() {
  87 + while (!Serial.available());
  88 + return Serial.read();
  89 +}
  90 +
80 91 void getTimeFormated(struct time_formated &tf) {
81 92 // Modified version from <Time.h>
82 93  
... ... @@ -128,16 +139,14 @@ void getTimeFormated(struct time_formated &amp;tf) {
128 139 }
129 140  
130 141 void process_frame() {
131   - if (transfer_active && transfer_ready) {
132   - // We can send a new Frame
133   - Serial.write(HW_NEW_FRAME);
  142 + // We can send a new Frame
  143 + Serial.write(HW_NEW_FRAME);
134 144  
135   - for (int i = 0; i < SIZE; i++) {
136   - Serial.write(pc_buffer[i]);
137   - }
138   - transfer_ready = false;
139   - Serial.flush();
  145 + for (int i = 0; i < SIZE; i++) {
  146 + Serial.write(pc_buffer[i]);
140 147 }
  148 + transfer_ready = false;
  149 + Serial.flush();
141 150 }
142 151  
143 152 void update_time() {
... ... @@ -167,13 +176,13 @@ void hardware_setup() {
167 176  
168 177 // Timer 1
169 178  
170   - // TCCR1A = 0;
171   - // TCCR1B = 0; // stop
172   - // TCNT1 = 0;
173   - // TIFR1 = 0;
174   - // OCR1A = ONE_SECOND_TCKS;
175   - // TIMSK1 = (1 << OCIE1A) | (1 << TOIE1);
176   - // TCCR1B = (1 << CS12) | (1 << CS10);
  179 + TCCR1A = 0;
  180 + TCCR1B = 0; // stop
  181 + TCNT1 = 0;
  182 + TIFR1 = 0;
  183 + set_sample_rate(1000);
  184 + TIMSK1 = (1 << OCIE1B);
  185 + TCCR1B = (1 << CS12) | (1 << WGM12);
177 186  
178 187 // Timer 2
179 188 // Used for Timing/Unix Time
... ... @@ -208,20 +217,27 @@ void setup() {
208 217 }
209 218  
210 219 void handleComm() {
211   - switch (Serial.read()) {
  220 + unsigned char ch;
  221 + switch (ch = serial_read()) {
212 222 case HW_HELO:
213 223 {
214   - // TODO Buffer overflow
215   - char toread = Serial.read();
  224 + // TODO Buffer overflow
  225 + unsigned char toread = serial_read();
216 226 while (Serial.available() < toread);
217   - Serial.readBytes(ino_alias, toread);
218   - lcd.clean_row(0);
  227 + if (toread > LCD_ROW_SIZE) {
  228 + Serial.readBytes(ino_alias, LCD_ROW_SIZE);
  229 + for (int i = LCD_ROW_SIZE; i < toread; ++i) Serial.read();
  230 + } else {
  231 + Serial.readBytes(ino_alias, toread);
  232 + }
  233 + lcd.clear_row(0);
219 234 lcd.set_row(0, ino_alias, toread);
220 235 ino_alias[toread] = 0;
221 236 break;
222 237 }
223 238 case HW_SMPL_RATE: {
224   - // change register
  239 + uint16_t new_rate = 256 * serial_read() + serial_read();
  240 + set_sample_rate(new_rate);
225 241 break;
226 242 }
227 243 case HW_DTIME_GET:
... ... @@ -242,6 +258,7 @@ void handleComm() {
242 258 }
243 259 case HW_SLEEP:
244 260 {
  261 + DEBUG_16("SLEEP")
245 262 SMCR = 0; // (mode) low power reduction
246 263 SMCR |= (1 << SE);
247 264 asm volatile("sleep");
... ... @@ -266,8 +283,7 @@ void handleComm() {
266 283 {
267 284  
268 285 // This should never happen, command ignored
269   - char *errmsg = "Error!!! Error!!! ";
270   - lcd.set_row(0, errmsg, 32);
  286 + DEBUG_16("E %u", ch)
271 287 break;
272 288  
273 289 // This usually happens when we close serial port
... ... @@ -279,15 +295,15 @@ void handleComm() {
279 295 }
280 296  
281 297 void loop() {
282   - process_frame();
283   -
  298 + if (transfer_active && transfer_ready) {
  299 + process_frame();
  300 + }
284 301 if (lcd_step) {
285 302 update_time();
286 303 lcd.tick();
287 304 lcd_step = false;
288 305 }
289   -
290   - if (Serial.available() >= 1) {
  306 + if (Serial.available()) {
291 307 handleComm();
292 308 }
293 309 }
... ...
tmp.txt 0 → 100644
... ... @@ -0,0 +1,527 @@
  1 +Error 255, 255
  2 +Error 255, 255
  3 +Error 254, 72
  4 +Version 0.5
  5 +[1] 22 bytes
  6 +> 1 20 47 100 101 118 47 116 116 121 46 117 115 98 109 111 100 101 109 54 52 49
  7 +[1] 22 bytes
  8 +> 1 20 47 100 101 118 47 116 116 121 46 117 115 98 109 111 100 101 109 54 52 49
  9 +[3] 1 bytes
  10 +> 3
  11 +[8] 1 bytes
  12 +> 8
  13 +[6] 5 bytes
  14 +> 6 198 109 100 85
  15 +[2] 1 bytes
  16 +> 2
  17 +[3] 1 bytes
  18 +> 3
  19 +[8] 1 bytes
  20 +> 8
  21 +[6] 5 bytes
  22 +> 6 202 109 100 85
  23 +[2] 1 bytes
  24 +> 2
  25 +[1432645070] New Frame
  26 +[1432645070] New Frame
  27 +[1432645070] New Frame
  28 +[1432645070] New Frame
  29 +[1432645070] New Frame
  30 +[1432645070] New Frame
  31 +[1432645070] New Frame
  32 +[1432645070] New Frame
  33 +[1432645070] New Frame
  34 +[1432645070] New Frame
  35 +[1432645070] New Frame
  36 +[1432645070] New Frame
  37 +[1432645070] New Frame
  38 +[1432645070] New Frame
  39 +[1432645070] New Frame
  40 +[1432645070] New Frame
  41 +[1432645070] New Frame
  42 +[1432645070] New Frame
  43 +[1432645070] New Frame
  44 +[1432645070] New Frame
  45 +[1432645070] New Frame
  46 +[1432645070] New Frame
  47 +[1432645070] New Frame
  48 +[1432645070] New Frame
  49 +[1432645070] New Frame
  50 +[1432645070] New Frame
  51 +[1432645070] New Frame
  52 +[1432645070] New Frame
  53 +[1432645070] New Frame
  54 +[1432645070] New Frame
  55 +[1432645071] New Frame
  56 +[1432645071] New Frame
  57 +[1432645071] New Frame
  58 +[1432645071] New Frame
  59 +[1432645071] New Frame
  60 +[1432645071] New Frame
  61 +[1432645071] New Frame
  62 +[1432645071] New Frame
  63 +[1432645071] New Frame
  64 +[1432645071] New Frame
  65 +[1432645071] New Frame
  66 +[1432645071] New Frame
  67 +[1432645071] New Frame
  68 +[1432645071] New Frame
  69 +[1432645071] New Frame
  70 +[1432645071] New Frame
  71 +[1432645071] New Frame
  72 +[1432645071] New Frame
  73 +[1432645071] New Frame
  74 +[1432645071] New Frame
  75 +[1432645071] New Frame
  76 +[1432645071] New Frame
  77 +[1432645071] New Frame
  78 +[1432645071] New Frame
  79 +[1432645071] New Frame
  80 +[1432645071] New Frame
  81 +[1432645071] New Frame
  82 +[1432645071] New Frame
  83 +[1432645071] New Frame
  84 +[1432645071] New Frame
  85 +[1432645071] New Frame
  86 +[1432645071] New Frame
  87 +[1432645071] New Frame
  88 +[1432645071] New Frame
  89 +[1432645071] New Frame
  90 +[1432645071] New Frame
  91 +[1432645071] New Frame
  92 +[1432645071] New Frame
  93 +[1432645071] New Frame
  94 +[1432645071] New Frame
  95 +[1432645071] New Frame
  96 +[1432645071] New Frame
  97 +[1432645071] New Frame
  98 +[1432645071] New Frame
  99 +[1432645071] New Frame
  100 +[1432645072] New Frame
  101 +[1432645072] New Frame
  102 +[1432645072] New Frame
  103 +[1432645072] New Frame
  104 +[1432645072] New Frame
  105 +[1432645072] New Frame
  106 +[1432645072] New Frame
  107 +[1432645072] New Frame
  108 +[1432645072] New Frame
  109 +[1432645072] New Frame
  110 +[1432645072] New Frame
  111 +[1432645072] New Frame
  112 +[1432645072] New Frame
  113 +[1432645072] New Frame
  114 +[1432645072] New Frame
  115 +[1432645072] New Frame
  116 +[1432645072] New Frame
  117 +[1432645072] New Frame
  118 +[1432645072] New Frame
  119 +[1432645072] New Frame
  120 +[1432645072] New Frame
  121 +[1432645072] New Frame
  122 +[1432645072] New Frame
  123 +[1432645072] New Frame
  124 +[1432645072] New Frame
  125 +[1432645072] New Frame
  126 +[1432645072] New Frame
  127 +[1432645072] New Frame
  128 +[1432645072] New Frame
  129 +[1432645072] New Frame
  130 +[1432645072] New Frame
  131 +[1432645072] New Frame
  132 +[1432645072] New Frame
  133 +[1432645072] New Frame
  134 +[1432645072] New Frame
  135 +[1432645072] New Frame
  136 +[1432645072] New Frame
  137 +[1432645072] New Frame
  138 +[1432645072] New Frame
  139 +[1432645072] New Frame
  140 +[1432645072] New Frame
  141 +[1432645072] New Frame
  142 +[1432645072] New Frame
  143 +[1432645072] New Frame
  144 +[1432645072] New Frame
  145 +[1432645073] New Frame
  146 +[1432645073] New Frame
  147 +[1432645073] New Frame
  148 +[1432645073] New Frame
  149 +[1432645073] New Frame
  150 +[1432645073] New Frame
  151 +[1432645073] New Frame
  152 +[1432645073] New Frame
  153 +[1432645073] New Frame
  154 +[1432645073] New Frame
  155 +[1432645073] New Frame
  156 +[1432645073] New Frame
  157 +[1432645073] New Frame
  158 +[1432645073] New Frame
  159 +[1432645073] New Frame
  160 +[1432645073] New Frame
  161 +[1432645073] New Frame
  162 +[1432645073] New Frame
  163 +[1432645073] New Frame
  164 +[1432645073] New Frame
  165 +[1432645073] New Frame
  166 +[1432645073] New Frame
  167 +[1432645073] New Frame
  168 +[1432645073] New Frame
  169 +[1432645073] New Frame
  170 +[1432645073] New Frame
  171 +[1432645073] New Frame
  172 +[1432645073] New Frame
  173 +[1432645073] New Frame
  174 +[1432645073] New Frame
  175 +[1432645073] New Frame
  176 +[1432645073] New Frame
  177 +[1432645073] New Frame
  178 +[1432645073] New Frame
  179 +[1432645073] New Frame
  180 +[1432645073] New Frame
  181 +[1432645073] New Frame
  182 +[1432645073] New Frame
  183 +[1432645073] New Frame
  184 +[1432645073] New Frame
  185 +[1432645073] New Frame
  186 +[1432645073] New Frame
  187 +[1432645073] New Frame
  188 +[1432645073] New Frame
  189 +[1432645073] New Frame
  190 +[1432645074] New Frame
  191 +[1432645074] New Frame
  192 +[1432645074] New Frame
  193 +[1432645074] New Frame
  194 +[1432645074] New Frame
  195 +[1432645074] New Frame
  196 +[1432645074] New Frame
  197 +[1432645074] New Frame
  198 +[1432645074] New Frame
  199 +[1432645074] New Frame
  200 +[1432645074] New Frame
  201 +[1432645074] New Frame
  202 +[1432645074] New Frame
  203 +[1432645074] New Frame
  204 +[1432645074] New Frame
  205 +[1432645074] New Frame
  206 +[1432645074] New Frame
  207 +[1432645074] New Frame
  208 +[1432645074] New Frame
  209 +[1432645074] New Frame
  210 +[1432645074] New Frame
  211 +[1432645074] New Frame
  212 +[1432645074] New Frame
  213 +[1432645074] New Frame
  214 +[1432645074] New Frame
  215 +[1432645074] New Frame
  216 +[1432645074] New Frame
  217 +[1432645074] New Frame
  218 +[1432645074] New Frame
  219 +[1432645074] New Frame
  220 +[1432645074] New Frame
  221 +[1432645074] New Frame
  222 +[1432645074] New Frame
  223 +[1432645074] New Frame
  224 +[1432645074] New Frame
  225 +[1432645074] New Frame
  226 +[1432645074] New Frame
  227 +[1432645074] New Frame
  228 +[1432645074] New Frame
  229 +[1432645074] New Frame
  230 +[1432645074] New Frame
  231 +[1432645074] New Frame
  232 +[1432645074] New Frame
  233 +[1432645074] New Frame
  234 +[1432645074] New Frame
  235 +[4] 3 bytes
  236 +> 4 37 69
  237 +[1432645075] New Frame
  238 +[1432645075] New Frame
  239 +[1432645075] New Frame
  240 +[1432645075] New Frame
  241 +[1432645075] New Frame
  242 +[1432645075] New Frame
  243 +[1432645075] New Frame
  244 +[1432645075] New Frame
  245 +[4] 3 bytes
  246 +> 4 39 16
  247 +[1432645075] New Frame
  248 +[4] 3 bytes
  249 +> 4 39 16
  250 +[1432645075] New Frame
  251 +[4] 3 bytes
  252 +> 4 39 16
  253 +[4] 3 bytes
  254 +> 4 39 16
  255 +[1432645075] New Frame
  256 +[4] 3 bytes
  257 +> 4 39 16
  258 +[1432645075] New Frame
  259 +[4] 3 bytes
  260 +> 4 39 16
  261 +[1432645075] New Frame
  262 +[4] 3 bytes
  263 +> 4 39 16
  264 +[1432645075] New Frame
  265 +[4] 3 bytes
  266 +> 4 39 16
  267 +[1432645075] New Frame
  268 +[4] 3 bytes
  269 +> 4 39 16
  270 +[1432645075] New Frame
  271 +[1432645075] New Frame
  272 +[1432645075] New Frame
  273 +[1432645075] New Frame
  274 +[1432645075] New Frame
  275 +[1432645075] New Frame
  276 +[1432645075] New Frame
  277 +[1432645075] New Frame
  278 +[1432645075] New Frame
  279 +[1432645075] New Frame
  280 +[1432645075] New Frame
  281 +[4] 3 bytes
  282 +> 4 39 16
  283 +[1432645075] New Frame
  284 +[1432645075] New Frame
  285 +[1432645075] New Frame
  286 +[1432645075] New Frame
  287 +[1432645075] New Frame
  288 +[1432645075] New Frame
  289 +[1432645075] New Frame
  290 +[1432645075] New Frame
  291 +[1432645075] New Frame
  292 +[1432645075] New Frame
  293 +[1432645075] New Frame
  294 +[1432645075] New Frame
  295 +[1432645075] New Frame
  296 +[1432645075] New Frame
  297 +[1432645075] New Frame
  298 +[1432645075] New Frame
  299 +[1432645075] New Frame
  300 +[1432645075] New Frame
  301 +[1432645075] New Frame
  302 +[1432645076] New Frame
  303 +[1432645076] New Frame
  304 +[1432645076] New Frame
  305 +[1432645076] New Frame
  306 +[1432645076] New Frame
  307 +[1432645076] New Frame
  308 +[1432645076] New Frame
  309 +[1432645076] New Frame
  310 +[1432645076] New Frame
  311 +[1432645076] New Frame
  312 +[1432645076] New Frame
  313 +[1432645076] New Frame
  314 +[1432645076] New Frame
  315 +[1432645076] New Frame
  316 +[1432645076] New Frame
  317 +[1432645076] New Frame
  318 +[1432645076] New Frame
  319 +[1432645076] New Frame
  320 +[1432645076] New Frame
  321 +[1432645076] New Frame
  322 +[1432645076] New Frame
  323 +[1432645076] New Frame
  324 +[1432645076] New Frame
  325 +[1432645076] New Frame
  326 +[1432645076] New Frame
  327 +[1432645076] New Frame
  328 +[1432645076] New Frame
  329 +[1432645076] New Frame
  330 +[1432645076] New Frame
  331 +[1432645076] New Frame
  332 +[1432645076] New Frame
  333 +[1432645076] New Frame
  334 +[1432645076] New Frame
  335 +[1432645076] New Frame
  336 +[1432645076] New Frame
  337 +[1432645076] New Frame
  338 +[1432645076] New Frame
  339 +[1432645076] New Frame
  340 +[1432645076] New Frame
  341 +[1432645076] New Frame
  342 +[1432645076] New Frame
  343 +[1432645076] New Frame
  344 +[1432645076] New Frame
  345 +[1432645076] New Frame
  346 +[1432645076] New Frame
  347 +[1432645077] New Frame
  348 +[1432645077] New Frame
  349 +[1432645077] New Frame
  350 +[1432645077] New Frame
  351 +[1432645077] New Frame
  352 +[1432645077] New Frame
  353 +[1432645077] New Frame
  354 +[1432645077] New Frame
  355 +[1432645077] New Frame
  356 +[1432645077] New Frame
  357 +[1432645077] New Frame
  358 +[1432645077] New Frame
  359 +[1432645077] New Frame
  360 +[1432645077] New Frame
  361 +[1432645077] New Frame
  362 +[1432645077] New Frame
  363 +[1432645077] New Frame
  364 +[1432645077] New Frame
  365 +[1432645077] New Frame
  366 +[1432645077] New Frame
  367 +[1432645077] New Frame
  368 +[1432645077] New Frame
  369 +[1432645077] New Frame
  370 +[1432645077] New Frame
  371 +[1432645077] New Frame
  372 +[1432645077] New Frame
  373 +[1432645077] New Frame
  374 +[1432645077] New Frame
  375 +[1432645077] New Frame
  376 +[1432645077] New Frame
  377 +[1432645077] New Frame
  378 +[1432645077] New Frame
  379 +[1432645077] New Frame
  380 +[1432645077] New Frame
  381 +[1432645077] New Frame
  382 +[1432645077] New Frame
  383 +[1432645077] New Frame
  384 +[1432645077] New Frame
  385 +[1432645077] New Frame
  386 +[1432645077] New Frame
  387 +[1432645077] New Frame
  388 +[1432645077] New Frame
  389 +[1432645077] New Frame
  390 +[1432645077] New Frame
  391 +[1432645077] New Frame
  392 +[1432645078] New Frame
  393 +[1432645078] New Frame
  394 +[1432645078] New Frame
  395 +[1432645078] New Frame
  396 +[1432645078] New Frame
  397 +[1432645078] New Frame
  398 +[1432645078] New Frame
  399 +[1432645078] New Frame
  400 +[1432645078] New Frame
  401 +[1432645078] New Frame
  402 +[1432645078] New Frame
  403 +[1432645078] New Frame
  404 +[1432645078] New Frame
  405 +[1432645078] New Frame
  406 +[1432645078] New Frame
  407 +[1432645078] New Frame
  408 +[1432645078] New Frame
  409 +[1432645078] New Frame
  410 +[1432645078] New Frame
  411 +[1432645078] New Frame
  412 +[1432645078] New Frame
  413 +[1432645078] New Frame
  414 +[1432645078] New Frame
  415 +[1432645078] New Frame
  416 +[1432645078] New Frame
  417 +[1432645078] New Frame
  418 +[1432645078] New Frame
  419 +[1432645078] New Frame
  420 +[1432645078] New Frame
  421 +[1432645078] New Frame
  422 +[1432645078] New Frame
  423 +[1432645078] New Frame
  424 +[1432645078] New Frame
  425 +[1432645078] New Frame
  426 +[1432645078] New Frame
  427 +[1432645078] New Frame
  428 +[1432645078] New Frame
  429 +[1432645078] New Frame
  430 +[1432645078] New Frame
  431 +[1432645078] New Frame
  432 +[1432645078] New Frame
  433 +[1432645078] New Frame
  434 +[1432645078] New Frame
  435 +[1432645078] New Frame
  436 +[1432645078] New Frame
  437 +[1432645079] New Frame
  438 +[1432645079] New Frame
  439 +[1432645079] New Frame
  440 +[1432645079] New Frame
  441 +[1432645079] New Frame
  442 +[1432645079] New Frame
  443 +[1432645079] New Frame
  444 +[1432645079] New Frame
  445 +[1432645079] New Frame
  446 +[1432645079] New Frame
  447 +[1432645079] New Frame
  448 +[1432645079] New Frame
  449 +[1432645079] New Frame
  450 +[1432645079] New Frame
  451 +[1432645079] New Frame
  452 +[1432645079] New Frame
  453 +[1432645079] New Frame
  454 +[1432645079] New Frame
  455 +[1432645079] New Frame
  456 +[1432645079] New Frame
  457 +[1432645079] New Frame
  458 +[1432645079] New Frame
  459 +[1432645079] New Frame
  460 +[1432645079] New Frame
  461 +[1432645079] New Frame
  462 +[1432645079] New Frame
  463 +[1432645079] New Frame
  464 +[1432645079] New Frame
  465 +[1432645079] New Frame
  466 +[1432645079] New Frame
  467 +[1432645079] New Frame
  468 +[1432645079] New Frame
  469 +[1432645079] New Frame
  470 +[1432645079] New Frame
  471 +[1432645079] New Frame
  472 +[1432645079] New Frame
  473 +[1432645079] New Frame
  474 +[1432645079] New Frame
  475 +[1432645079] New Frame
  476 +[1432645079] New Frame
  477 +[1432645079] New Frame
  478 +[1432645079] New Frame
  479 +[1432645079] New Frame
  480 +[1432645079] New Frame
  481 +[1432645079] New Frame
  482 +[1432645080] New Frame
  483 +[1432645080] New Frame
  484 +[1432645080] New Frame
  485 +[1432645080] New Frame
  486 +[1432645080] New Frame
  487 +[1432645080] New Frame
  488 +[1432645080] New Frame
  489 +[1432645080] New Frame
  490 +[1432645080] New Frame
  491 +[1432645080] New Frame
  492 +[1432645080] New Frame
  493 +[1432645080] New Frame
  494 +[1432645080] New Frame
  495 +[1432645080] New Frame
  496 +[1432645080] New Frame
  497 +[1432645080] New Frame
  498 +[1432645080] New Frame
  499 +[1432645080] New Frame
  500 +[1432645080] New Frame
  501 +[1432645080] New Frame
  502 +[1432645080] New Frame
  503 +[1432645080] New Frame
  504 +[1432645080] New Frame
  505 +[1432645080] New Frame
  506 +[1432645080] New Frame
  507 +[1432645080] New Frame
  508 +[1432645080] New Frame
  509 +[1432645080] New Frame
  510 +[1432645080] New Frame
  511 +[1432645080] New Frame
  512 +[1432645080] New Frame
  513 +[1432645080] New Frame
  514 +[1432645080] New Frame
  515 +[1432645080] New Frame
  516 +[1432645080] New Frame
  517 +[1432645080] New Frame
  518 +[1432645080] New Frame
  519 +[1432645080] New Frame
  520 +[1432645080] New Frame
  521 +[1432645080] New Frame
  522 +[1432645080] New Frame
  523 +[1432645080] New Frame
  524 +[1432645080] New Frame
  525 +[1432645080] New Frame
  526 +[1432645080] New Frame
  527 +[1432645081] New Frame
... ...