  | 37 | 37 | | |
| | 38 | 38 | | public class MainForm : System.Windows.Forms.Form |
| | 39 | 39 | | { |
  | | 40 | + | private enum OperationModes { Upload, CollectUpload, Collect }; |
| | | 41 | + | |
| 40 | 42 | | private MenuItem campaignMenuItem; |
| | 41 | 43 | | private MainMenu mainMenu1; |
| | 42 | 44 | | private MenuItem exitMenuItem; |
| |
|
|
 |
… |
| 45 | 47 | | private MenuItem menuCollectUpload; |
| | 46 | 48 | | private MenuItem menuUpload; |
| | 47 | 49 | | |
  | 48 | | - | |
| | | 50 | + | |
| 49 | 51 | | private string _uploadServer = ""; |
| | 50 | 52 | | |
  | 51 | | - | |
| | 52 | | - | private Delegate _delegateMenus; |
| | 53 | | - | |
| | | 53 | + | |
| | | 54 | + | |
| | | 55 | + | |
| | | 56 | + | |
| 54 | 57 | | private Delegate _delegateStatusUpdate; |
  | 55 | | - | |
| | | 58 | + | |
| 56 | 59 | | private Delegate _delegateFeedbackUpdate; |
  | 57 | | - | |
| | | 60 | + | |
| 58 | 61 | | private Delegate _delegateUploadUpdate; |
| | 59 | 62 | | |
  | 60 | | - | |
| | | 63 | + | |
| 61 | 64 | | private SensorDataManager _sensorDataManager; |
| | 62 | 65 | | |
| | 63 | 66 | | private FeedbackManager _feedbackManager; |
  | 64 | | - | |
| | | 67 | + | |
| 65 | 68 | | private TimerCallback _timerDelegate; |
  | 66 | | - | |
| | | 69 | + | |
| 67 | 70 | | private System.Threading.Timer _uploadMonitorTimer; |
  | 68 | | - | |
| | 69 | | - | private const int UPLDMNTRINTRVL = 10000; |
| | 70 | | - | |
| | | 71 | + | |
| | | 72 | + | |
| | | 73 | + | private const int uploadMonitorInterval = 10000; |
| | | 74 | + | |
| | | 75 | + | private const int uploadInterval = 10000; |
| | | 76 | + | |
| | | 77 | + | |
| 71 | 78 | | private object _lock = new object(); |
| | 72 | 79 | | |
| | 73 | 80 | | private bool _manualCapture = false; |
| |
|
|
 |
… |
| 76 | 83 | | |
| | 77 | 84 | | private string _campaignname = ""; |
| | 78 | 85 | | private Boolean _uploadOnStart = false; |
  | | 86 | + | private Boolean _startOnLoad = false; |
| 79 | 87 | | private Boolean _debugModeOn = false; |
| | 80 | 88 | | private Boolean _killUploadMonitor = false; |
| | 81 | 89 | | private MenuItem menuConfig; |
  | | 90 | + | |
| 82 | 91 | | private Label label1; |
  | 83 | | - | |
| 84 | 92 | | private Label status; |
| | 85 | 93 | | private Label upload; |
| | 86 | 94 | | private Panel loadingPanel; |
| |
|
|
 |
… |
| 332 | 340 | | |
| | 333 | 341 | | |
| | 334 | 342 | | |
  | 335 | | - | |
| 336 | 343 | | private void monitorUpload(Object o) |
| | 337 | 344 | | { |
| | 338 | 345 | | lock (_lock) |
| | 339 | 346 | | { |
| | 340 | 347 | | Message msg; |
  | 341 | | - | bool error = false; |
| | | 348 | + | |
| 342 | 349 | | try |
| | 343 | 350 | | { |
| | 344 | 351 | | while (!_killUploadMonitor && (msg = DatabaseManager.MessageQueue.GetItem()) != null) |
| |
|
|
 |
… |
| 347 | 354 | | if (msg.MType == MessageType.Error) |
| | 348 | 355 | | { |
| | 349 | 356 | | |
  | 350 | | - | error = true; |
| | | 357 | + | |
| 351 | 358 | | |
| | 352 | 359 | | if (_debugModeOn) |
| | 353 | 360 | | Invoke(_delegateStatusUpdate, new Object[] { status, msg.ToString() }); |
| |
|
|
 |
… |
| 359 | 366 | | } |
| | 360 | 367 | | else if (msg.MType == MessageType.Status) |
| | 361 | 368 | | { |
  | 362 | | - | Invoke(_delegateStatusUpdate, new Object[] { status, msg.ToString() }); |
| | | 369 | + | Invoke(_delegateStatusUpdate, new Object[] { status, msg.ToString() }); |
| 363 | 370 | | } |
| | 364 | 371 | | else if (msg.MType == MessageType.Information) |
| | 365 | 372 | | { |
| |
|
|
 |
… |
| 369 | 376 | | else if (msg.MType == MessageType.UploadSuccess) |
| | 370 | 377 | | { |
| | 371 | 378 | | if (msg.Text.Length == 0) |
  | 372 | | - | Invoke(_delegateUploadUpdate, new Object[] { upload, "" }); |
| | | 379 | + | Invoke(_delegateUploadUpdate, new Object[] { upload, "" }); |
| 373 | 380 | | else |
  | 374 | | - | Invoke(_delegateUploadUpdate, new Object[] { upload, msg.ToString() }); |
| | | 381 | + | Invoke(_delegateUploadUpdate, new Object[] { upload, msg.ToString() }); |
| 375 | 382 | | } |
| | 376 | 383 | | else if (msg.MType == MessageType.Feedback) |
| | 377 | 384 | | { |
| | 378 | 385 | | if (msg.Text.Length > 0) |
  | 379 | | - | Invoke(_delegateFeedbackUpdate, new Object[] { status, msg.ToString() }); |
| | | 386 | + | |
| | | 387 | + | Invoke(_delegateFeedbackUpdate, new Object[] { status, msg.ToString() }); |
| 380 | 388 | | } |
| | 381 | 389 | | else if (msg.MType == MessageType.TaskComplete) |
| | 382 | 390 | | { |
  | 383 | | - | Invoke(_delegateUploadUpdate, new Object[] { status, msg.ToString() }); |
| | 384 | | - | Invoke(_delegateMenus, new Object[] { null, null }); |
| | | 391 | + | Invoke(_delegateUploadUpdate, new Object[] { status, msg.ToString() }); |
| 385 | 392 | | } |
| | 386 | 393 | | } |
| | 387 | 394 | | |
  | 388 | | - | if (error) |
| | 389 | | - | Invoke(_delegateMenus, new Object[] { null, null }); |
| | | 395 | + | |
| | | 396 | + | |
| | | 397 | + | } catch { |
| | | 398 | + | |
| 390 | 399 | | } |
  | 391 | | - | catch { |
| | 392 | | - | |
| | 393 | | - | } |
| 394 | 400 | | } |
| | 395 | 401 | | } |
| | 396 | 402 | | |
| |
|
|
 |
… |
| 469 | 475 | | status.Height = Screen.PrimaryScreen.WorkingArea.Height; |
| | 470 | 476 | | } |
| | 471 | 477 | | |
  | 472 | | - | |
