Subversion Repositories Projects

Rev

Rev 2385 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2385 Rev 2398
Line 971... Line 971...
971
                            Dispatcher.Invoke(() => stbDistanceWarnAnim.Begin());
971
                            Dispatcher.Invoke(() => stbDistanceWarnAnim.Begin());
972
                            _bAnimDistanceActive = true;
972
                            _bAnimDistanceActive = true;
973
                        }
973
                        }
974
                        if (_bVoiceDistancePlay && !_bVoiceDistanceActive)
974
                        if (_bVoiceDistancePlay && !_bVoiceDistanceActive)
975
                        {
975
                        {
-
 
976
                            ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\Distance.mp3");
976
                            Thread t = new Thread(()=>_mediaPlayer("Voice\\Distance.mp3"));
977
                            //Thread t = new Thread(()=>_mediaPlayer("Voice\\Distance.mp3"));
977
                            t.Start();
978
                            //t.Start();
978
                            _bVoiceDistanceActive = true;
979
                            _bVoiceDistanceActive = true;
979
                        }
980
                        }
980
                        _iDistanceJitter++;
981
                        _iDistanceJitter++;
981
                    }
982
                    }
982
                }
983
                }
Line 1510... Line 1511...
1510
                                                Dispatcher.Invoke(() => stbVoltageCritAnim.Begin());
1511
                                                Dispatcher.Invoke(() => stbVoltageCritAnim.Begin());
1511
                                                _bCritAnimVoltActive = true;
1512
                                                _bCritAnimVoltActive = true;
1512
                                            }
1513
                                            }
1513
                                            if (_bVoiceVoltPlay && !_bCritVoiceVoltActive)
1514
                                            if (_bVoiceVoltPlay && !_bCritVoiceVoltActive)
1514
                                            {
1515
                                            {
-
 
1516
                                                ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\CriticalBattery.mp3");
1515
                                                Thread t = new Thread(() => _mediaPlayer("Voice\\CriticalBattery.mp3"));
1517
                                                //Thread t = new Thread(() => _mediaPlayer("Voice\\CriticalBattery.mp3"));
1516
                                                t.Start();
1518
                                                //t.Start();
1517
                                                _bCritVoiceVoltActive = true;
1519
                                                _bCritVoiceVoltActive = true;
1518
                                            }
1520
                                            }
1519
                                        }
1521
                                        }
1520
                                        else
1522
                                        else
1521
                                        {
1523
                                        {
Line 1526... Line 1528...
1526
                                            }
1528
                                            }
1527
                                            _bCritVoiceVoltActive = false;
1529
                                            _bCritVoiceVoltActive = false;
Line 1528... Line 1530...
1528
 
1530
 
1529
                                            if (_bVoiceVoltPlay && !_bWarnVoiceVoltActive)
1531
                                            if (_bVoiceVoltPlay && !_bWarnVoiceVoltActive)
-
 
1532
                                            {
1530
                                            {
1533
                                                ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\LowBattery.mp3");
1531
                                                Thread t = new Thread(() => _mediaPlayer("Voice\\LowBattery.mp3"));
1534
                                                //Thread t = new Thread(() => _mediaPlayer("Voice\\LowBattery.mp3"));
1532
                                                t.Start();
1535
                                                //t.Start();
1533
                                                _bWarnVoiceVoltActive = true;
1536
                                                _bWarnVoiceVoltActive = true;
1534
                                            }
1537
                                            }
1535
                                        }
1538
                                        }
1536
                                    }
1539
                                    }
