Мне удалось создать диаграмму и поиск по БД.
Можно ли создать график этой фигуры на реальном графике?
Могу ли я прочитать значение и распечатать его посередине в зависимости от времени?

Пожалуйста, введите описание изображения.
Я делаю это прямо сейчасЭто не та форма, которая мне нужна, потому что она выглядит как нижняя.
ChatGPT возможен, но я не думаю, что это возможно, потому что линия автоматически начинается с левого или правого конца. Возможно ли это?

Даже если я прочитаю данные позже, я не знаю как вставить значения через раз
мне нужно 5 строк
public List GetSensingData(int _iCount)
{
List dataPoints = new List();
var query = $"SELECT {sSensorId}, {sSensorTime}, {sSensorValue} FROM {sSensorTable} ORDER BY {sSensorTime} DESC LIMIT {_iCount}";
using (var connection = new MySqlConnection(sConnectionString))
{
connection.Open();
using (var command = new MySqlCommand(query, connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
dataPoints.Add(new SensingDataPoint
{
ID = reader.GetInt32(0), // ID 컬럼은 인덱스 0
Time = reader.GetDateTime(1), // Time 컬럼은 인덱스 1
Value = reader.GetDouble(2) // Value 컬럼은 인덱스 2
});
}
}
}
}
return dataPoints;
}
public class SensingDataPoint
{
public int ID { get; set; }
public DateTime Time { get; set; }
public double Value { get; set; }
}
// 실시간 데이터 업데이트 메서드
private void vUpdateChartData()
{
// X축 레이블 설정
if (SelectedData == MainViewModel.DataSelection.Value)
{
// 각 ID의 센서 데이터를 최신 데이터로 가져오기
var SensorDataPoints = dbHelper.GetSensingData(iReadCount);
// UI 스레드에서 차트 업데이트
Application.Current.Dispatcher.Invoke(() =>
{
ID1SensorValues.Clear();
ID2SensorValues.Clear();
ID3SensorValues.Clear();
ID4SensorValues.Clear();
ID5SensorValues.Clear();
vUpdateSeries(SensorDataPoints);
});
}
}
private void vUpdateSeries(List dataPoints)
{
// 기존 값 초기화
foreach (var point in dataPoints)
{
if (selectedData == DataSelection.Value)
{
TimeLabels.Add(point.Time.ToString("HH:mm:ss"));
switch (point.ID)
{
case 1:
ID1SensorValues.Add(point.Value);
ID2SensorValues.Add(0);
ID3SensorValues.Add(0);
ID4SensorValues.Add(0);
ID5SensorValues.Add(0);
break;
case 2:
ID1SensorValues.Add(0);
ID2SensorValues.Add(point.Value);
ID3SensorValues.Add(0);
ID4SensorValues.Add(0);
ID5SensorValues.Add(0);
break;
case 3:
ID1SensorValues.Add(0);
ID2SensorValues.Add(0);
ID3SensorValues.Add(point.Value);
ID4SensorValues.Add(0);
ID5SensorValues.Add(0);
break;
case 4:
ID1SensorValues.Add(0);
ID2SensorValues.Add(0);
ID3SensorValues.Add(0);
ID4SensorValues.Add(point.Value);
ID5SensorValues.Add(0);
break;
case 5:
ID1SensorValues.Add(0);
ID2SensorValues.Add(0);
ID3SensorValues.Add(0);
ID4SensorValues.Add(0);
ID5SensorValues.Add(point.Value);
break;
default:
break;
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -sharp-wpf
Мобильная версия