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; |