| | | 478 | + | |
| 473 | 479 | | private void MainForm_Closed(object sender, System.EventArgs e) |
| | 474 | 480 | | { |
  | 475 | | - | if (_uploadMonitorTimer != null) |
| | 476 | | - | { |
| | 477 | | - | _killUploadMonitor = true; |
| | 478 | | - | _uploadMonitorTimer.Dispose(); |
| | 479 | | - | } |
| | 480 | | - | _sensorDataManager.CloseSensors(); |
| | | 481 | + | closeSensors(); |
| 481 | 482 | | } |
| | 482 | 483 | | |
| | 483 | 484 | | |
| |
|
|
 |
… |
| 487 | 488 | | _killUploadMonitor = false; |
| | 488 | 489 | | AutoResetEvent autoEvent = new AutoResetEvent(false); |
| | 489 | 490 | | _timerDelegate = new TimerCallback(monitorUpload); |
  | 490 | | - | _uploadMonitorTimer = new System.Threading.Timer(_timerDelegate, autoEvent, 0, UPLDMNTRINTRVL); |
| | | 491 | + | _uploadMonitorTimer = new System.Threading.Timer(_timerDelegate, autoEvent, 0, uploadMonitorInterval); |
| | | 492 | + | } |
| 491 | 493 | | |
  | | 494 | + | private void uploadData() { } |
