2013-06-21 3 views
0

В настоящее время я работаю над проектом, который включает в себя использование сигналов ЭКГ на мобильном телефоне Android.Форма волны ЭКГ в приложении android

Я решаю, должен ли я сделать свою собственную библиотеку обработки сигналов для андроида или нет, потому что я не могу найти ни одного онлайн-приложения.

Кто-нибудь знает библиотеку, которую я могу использовать, или было бы проще и быстрее сделать мой собственный?

Благодаря

+0

Что вы имеете в виду, перерабатывая? анализа или построения графика? – Milan

+0

Запланировка формы волны ecg в приложении android – user2531493

ответ

0

Я использовал AndroidPlot для построения сигналов ЭКГ в режиме реального времени. Датчики, которые я использовал, представляли собой 4-проводную ЭКГ, которая могла бы обеспечивать RL и LL через Bluetooth. Вот образец для построения графика, но не стесняйтесь изменять его в соответствии с вашими потребностями. И если недавний AndroidPlot не поддерживает ни один из методов, используемых здесь, изучите его и измените. И, наконец, этот метод не является эффективным, поскольку он продолжает перерисовку сюжета, я считаю AndroidPlot поддерживает более эффективную реализацию в новых версиях:

Это, как вы определяете сюжет в XML:

<com.androidplot.xy.XYPlot 
android:id="@+id/ecgSPlot" 
android:layout_width="match_parent" 
android:layout_height="180dp" 
android:layout_marginLeft="10dp" 
android:layout_marginRight="10dp" 
android:layout_marginTop="10dp" 
title="ECG History" /> 

И это код для его построения:

public static XYPlot ecgHistoryPlot = null; 
public static SimpleXYSeries ecgLevelsSeries = new SimpleXYSeries( 
     "ECG History"); 

private static LinkedList<Integer> ecgRaLlHistory = new LinkedList<Integer>(); 
private static LinkedList<Integer> ecgLaLlHistory = new LinkedList<Integer>(); 

/** 
* This method will set plot paramaters including look and label 
*/ 
private void setMergedPlotParam() { 
    ecgHistoryPlot = (XYPlot) viewRTPlotting.findViewById(R.id.ecgSPlot); 
    ecgHistoryPlot 
     .setRangeBoundaries(-180, 359, XYPlot.BoundaryMode.FIXED); 
    ecgHistoryPlot.setDomainBoundaries(0, 60, XYPlot.BoundaryMode.FIXED); 
    ecgHistoryPlot.addSeries(ecgRaLlHistorySeries, 
     LineAndPointRenderer.class, 
     new LineAndPointFormatter(Color.rgb(0, 0, 255), Color.BLACK)); 

    ecgHistoryPlot.addSeries(ecgLaLlHistorySeries, 
     LineAndPointRenderer.class, 
     new LineAndPointFormatter(Color.rgb(255, 0, 0), Color.BLACK)); 
    ecgHistoryPlot.setDomainStepValue(5); 
    ecgHistoryPlot.setTicksPerRangeLabel(3); 
    ecgHistoryPlot.setDomainLabel("Time"); 
    ecgHistoryPlot.getDomainLabelWidget().pack(); 
    ecgHistoryPlot.setRangeLabel("Level"); 
    ecgHistoryPlot.getRangeLabelWidget().pack(); 
    ecgHistoryPlot.disableAllMarkup(); 
} 

/** 
* This method will update plot data 
*/ 
private static void drawMergedPlot(int EcgRaLl, int EcgLaLl) { 
    Number[] seriesRNumbers = { EcgRaLl, EcgLaLl }; 
    ecgLevelsSeries.setModel(Arrays.asList(seriesRNumbers), 
     SimpleXYSeries.ArrayFormat.XY_VALS_INTERLEAVED); 

    if (ecgRaLlHistory.size() > HISTORY_SIZE 
     || ecgLaLlHistory.size() > HISTORY_SIZE) { 
     ecgRaLlHistory.removeFirst(); 
     ecgLaLlHistory.removeFirst(); 
    } 

    ecgRaLlHistory.addLast(EcgRaLl); 
    ecgLaLlHistory.addLast(EcgLaLl); 

    ecgRaLlHistorySeries.setModel(ecgRaLlHistory, 
     SimpleXYSeries.ArrayFormat.Y_VALS_ONLY); 
    ecgLaLlHistorySeries.setModel(ecgLaLlHistory, 
     SimpleXYSeries.ArrayFormat.Y_VALS_ONLY); 
    ecgSHistoryPlot.redraw(); 
} 

/** 
* This method should be called when there's new data. 
*/ 
private static void onSensorReading(int EcgRaLl, int EcgLaLl) { 
    drawMergedPlot(EcgRaLl, EcgLaLl); 
} 
+0

спасибо за ответ. Ваш датчик ecg дал какой выход? – user2531493

+0

Полезная нагрузка состояла из версии шаблона датчика, GPS, Accel и Gyro. Я сконфигурировал свой датчик для обеспечения только ЭКГ. И, как вы видите код, в нем было 2 поплавка. – Milan

+0

Я использую датчик импульсов для получения выходного сигнала ecg, он будет передавать аналоговый сигнал, аналоговый сигнал преобразуется в цифровой сигнал и отправляет его через bluetooth на телефон - любые предложения plsss – user2531493