Subversion Repositories Projects

Rev

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

Rev 2257 Rev 2259
Line 33... Line 33...
33
/// By his work I finally managed to get the communication with the Mikrokopter controllers to run
33
/// By his work I finally managed to get the communication with the Mikrokopter controllers to run
34
/// Some of his code was used in this programm like the SimpelSerialPort class (with some changes)
34
/// Some of his code was used in this programm like the SimpelSerialPort class (with some changes)
35
/// and the FilghtControllerMessage class
35
/// and the FilghtControllerMessage class
36
/// 
36
/// 
37
///============================================================================
37
///============================================================================
-
 
38
/// DISCLAIMER
-
 
39
/// ===========
-
 
40
/// 
-
 
41
/// I created this software with my best knowledge and belief.
-
 
42
/// 
-
 
43
/// IN NO EVENT, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, 
-
 
44
/// SHALL I, OR ANY PERSON BE LIABLE FOR ANY LOSS, EXPENSE OR DAMAGE, 
-
 
45
/// OF ANY TYPE OR NATURE ARISING OUT OF THE USE OF, 
-
 
46
/// OR INABILITY TO USE THIS SOFTWARE OR PROGRAM, 
-
 
47
/// INCLUDING, BUT NOT LIMITED TO, CLAIMS, SUITS OR CAUSES OF ACTION 
-
 
48
/// INVOLVING ALLEGED INFRINGEMENT OF COPYRIGHTS, 
-
 
49
/// PATENTS, TRADEMARKS, TRADE SECRETS, OR UNFAIR COMPETITION.
-
 
50
/// 
-
 
51
/// This means: use it & have fun (but @ Your own risk...)
-
 
52
/// ===========================================================================
Line 38... Line 53...
38
 
53
 
39
using System;
54
using System;
40
using System.Data;
55
using System.Data;
41
using System.Drawing;
56
using System.Drawing;
Line 193... Line 208...
193
            InitializeComponent();
208
            InitializeComponent();
194
            serChanTitle.Initialize();
209
            serChanTitle.Initialize();
Line 195... Line 210...
195
 
210
 
Line 196... Line -...
196
            _readIni();
-
 
197
 
-
 
198
            dtAnalog.Columns.Add("ID");
-
 
199
            dtAnalog.Columns.Add("Value");
-
 
200
            dataGridView1.DataSource = dtAnalog;
-
 
201
 
-
 
202
            dtMotors1.Columns.Add("#");
-
 
203
            dtMotors1.Columns.Add("Current");
-
 
204
            dtMotors1.Columns.Add("Temp");
-
 
205
            dtMotors2.Columns.Add("#");
-
 
206
            dtMotors2.Columns.Add("Current");
-
 
207
            dtMotors2.Columns.Add("Temp");
-
 
208
            dgvMotors1.DataSource = dtMotors1;
211
            _readIni();
209
            dgvMotors2.DataSource = dtMotors2;
-
 
210
            _initDTMotors();
-
 
211
            dgvMotors1.Columns[0].Width = 24;
-
 
212
            dgvMotors1.Columns[1].Width = 74;
-
 
213
            dgvMotors1.Columns[2].Width = 74;
-
 
214
            dgvMotors2.Columns[0].Width = 24;
-
 
215
            dgvMotors2.Columns[1].Width = 74;
-
 
216
            dgvMotors2.Columns[2].Width = 74;
-
 
217
 
-
 
218
            dtWaypoints.Columns.Add("Index");
-
 
219
            dtWaypoints.Columns.Add("Type");
-
 
220
            dtWaypoints.Columns.Add("Name");
-
 
221
            dtWaypoints.Columns.Add("Latitude");
-
 
222
            dtWaypoints.Columns.Add("Longitude");
-
 
223
            dtWaypoints.Columns.Add("Altitude");
-
 
224
            dtWaypoints.Columns.Add("Heading");
-
 
225
            dtWaypoints.Columns.Add("Speed");
-
 
226
            dtWaypoints.Columns.Add("Altitude rate");
-
 
227
            dtWaypoints.Columns.Add("Tol.radius");
-
 
228
            dtWaypoints.Columns.Add("Hold time");
-
 
229
            dtWaypoints.Columns.Add("AutoTrigger");
-
 
230
            dtWaypoints.Columns.Add("Cam angle");
-
 
231
            dtWaypoints.Columns.Add("Event");
-
 
232
            dtWaypoints.Columns.Add("Eventchan. Val.");
-
 
Line 233... Line 212...
233
            dtWaypoints.Columns.Add("Status");
212
 
234
            dgvWP.DataSource = dtWaypoints;
213
            _dataTablesInit();
235
 
214
 
236
            simpleSerialPort.PortClosed += SimpleSerialPort_PortClosed;