| | | 495 | + | |
| | | 496 | + | private void collectData() { } |
| | | 497 | + | |
| | | 498 | + | private void closeSensors(){ |
| | | 499 | + | if (_uploadMonitorTimer != null) |
| | | 500 | + | { |
| | | 501 | + | _killUploadMonitor = true; |
| | | 502 | + | _uploadMonitorTimer.Dispose(); |
| | | 503 | + | } |
| | | 504 | + | _sensorDataManager.CloseSensors(); |
| 492 | 505 | | } |
| | 493 | 506 | | |
  | 494 | | - | |
| | | 507 | + | private OperationModes _operationMode; |
| | | 508 | + | |
| | | 509 | + | |
| | | 510 | + | |
| | | 511 | + | private OperationModes Mode |
| | | 512 | + | { |
| | | 513 | + | set |
| | | 514 | + | { |
| | | 515 | + | _operationMode = value; |
| | | 516 | + | |
| | | 517 | + | |
| | | 518 | + | closeSensors(); |
| | | 519 | + | |
| | | 520 | + | bool activityOn = false; |
| | | 521 | + | |
| | | 522 | + | switch (_operationMode) |
| | | 523 | + | { |
| | | 524 | + | case OperationModes.Upload: |
| | | 525 | + | menuCollect.Checked = false; |
| | | 526 | + | menuCollectUpload.Checked = false; |
| | | 527 | + | |
| | | 528 | + | activityOn = menuUpload.Checked = !menuUpload.Checked; |
| | | 529 | + | |
| | | 530 | + | if(activityOn) |
| | | 531 | + | _sensorDataManager.UploadOnly(); |
| | | 532 | + | |
| | | 533 | + | break; |
| | | 534 | + | case OperationModes.Collect: |
| | | 535 | + | menuUpload.Checked = false; |
| | | 536 | + | menuCollectUpload.Checked = false; |
| | | 537 | + | |
| | | 538 | + | activityOn = menuCollect.Checked = !menuCollect.Checked; |
| | | 539 | + | |
| | | 540 | + | if(activityOn) |
| | | 541 | + | _sensorDataManager.Collect(false); |
| | | 542 | + | |
| | | 543 | + | break; |
| | | 544 | + | case OperationModes.CollectUpload: |
| | | 545 | + | menuUpload.Checked = false; |
| | | 546 | + | menuCollect.Checked = false; |
| | | 547 | + | |
| | | 548 | + | activityOn = menuCollectUpload.Checked = !menuCollectUpload.Checked; |
| | | 549 | + | |
| | | 550 | + | if (activityOn && _manualCapture == false) |
| | | 551 | + | _sensorDataManager.Collect(true); |
| | | 552 | + | |
| | | 553 | + | break; |
| | | 554 | + | } |
| | | 555 | + | |
| | | 556 | + | if (activityOn) |
| | | 557 | + | startMonitor(); |
| | | 558 | + | } |
| | | 559 | + | } |
| | | 560 | + | |
| | | 561 | + | |
| 495 | 562 | | private void menuCollect_Click(object sender, EventArgs e) |
| | 496 | 563 | | { |
  | 497 | | - | if (menuUpload.Checked) |
| | | 564 | + | this.Mode = OperationModes.Collect; |
| | | 565 | + | |
| 498 | 566 | | |
| | 499 | 567 | | |
| | 500 | 568 | | |
| | 501 | 569 | | |
| | 502 | 570 | | |
| | 503 | 571 | | |
| | 504 | 572 | | |
  | | 573 | + | |
| 505 | 574 | | |
| | 506 | 575 | | |
| | 507 | 576 | | |
| | 508 | 577 | | |
| | 509 | 578 | | |
| | 510 | 579 | | |
  | 511 | | - | MainForm_Closed(null, null); |
| | | 580 | + | |
| 512 | 581 | | |
| | 513 | 582 | | |
  | 514 | | - | menuCollect.Checked = !menuCollect.Checked; |
| | | 583 | + | |
| 515 | 584 | | } |
| | 516 | 585 | | |
| | 517 | 586 | | |
| | 518 | 587 | | public void menuCollectUpload_Click(object sender, EventArgs e) |
| | 519 | 588 | | { |
  | 520 | | - | if (menuUpload.Checked) |
| | | 589 | + | this.Mode = OperationModes.CollectUpload; |
| | | 590 | + | |
| 521 | 591 | | |
| | 522 | 592 | | |
| | 523 | 593 | | |
| |
|
|
 |
… |
| 533 | 603 | | |
| | 534 | 604 | | |
| | 535 | 605 | | |
  | 536 | | - | MainForm_Closed(null, null); |
| | | 606 | + | |
| 537 | 607 | | |
| | 538 | 608 | | |
  | 539 | | - | menuCollectUpload.Checked = !menuCollectUpload.Checked; |
| | | 609 | + | |
| 540 | 610 | | } |
| | 541 | 611 | | |
  | 542 | | - | |