Line 1553... Line 1556...
1553
                                Dispatcher.Invoke(() => tbTopCurrent.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 A"));
1556
                                Dispatcher.Invoke(() => tbTopCurrent.Text = ((double)iAnalogData[index] / (double)10).ToString("0.0 A"));
1554
                                break;
1557
                                break;
1555
                            case 10: //heading
1558
                            case 10: //heading
1556
                                Dispatcher.Invoke((Action)(() => tbHeading.Text = sAnalogData[index] + "°"));
1559
                                Dispatcher.Invoke((Action)(() => tbHeading.Text = sAnalogData[index] + "°"));
1557
                                Dispatcher.Invoke(() => ArtHor.rotate = iAnalogData[index]);
1560
                                Dispatcher.Invoke(() => ArtHor.rotate = iAnalogData[index]);
1558
                               Dispatcher.Invoke(() => ((CustomMarkerCopter)(copter.Shape)).rotate = iAnalogData[index]);
1561
                               //Dispatcher.Invoke(() => ((CustomMarkerCopter)(copter.Shape)).rotate = iAnalogData[index]);
1559
                                break;
1562
                                break;
1560
                            case 12: // SPI error
1563
                            case 12: // SPI error
1561
                                Dispatcher.Invoke((Action)(() => tbSPI.Text = sAnalogData[index]));
1564
                                Dispatcher.Invoke((Action)(() => tbSPI.Text = sAnalogData[index]));
1562
                                break;
1565
                                break;
1563
                            case 14: //i2c error
1566
                            case 14: //i2c error
Line 1597... Line 1600...
1597
                                            Dispatcher.Invoke(() => stbMagneticFieldAnim.Begin());
1600
                                            Dispatcher.Invoke(() => stbMagneticFieldAnim.Begin());
1598
                                            _bAnimMagneticFieldActive = true;
1601
                                            _bAnimMagneticFieldActive = true;
1599
                                        }
1602
                                        }
1600
                                        if (_bVoiceMagneticFieldPlay && !_bVoiceMagneticFieldActive)
1603
                                        if (_bVoiceMagneticFieldPlay && !_bVoiceMagneticFieldActive)
1601
                                        {
1604
                                        {
-
 
1605
                                            ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\MagneticField.mp3");
1602
                                            Thread t = new Thread(() => _mediaPlayer("Voice\\MagneticField.mp3"));
1606
                                            //Thread t = new Thread(() => _mediaPlayer("Voice\\MagneticField.mp3"));
1603
                                            t.Start();
1607
                                            //t.Start();
1604
                                            _bVoiceMagneticFieldActive = true;
1608
                                            _bVoiceMagneticFieldActive = true;
1605
                                        }
1609
                                        }
1606
                                    }
1610
                                    }
1607
                                }
1611
                                }
1608
                                break;
1612
                                break;
Line 1807... Line 1811...
1807
                            Dispatcher.Invoke(() => stbSatFixLostAnim.Begin());
1811
                            Dispatcher.Invoke(() => stbSatFixLostAnim.Begin());
1808
                            _bAnimSatFixActive = true;
1812
                            _bAnimSatFixActive = true;
1809
                        }
1813
                        }
1810
                        if (_bVoiceSatFixPlay && !_bVoiceSatFixActive)
1814
                        if (_bVoiceSatFixPlay && !_bVoiceSatFixActive)
1811
                        {
1815
                        {
-
 
1816
                            ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\SatFixLost.mp3");
1812
                            Thread th = new Thread(() => _mediaPlayer("Voice\\SatFixLost.mp3"));
1817
                            //Thread th = new Thread(() => _mediaPlayer("Voice\\SatFixLost.mp3"));
1813
                            th.Start();
1818
                            //th.Start();
1814
                            _bVoiceSatFixActive = true;
1819
                            _bVoiceSatFixActive = true;
1815
                        }
1820
                        }
Line 1816... Line 1821...
1816
 
1821
 
1817
                        _bSatFix = false;
1822
                        _bSatFix = false;
Line 1885... Line 1890...
1885
            i_16 = (Int16)(i_16 << 8);
1890
            i_16 = (Int16)(i_16 << 8);
1886
            iVal = data[80] + i_16;
1891
            iVal = data[80] + i_16;
1887
            Dispatcher.Invoke((Action)(() => tbCapacity.Text = iVal.ToString() + " mAh"));
1892
            Dispatcher.Invoke((Action)(() => tbCapacity.Text = iVal.ToString() + " mAh"));
1888
            Dispatcher.Invoke((Action)(() => tbTopCapacity.Text = iVal.ToString() + " mAh"));
1893
            Dispatcher.Invoke((Action)(() => tbTopCapacity.Text = iVal.ToString() + " mAh"));