215
            simpleSerialPort.PortClosed += SimpleSerialPort_PortClosed;
Line 1261... Line 1240...
1261
                cbOSD.Invoke((Action)(() => cbOSD.Items.Add(i)));
1240
                cbOSD.Invoke((Action)(() => cbOSD.Items.Add(i)));
1262
            }
1241
            }
1263
            cbOSD.Invoke((Action)(() => cbOSD.SelectedItem = iOSDPage));
1242
            cbOSD.Invoke((Action)(() => cbOSD.SelectedItem = iOSDPage));
1264
            _bCBInit = false;
1243
            _bCBInit = false;
1265
        }
1244
        }
-
 
1245
        /// <summary>
-
 
1246
        /// initialize the datatables
-
 
1247
        /// with columnnames etc
-
 
1248
        /// </summary>
-
 
1249
        void _dataTablesInit()
-
 
1250
        {
-
 
1251
            dtAnalog.Columns.Add("ID");
-
 
1252
            dtAnalog.Columns.Add("Value");
-
 
1253
            dataGridView1.DataSource = dtAnalog;
-
 
1254
 
-
 
1255
            dtMotors1.Columns.Add("#");
-
 
1256
            dtMotors1.Columns.Add("Current");
-
 
1257
            dtMotors1.Columns.Add("Temp");
-
 
1258
            dtMotors2.Columns.Add("#");
-
 
1259
            dtMotors2.Columns.Add("Current");
-
 
1260
            dtMotors2.Columns.Add("Temp");
-
 
1261
            dgvMotors1.DataSource = dtMotors1;
-
 
1262
            dgvMotors2.DataSource = dtMotors2;
-
 
1263
            _initDTMotors();
-
 
1264
            dgvMotors1.Columns[0].Width = 24;
-
 
1265
            dgvMotors1.Columns[1].Width = 74;
-
 
1266
            dgvMotors1.Columns[2].Width = 74;
-
 
1267
            dgvMotors2.Columns[0].Width = 24;
-
 
1268
            dgvMotors2.Columns[1].Width = 74;
-
 
1269
            dgvMotors2.Columns[2].Width = 74;
-
 
1270
 
-
 
1271
            dtWaypoints.Columns.Add("Index");
-
 
1272
            dtWaypoints.Columns.Add("Type");
-
 
1273
            dtWaypoints.Columns.Add("Name");
-
 
1274
            dtWaypoints.Columns.Add("Latitude");
-
 
1275
            dtWaypoints.Columns.Add("Longitude");
-
 
1276
            dtWaypoints.Columns.Add("Altitude");
-
 
1277
            dtWaypoints.Columns.Add("Heading");
-
 
1278
            dtWaypoints.Columns.Add("Speed");
-
 
1279
            dtWaypoints.Columns.Add("Altitude rate");
-
 
1280
            dtWaypoints.Columns.Add("Tol.radius");
-
 
1281
            dtWaypoints.Columns.Add("Hold time");
-
 
1282
            dtWaypoints.Columns.Add("AutoTrigger");
-
 
1283
            dtWaypoints.Columns.Add("Cam angle");
-
 
1284
            dtWaypoints.Columns.Add("Event");
-
 
1285
            dtWaypoints.Columns.Add("Eventchan. Val.");
-
 
1286
            dtWaypoints.Columns.Add("Status");
-
 
1287
            dgvWP.DataSource = dtWaypoints;
-
 
1288
        }
-
 
1289
        /// <summary>
-
 
1290
        /// read settings from ini-file
-
 
1291
        /// </summary>
1266
        void _readIni()
1292
        void _readIni()
1267
        {
1293
        {
1268
            if (!File.Exists(filePath + "\\MKLiveViewSettings.ini"))
1294
            if (!File.Exists(filePath + "\\MKLiveViewSettings.ini"))
1269
                _writeIni();
1295
                _writeIni();
1270
            IniFile ini = new IniFile("MKLiveViewSettings.ini");
1296
            IniFile ini = new IniFile("MKLiveViewSettings.ini");
Line 1295... Line 1321...
1295
                sVal = ini.IniReadValue("serial", "ch" + i.ToString() + "Title");
1321
                sVal = ini.IniReadValue("serial", "ch" + i.ToString() + "Title");
1296
                if(sVal != "")
1322
                if(sVal != "")
1297
                    serChanTitle[i] = sVal;
1323
                    serChanTitle[i] = sVal;
1298
            }
1324
            }
1299
        }
1325
        }
-
 
1326
        /// <summary>
-
 
1327
        /// save settings to ini-file
-
 
1328
        /// </summary>
1300
        void _writeIni()
1329
        void _writeIni()