| | | 612 | + | |
| | | 613 | + | |
| | | 614 | + | private void menuUpload_Click(object sender, EventArgs e) |
| | | 615 | + | { |
| | | 616 | + | this.Mode = OperationModes.Upload; |
| | | 617 | + | |
| | | 618 | + | |
| | | 619 | + | |
| | | 620 | + | |
| | | 621 | + | |
| | | 622 | + | |
| | | 623 | + | |
| | | 624 | + | |
| | | 625 | + | |
| | | 626 | + | |
| | | 627 | + | |
| | | 628 | + | |
| | | 629 | + | |
| | | 630 | + | |
| | | 631 | + | |
| | | 632 | + | |
| | | 633 | + | |
| | | 634 | + | |
| | | 635 | + | } |
| | | 636 | + | |
| | | 637 | + | |
| 543 | 638 | | private void readXMLConfig(string xmlcfgfilename) |
| | 544 | 639 | | { |
| | 545 | 640 | | try |
| |
|
|
 |
… |
| 557 | 652 | | { |
| | 558 | 653 | | _campaignname = se.Attributes["name"]; |
| | 559 | 654 | | |
  | 560 | | - | |
| | | 655 | + | |
| 561 | 656 | | if (se.Attribute("flushDatabase") != null && se.Attribute("flushDatabase") == "true") |
| | 562 | 657 | | flushDatabase = true; |
| | 563 | 658 | | |
| | 564 | 659 | | this.Text = "Campaignr - "+ _campaignname; |
| | 565 | 660 | | |
  | | 661 | + | |
| 566 | 662 | | _uploadOnStart = System.Convert.ToBoolean(se.Attributes["uploadOnStart"]); |
  | | 663 | + | |
| 567 | 664 | | _debugModeOn = System.Convert.ToBoolean(se.Attributes["debug"]); |
| | 568 | 665 | | |
| | 569 | 666 | | if (!_debugModeOn) |
| |
|
|
 |
… |
| 573 | 670 | | |
| | 574 | 671 | | SimpleElements elements = se.ChildElements; |
| | 575 | 672 | | |
  | 576 | | - | SimpleElement automatic = elements.Item("automatic"); |
| | | 673 | + | SimpleElement automatic = elements.Item("automatic"); |
| 577 | 674 | | |
| | 578 | 675 | | if (automatic==null) |
| | 579 | 676 | | { |
| |
|
|
 |
… |
| 586 | 683 | | DatabaseManager.MessageQueue.PostItem(new Message("Configuration file missing automatic or manual section", MessageType.Error)); |
| | 587 | 684 | | return; |
| | 588 | 685 | | } |
  | 589 | | - | |
| | | 686 | + | |
| | | 687 | + | |
| | | 688 | + | _startOnLoad = System.Convert.ToBoolean(se.Attributes["startOnLoad"]) && !_manualCapture; |
| | | 689 | + | |
| 590 | 690 | | progressBar1.Value += 10; |
| | 591 | 691 | | int step = (int)Math.Floor(20 / automatic.ChildElements.Count); |
| | 592 | 692 | | |
| |
|
|
 |
… |
| 988 | 1088 | | return sensor; |
| | 989 | 1089 | | } |
| | 990 | 1090 | | |
  | 991 | | - | |
| | 992 | | - | private void menuUpload_Click(object sender, EventArgs e) |
| | 993 | | - | { |
| | 994 | | - | if (menuCollectUpload.Checked) |
| | 995 | | - | menuCollectUpload_Click(null, null); |
| | 996 | | - | else if (menuCollect.Checked) |
| | 997 | | - | menuCollect_Click(null, null); |
| | 998 | | - | |
| | 999 | | - | if (!menuUpload.Checked) |
| | 1000 | | - | { |
| | 1001 | | - | _delegateMenus = new DelegateMenus(menuUpload_Click); |
| | 1002 | | - | _sensorDataManager.UploadOnly(); |
| | 1003 | | - | startMonitor(); |
| | 1004 | | - | } |
| | 1005 | | - | else |
| | 1006 | | - | { |
| | 1007 | | - | MainForm_Closed(null, null); |
| | 1008 | | - | } |
| | 1009 | | - | |
| | 1010 | | - | menuUpload.Checked = !menuUpload.Checked; |
| | 1011 | | - | } |
| | 1012 | | - | |
| 1013 | 1091 | | private void loadConfiguration(object sender, EventArgs e) |
| | 1014 | 1092 | | { |
| | 1015 | 1093 | | string fileToLoad = ""; |
| |
|
|
 |
… |
| 1125 | 1203 | | _uploadManager.Server = _uploadServer; |
| | 1126 | 1204 | | |
| | 1127 | 1205 | | |
  | 1128 | | - | |
| | 1129 | | - | if (menuCollectUpload.Checked) |
| | 1130 | | - | menuCollectUpload_Click(null, null); |
| | 1131 | | - | else if (menuCollect.Checked) |
| | 1132 | | - | menuCollect_Click(null, null); |
| | 1133 | | - | else if (menuUpload.Checked) |
| | 1134 | | - | menuUpload_Click(null, null); |
| | 1135 | | - | |
| 1136 | 1206 | | if (_manualCapture == false) |
| | 1137 | 1207 | | { |
  | 1138 | | - | _sensorDataManager.CollectInterval = 10000; |
| | | 1208 | + | _sensorDataManager.CollectInterval = uploadInterval; |
| 1139 | 1209 | | } |
| | 1140 | 1210 | | else |
| | 1141 | 1211 | | { |
  | 1142 | | - | |
| | | 1212 | + | |
| 1143 | 1213 | | this.KeyPress += new KeyPressEventHandler(MainForm_KeyPress); |
| | 1144 | 1214 | | } |
| | 1145 | 1215 | | |
  | 1146 | | - | if (_uploadOnStart) |
| | 1147 | | - | { |
| | | 1216 | + | if (_startOnLoad && _uploadOnStart) |
| | | 1217 | + | { |
| | | 1218 | + | this.Mode = OperationModes.CollectUpload; |
| | | 1219 | + | } |
| | | 1220 | + | else if (_startOnLoad) |
| | | 1221 | + | { |
| | | 1222 | + | this.Mode = OperationModes.Collect; |
| | | 1223 | + | } |
| | | 1224 | + | else if (_uploadOnStart) |
| | | 1225 | + | { |
| | | 1226 | + | if (_manualCapture) |
| | | 1227 | + | { |
| | | 1228 | + | |
| | | 1229 | + | _uploadManager.StartUpload(); |
| | | 1230 | + | startMonitor(); |
| | | 1231 | + | } |
| | | 1232 | + | else |
| | | 1233 | + | this.Mode = OperationModes.Upload; |
| | | 1234 | + | } |
| | | 1235 | + | |
| | | 1236 | + | |
| | | 1237 | + | |
| | | 1238 | + | |
| 1148 | 1239 | | |
| | 1149 | 1240 | | |
| | 1150 | 1241 | | |
| | 1151 | 1242 | | |
| | 1152 | 1243 | | |
| | 1153 | 1244 | | |
  | 1154 | | - | monitorUpload(null); |
| | 1155 | | - | } |
| 1156 | 1245 | | |
  | | 1246 | + | |
| | | 1247 | + | |
| | | 1248 | + | |
| | | 1249 | + | |
  | 1157 | 1250 | | progressBar1.Value = 100; |
| | 1158 | 1251 | | |
| | 1159 | 1252 | | loadingPanel.Visible = false; |