730,9 → 730,16 |
if (comboBoxCopterColor.SelectionBoxItem != null) |
{ |
string s = comboBoxCopterColor.SelectionBoxItem.ToString(); |
((CustomMarkerCopter)(copter.Shape)).setColor(s); |
((CustomMarkerCopter)(copter.Shape)).setCopterColor(s); |
} |
copter.Offset = new System.Windows.Point(-18, -18); |
Dispatcher.Invoke(() => { |
if (comboBoxCopterHeadingColor.SelectionBoxItem != null) |
{ |
string s = comboBoxCopterHeadingColor.SelectionBoxItem.ToString(); |
((CustomMarkerCopter)(copter.Shape)).setHeadingColor(s); |
} |
}); |
copter.Offset = new System.Windows.Point(-28, -28); |
copter.ZIndex = int.MaxValue; |
MainMap.Markers.Add(copter); |
copter.Position = MainMap.Position; |
1548,6 → 1555,7 |
case 10: //heading |
Dispatcher.Invoke((Action)(() => tbHeading.Text = sAnalogData[index] + "°")); |
Dispatcher.Invoke(() => ArtHor.rotate = iAnalogData[index]); |
Dispatcher.Invoke(() => ((CustomMarkerCopter)(copter.Shape)).rotate = iAnalogData[index]); |
break; |
case 12: // SPI error |
Dispatcher.Invoke((Action)(() => tbSPI.Text = sAnalogData[index])); |
2790,6 → 2798,8 |
if(sVal != "") comboBoxFSColor.SelectedIndex = Convert.ToInt32(sVal); |
sVal = ini.IniReadValue("waypoints", "coptercolor"); |
if(sVal != "") comboBoxCopterColor.SelectedIndex = Convert.ToInt32(sVal); |
sVal = ini.IniReadValue("waypoints", "copterheadingcolor"); |
if(sVal != "") comboBoxCopterHeadingColor.SelectedIndex = Convert.ToInt32(sVal); |
sVal = ini.IniReadValue("waypoints", "landingcolor"); |
if(sVal != "") comboBoxLandingColor.SelectedIndex = Convert.ToInt32(sVal); |
sVal = ini.IniReadValue("waypoints", "routecolor"); |
2897,6 → 2907,7 |
ini.IniWriteValue("waypoints", "poicolor", comboBoxPOIColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "fscolor", comboBoxFSColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "coptercolor", comboBoxCopterColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "copterheadingcolor", comboBoxCopterHeadingColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "landingcolor", comboBoxLandingColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "routecolor", comboBoxRouteColor.SelectedIndex.ToString()); |
ini.IniWriteValue("waypoints", "showWPRoute", _bShowWPRoute.ToString()); |
3466,13 → 3477,16 |
GMapMarker _createWP(PointLatLng p, string name, int type) |
{ |
GMapMarker wpMarker = new GMapMarker(p); |
wpMarker.Shape = new CustomMarkerWP(this, wpMarker, name, type); |
wpMarker.Offset = new System.Windows.Point(-11.5, -11.5); |
wpMarker.ZIndex = 100; |
_setMarkerColor(wpMarker, type); |
Dispatcher.Invoke(() => MainMap.Markers.Add(wpMarker)); |
if (type == 0 || type == 3) |
wpList.Add(p); |
Dispatcher.Invoke(()=> |
{ |
wpMarker.Shape = new CustomMarkerWP(this, wpMarker, name, type); |
wpMarker.Offset = new System.Windows.Point(-11.5, -11.5); |
wpMarker.ZIndex = 100; |
_setMarkerColor(wpMarker, type); |
MainMap.Markers.Add(wpMarker); |
if (type == 0 || type == 3) |
wpList.Add(p); |
}); |
return wpMarker; |
} |
void _setMarkerColor(GMapMarker wpMarker,int iType) |
3562,18 → 3576,30 |
{ |
_MarkerColorSelection(sender,3); |
} |
private void comboBoxCopterColor_DropDownClosed(object sender, EventArgs e) |
private void comboBoxCopterColor_DropDownClosed(object sender, EventArgs e) |
{ |
Dispatcher.Invoke(() => { |
if (comboBoxCopterColor.SelectionBoxItem != null) |
{ |
string s = comboBoxCopterColor.SelectionBoxItem.ToString(); |
((CustomMarkerCopter)(copter.Shape)).setColor(s); |
((CustomMarkerCopter)(copter.Shape)).setCopterColor(s); |
} |
else |
((CustomMarkerCopter)(copter.Shape)).setColor("red"); |
((CustomMarkerCopter)(copter.Shape)).setCopterColor("red"); |
}); |
} |
private void comboBoxCopterHeadingColor_DropDownClosed(object sender, EventArgs e) |
{ |
Dispatcher.Invoke(() => { |
if (comboBoxCopterHeadingColor.SelectionBoxItem != null) |
{ |
string s = comboBoxCopterHeadingColor.SelectionBoxItem.ToString(); |
((CustomMarkerCopter)(copter.Shape)).setHeadingColor(s); |
} |
else |
((CustomMarkerCopter)(copter.Shape)).setHeadingColor("red"); |
}); |
} |
private void comboBoxRouteColor_DropDownClosed(object sender, EventArgs e) |
{ |
Dispatcher.Invoke(() => |
3659,6 → 3685,77 |
}); |
} |
} |
private void btnEditWPSendToCopter_Click(object sender, RoutedEventArgs e) |
{ |
if (dgvWP.SelectedIndex > -1 && dgvWP.SelectedIndex < dtWaypoints.Rows.Count) |
{ |
|
object[] o = new object[16]; |
o[0] = dgvWP.SelectedIndex + 1; |
o[1] = cbWPEditType.SelectedIndex; |
o[2] = tbWPEditPrefix.Text + (dgvWP.SelectedIndex + 1).ToString(); |
o[3] = Convert.ToDouble(tbWPEditLat.Text.Replace('.', ',')); |
o[4] = Convert.ToDouble(tbWPEditLon.Text.Replace('.', ',')); |
o[5] = tbWPEditAlt.Text; |
switch (cbWPEditHeading.SelectedIndex) |
{ |
case 0: |
o[6] = "0"; |
break; |
case 1: |
o[6] = "-" + tbWPEditHeading.Text; |
break; |
case 2: |
o[6] = tbWPEditHeading.Text; |
break; |
} |
switch (cbWPEditSpeed.SelectedIndex) |
{ |
case 0: |
o[7] = "0"; |
break; |
case 1: |
o[7] = (System.Convert.ToDouble(tbWPEditSpeed.Text.Replace('.', ',')) * 10).ToString("0"); |
break; |
case 2: |
o[7] = (256 - Convert.ToInt16(tbWPEditSpeed.Text)).ToString(); |
break; |
} |
switch (cbWPEditClimbrate.SelectedIndex) |
{ |
case 0: |
o[8] = "255"; |
break; |
case 1: |
o[8] = (System.Convert.ToDouble(tbWPEditClimbrate.Text.Replace('.', ',')) * 10).ToString("0"); |
break; |
} |
o[9] = tbWPEditRadius.Text; |
o[10] = tbWPEditHoldtime.Text; |
o[11] = tbWPEditAutoTrigger.Text; |
switch (cbWPEditCamAngle.SelectedIndex) |
{ |
case 0: |
o[12] = "0"; |
break; |
case 1: |
o[12] = "255"; |
break; |
case 2: |
o[12] = tbWPEditCamAngle.Text; |
break; |
} |
o[13] = 0; |
o[14] = tbWPEditOut1.Text; |
DataRow dr = dtWaypoints.NewRow(); |
dr.ItemArray = o; |
|
if (_wpCount > 0) |
_sendWayPoint(dr, -1, 'w', false); |
else |
_sendWayPoint(dr, 1, 'w', false); |
} |
} |
private void btnWPSimulateStart_Click(object sender, RoutedEventArgs e) |
{ |
_Simulate = !_Simulate; |
4022,23 → 4119,6 |
} |
|
} |
private void tbWPEditHeading_KeyDown(object sender, KeyEventArgs e) |
{ |
if(!tbWPEditHeading.IsReadOnly) |
{ |
//var x = KeyInterop.VirtualKeyFromKey(e.Key); |
KeyConverter x = new KeyConverter(); |
string s = x.ConvertToString(e.Key); |
|
if ("1234567890,\b".IndexOf(s) < 0) //general check for valid chars(0-9) and backspace (\b) |
e.Handled = true; |
else |
if ("\b".IndexOf(s) < 0) |
if (Convert.ToInt16(((TextBox)sender).Text + s) > 360) //if valid and not backspace, check for upper limit of the resulting number |
e.Handled = true; |
|
} |
} |
private void btnWPAddCurrentPos_Click(object sender, RoutedEventArgs e) |
{ |
object[] o = new object[16]; |
4169,6 → 4249,7 |
} |
} |
|
|
private void btnLoadGPXLog_Click(object sender, RoutedEventArgs e) |
{ |
_loadGPXLog(); |