1301
        {
1330
        {
Line 1302... Line 1331...
1302
 
1331
 
1303
            IniFile ini = new IniFile("MKLiveViewSettings.ini");
1332
            IniFile ini = new IniFile("MKLiveViewSettings.ini");
Line 1447... Line 1476...
1447
            {
1476
            {
1448
                serData[i] = unchecked((byte)(serChan[i] - 127));
1477
                serData[i] = unchecked((byte)(serChan[i] - 127));
1449
            }
1478
            }
1450
            _sendControllerMessage('y', 1, serData);
1479
            _sendControllerMessage('y', 1, serData);
1451
        }
1480
        }
1452
 
-
 
-
 
1481
        /// <summary>
-
 
1482
        /// init the controls for displaying
-
 
1483
        /// and setting serial control channels
-
 
1484
        /// </summary>
1453
        void _initSerialCtrl()
1485
        void _initSerialCtrl()
1454
        {
1486
        {
1455
            trckbarSerial1.Value = serChan[0];
1487
            trckbarSerial1.Value = serChan[0];
1456
            textBoxSerial1.Text = serChanTitle[0];
1488
            textBoxSerial1.Text = serChanTitle[0];
1457
            lblTbSerial1.Text = serChan[0].ToString();
1489
            lblTbSerial1.Text = serChan[0].ToString();
1458
            trckbarSerial2.Value = serChan[1];
1490
            trckbarSerial2.Value = serChan[1];
1459
            textBoxSerial2.Text = serChanTitle[1];
1491
            textBoxSerial2.Text = serChanTitle[1];
1460
            lblTbSerial2.Text = serChan[1].ToString();
1492
            lblTbSerial2.Text = serChan[1].ToString();
-
 
1493
            trckbarSerial3.Value = serChan[2];
-
 
1494
            textBoxSerial3.Text = serChanTitle[2];
-
 
1495
            lblTbSerial3.Text = serChan[2].ToString();
-
 
1496
            trckbarSerial4.Value = serChan[3];
-
 
1497
            textBoxSerial4.Text = serChanTitle[3];
-
 
1498
            lblTbSerial4.Text = serChan[3].ToString();
1461
        }
1499
        }
1462
        #endregion functions
1500
        #endregion functions
Line 1463... Line 1501...
1463
 
1501
 
1464
        #region buttons
1502
        #region buttons
Line 1586... Line 1624...
1586
            _getpWP((int)cbWPIndex.SelectedItem);
1624
            _getpWP((int)cbWPIndex.SelectedItem);
1587
            else
1625
            else
1588
                _getpWP(1);
1626
                _getpWP(1);
1589
        }
1627
        }
1590
        #endregion buttons
1628
        #endregion buttons
1591
 
-
 
-
 
1629
        #region serial control channels - buttons & events
1592
        private void tbSerial1_Scroll(object sender, EventArgs e)
1630
        private void tbSerial1_Scroll(object sender, EventArgs e)
1593
        {
1631
        {
1594
            lblTbSerial1.Text = trckbarSerial1.Value.ToString();
1632
            lblTbSerial1.Text = trckbarSerial1.Value.ToString();
1595
            serChan[0] = trckbarSerial1.Value;
1633
            serChan[0] = trckbarSerial1.Value;
1596
            if (!_init) _sendSerialData();
1634
            if (!_init) _sendSerialData();
Line 1601... Line 1639...
1601
        }
1639
        }
1602
        private void btnSer1_0_Click(object sender, EventArgs e)
1640
        private void btnSer1_0_Click(object sender, EventArgs e)
1603
        {
1641
        {
1604
            trckbarSerial1.Value = 0;
1642
            trckbarSerial1.Value = 0;
1605
        }
1643
        }
1606
 
-
 
1607
        private void btnSer1_127_Click(object sender, EventArgs e)
1644
        private void btnSer1_127_Click(object sender, EventArgs e)
1608
        {
1645
        {
1609
            trckbarSerial1.Value = 127;
1646
            trckbarSerial1.Value = 127;
1610
        }
1647
        }
1611
 
-
 
1612
        private void btnSer1_254_Click(object sender, EventArgs e)
1648
        private void btnSer1_254_Click(object sender, EventArgs e)
1613
        {
1649
        {
1614
            trckbarSerial1.Value = 254;
1650
            trckbarSerial1.Value = 254;
1615
        }
1651
        }
1616
 
-
 
1617
        private void trckbarSerial1_ValueChanged(object sender, EventArgs e)
1652
        private void trckbarSerial1_ValueChanged(object sender, EventArgs e)
1618
        {
1653
        {
1619
            lblTbSerial1.Text = trckbarSerial1.Value.ToString();
1654
            lblTbSerial1.Text = trckbarSerial1.Value.ToString();
1620
            serChan[0] = trckbarSerial1.Value;
1655
            serChan[0] = trckbarSerial1.Value;
1621
            if (!_init) _sendSerialData();
1656
            if (!_init) _sendSerialData();
1622
        }
1657
        }