Line -... Line 1894...
-
 
1894
 
-
 
1895
            //--------------- Ground speed ------------------------
-
 
1896
            i_16 = data[59];
-
 
1897
            i_16 = (Int16)(i_16 << 8);
-
 
1898
            iVal = data[58] + i_16;
-
 
1899
            Dispatcher.Invoke((Action)(() => tbNCGrSpeed.Text = ((double)(iVal)/100).ToString("0.00 m/s")));
-
 
1900
 
-
 
1901
            //--------------- Heading north ------------------------
-
 
1902
            i_16 = data[61];
-
 
1903
            i_16 = (Int16)(i_16 << 8);
-
 
1904
            iVal = data[60] + i_16;
-
 
1905
            Dispatcher.Invoke((Action)(() => tbHeadingNorth.Text = iVal.ToString() + " °"));
-
 
1906
 
-
 
1907
            //--------------- Heading compass ------------------------
-
 
1908
            i_16 = data[63];
-
 
1909
            i_16 = (Int16)(i_16 << 8);
-
 
1910
            iVal = data[62] + i_16;
-
 
1911
            Dispatcher.Invoke((Action)(() => tbHeadingCompass.Text = iVal.ToString() + " °"));
-
 
1912
            //Dispatcher.Invoke(() => ArtHor.rotate = iVal);
1889
 
1913
            Dispatcher.Invoke(() => ((CustomMarkerCopter)(copter.Shape)).rotate = iVal);
1890
            //--------------- Flying time ------------------------
1914
            //--------------- Flying time ------------------------
1891
            i_16 = data[56];
1915
            i_16 = data[56];
1892
            i_16 = (Int16)(i_16 << 8);
1916
            i_16 = (Int16)(i_16 << 8);
1893
            iVal = data[55] + i_16;
1917
            iVal = data[55] + i_16;
Line 1919... Line 1943...
1919
                        Dispatcher.Invoke(() => stbRCLevelAnim.Begin());
1943
                        Dispatcher.Invoke(() => stbRCLevelAnim.Begin());
1920
                        _bAnimRCLevelActive = true;
1944
                        _bAnimRCLevelActive = true;
1921
                    }
1945
                    }
1922
                    if (_bVoiceRCLevelPlay && !_bVoiceRCLevelActive)
1946
                    if (_bVoiceRCLevelPlay && !_bVoiceRCLevelActive)
1923
                    {
1947
                    {
-
 
1948
                        ThreadPool.QueueUserWorkItem(new WaitCallback(_mediaPlayer), "Voice\\MagneticField.mp3");
1924
                        Thread th = new Thread(() => _mediaPlayer("Voice\\RCLevel.mp3"));
1949
                        //Thread th = new Thread(() => _mediaPlayer("Voice\\RCLevel.mp3"));
1925
                        th.Start();
1950
                        //th.Start();
1926
                        _bVoiceRCLevelActive = true;
1951
                        _bVoiceRCLevelActive = true;
1927
                    }
1952
                    }
1928
                        _iRCLevelJitter++;
1953
                        _iRCLevelJitter++;
1929
                }
1954
                }
1930
            }
1955
            }
Line 2545... Line 2570...
2545
 
2570
 
Line 2546... Line 2571...
2546
        #endregion OSD-Menue
2571
        #endregion OSD-Menue
Line 2547... Line 2572...
2547
 
2572
 
2548
        #endregion controller messages
2573
        #endregion controller messages
2549
 
2574
 
2550
        void _mediaPlayer(string file)
2575
        void _mediaPlayer(object file)
2551
        {
2576
        {
2552
            if (File.Exists(file))
2577
            if (File.Exists((string)file))
2553
            {
2578
            {
2554
                MediaPlayer.MediaPlayer mp = new MediaPlayer.MediaPlayer();
2579
                MediaPlayer.MediaPlayer mp = new MediaPlayer.MediaPlayer();
2555
                mp.Open(file);
2580
                mp.Open((string)file);
Line 2556... Line 2581...
2556
                mp.Play();
2581
                mp.Play();