1623
 
-
 
1624
        private void textBoxSerial2_TextChanged(object sender, EventArgs e)
1658
        private void textBoxSerial2_TextChanged(object sender, EventArgs e)
1625
        {
1659
        {
1626
            serChanTitle[2] = textBoxSerial2.Text;
1660
            serChanTitle[1] = textBoxSerial2.Text;
1627
        }
1661
        }
1628
 
-
 
1629
        private void trckbarSerial2_ValueChanged(object sender, EventArgs e)
1662
        private void trckbarSerial2_ValueChanged(object sender, EventArgs e)
1630
        {
1663
        {
1631
            lblTbSerial2.Text = trckbarSerial2.Value.ToString();
1664
            lblTbSerial2.Text = trckbarSerial2.Value.ToString();
1632
            serChan[1] = trckbarSerial2.Value;
1665
            serChan[1] = trckbarSerial2.Value;
1633
            if (!_init) _sendSerialData();
1666
            if (!_init) _sendSerialData();
1634
 
-
 
1635
        }
1667
        }
1636
 
-
 
1637
        private void btnSer2_0_Click(object sender, EventArgs e)
1668
        private void btnSer2_0_Click(object sender, EventArgs e)
1638
        {
1669
        {
1639
            trckbarSerial2.Value = 0;
1670
            trckbarSerial2.Value = 0;
1640
        }
1671
        }
1641
 
-
 
1642
        private void btnSer2_127_Click(object sender, EventArgs e)
1672
        private void btnSer2_127_Click(object sender, EventArgs e)
1643
        {
1673
        {
1644
            trckbarSerial2.Value = 127;
1674
            trckbarSerial2.Value = 127;
1645
        }
1675
        }
1646
 
-
 
1647
        private void btnSer2_254_Click(object sender, EventArgs e)
1676
        private void btnSer2_254_Click(object sender, EventArgs e)
1648
        {
1677
        {
1649
            trckbarSerial2.Value = 254;
1678
            trckbarSerial2.Value = 254;
1650
        }
1679
        }
-
 
1680
        private void textBoxSerial3_TextChanged(object sender, EventArgs e)
-
 
1681
        {
-
 
1682
            serChanTitle[2] = textBoxSerial3.Text;
-
 
1683
        }
-
 
1684
        private void trckbarSerial3_ValueChanged(object sender, EventArgs e)
-
 
1685
        {
-
 
1686
            lblTbSerial3.Text = trckbarSerial3.Value.ToString();
-
 
1687
            serChan[2] = trckbarSerial3.Value;
-
 
1688
            if (!_init) _sendSerialData();
-
 
1689
        }
-
 
1690
        private void btnSer3_0_Click(object sender, EventArgs e)
-
 
1691
        {
-
 
1692
            trckbarSerial3.Value = 0;
-
 
1693
        }
-
 
1694
        private void btnSer3_127_Click(object sender, EventArgs e)
-
 
1695
        {
-
 
1696
            trckbarSerial3.Value = 127;
-
 
1697
        }
-
 
1698
        private void btnSer3_254_Click(object sender, EventArgs e)
-
 
1699
        {
-
 
1700
            trckbarSerial3.Value = 254;
-
 
1701
        }
-
 
1702
        private void textBoxSerial4_TextChanged(object sender, EventArgs e)
-
 
1703
        {
-
 
1704
            serChanTitle[3] = textBoxSerial4.Text;
-
 
1705
        }
-
 
1706
        private void trckbarSerial4_ValueChanged(object sender, EventArgs e)
-
 
1707
        {
-
 
1708
            lblTbSerial4.Text = trckbarSerial4.Value.ToString();
-
 
1709
            serChan[3] = trckbarSerial4.Value;
-
 
1710
            if (!_init) _sendSerialData();
-
 
1711
        }
-
 
1712
        private void btnSer4_0_Click(object sender, EventArgs e)
-
 
1713
        {
-
 
1714
            trckbarSerial4.Value = 0;
-
 
1715
        }
-
 
1716
        private void btnSer4_127_Click(object sender, EventArgs e)
-
 
1717
        {
-
 
1718
            trckbarSerial4.Value = 127;
-
 
1719
        }
-
 
1720
        private void btnSer4_254_Click(object sender, EventArgs e)
-
 
1721
        {
-
 
1722
            trckbarSerial4.Value = 254;
-
 
1723
        }
-
 
1724
        #endregion serial control channels
-
 
1725
 
1651
    }
1726
    }
1652
    public class IniFile
1727
    public class IniFile
1653
    {
1728
    {
1654
        public string path;
1729
        public string path;