यह प्रश्न एक सटीक डुप्लिकेट है: < / P>
- 1 उत्तर
मैं वर्तमान में एक पर काम कर रहा हूँ प्रोजेक्ट में एंड्रॉइड मोबाइल फोन पर ईसीजी संकेतों का इस्तेमाल होता है।
मैं तय कर रहा हूं कि मुझे एंड्रॉइड के लिए अपना सिग्नल प्रोसेसिंग लायबरी बनाना चाहिए या नहीं, क्योंकि मुझे कोई भी ऑनलाइन खोज नहीं करना है।
क्या किसी को भी एक पुस्तकालय के बारे में पता है जो मैं उपयोग कर सकता हूं या क्या यह मेरे लिए आसान और तेज होगा?
धन्यवाद
मैंने रीयल-टाइम में ईसीजी संकेतों की साजिश रचने के लिए एंड्रॉइडप्लेट का इस्तेमाल किया। मैंने इस्तेमाल किया सेंसर एक 4 लीड ईसीजी था जो ब्लूटूथ के माध्यम से आरएल और एलएलएल प्रदान कर सकता था। यहां साजिश रचने के लिए नमूना है, लेकिन इसे अपनी आवश्यकता के अनुसार संशोधित करने के लिए स्वतंत्र महसूस करें। और अगर हाल ही में एंड्रॉइडप्लेट यहां इस्तेमाल किए जाने वाले किसी भी तरीके का समर्थन नहीं करता है, तो कृपया इसे संशोधित करें और उसे बदलें। और आखिरकार यह विधि कुशल नहीं है, क्योंकि यह प्लॉट को रेखांकित करता है, मेरा मानना है कि एंड्रॉइडप्लेट नए संस्करणों में बेहतर कार्यान्वयन का समर्थन करता है:
इसी तरह आप XML में प्लॉट को परिभाषित करते हैं:
& lt; com.androidplot.xy.XYPlot एंड्रॉयड: आईडी = "@ + id / ecgSPlot" एंड्रॉयड: layout_width = "match_parent" एंड्रॉयड: layout_height = "180dp" एंड्रॉयड: layout_marginLeft = "10dp" एंड्रॉयड: layout_marginRight = "10dp" एंड्रॉयड : लेआउट_मर्जिनटॉप = "10dp" शीर्षक = "ईसीजी इतिहास" / & gt;
और इसे साजिश करने का कोड है:
सार्वजनिक स्थिर XYPlot ecgHistoryPlot = null; सार्वजनिक स्टेटिक सिम्प्लेक्स सिरीज ईसीजीएलईईएलएसएसरीज = नई सरलएक्साइरीज ("ईसीजी इतिहास"); निजी स्टेटिक लिंक्डलिस्ट & lt; Integer & gt; EcgRaLlHistory = नई लिंक्डलिस्ट & lt; पूर्णांक & gt; (); निजी स्टेटिक लिंक्डलिस्ट & lt; Integer & gt; EcgLaLlHistory = नया लिंक्डलिस्ट & lt; पूर्णांक & gt; (); / ** * इस विधि देखो और लेबल * / निजी शून्य setMergedPlotParam () {ecgHistoryPlot = (XYPlot) viewRTPlotting.findViewById (R.id.ecgSPlot) सहित साजिश paramaters सेट हो जाएगा; EcgHistoryPlot .setRangeBoundaries (-180, 35 9, XYPlot.BoundaryMode.FIXED); EcgHistoryPlot.setDomainBoundaries (0, 60, XYPlot.BoundaryMode.FIXED); ecgHistoryPlot.addSeries (ecgRaLlHistorySeries, LineAndPointRenderer.class, नई LineAndPointFormatter (Color.rgb (0, 0, 255), Color.BLACK)); ecgHistoryPlot.addSeries (ecgLaLlHistorySeries, LineAndPointRenderer.class, नई LineAndPointFormatter (Color.rgb (255, 0, 0), Color.BLACK)); ecgHistoryPlot.setDomainStepValue (5); ecgHistoryPlot.setTicksPerRangeLabel (3); ecgHistoryPlot.setDomainLabel ( "टाइम"); ecgHistoryPlot.getDomainLabelWidget () पैक ()।; ecgHistoryPlot.setRangeLabel ( "स्तर"); ecgHistoryPlot.getRangeLabelWidget () पैक ()।; ecgHistoryPlot.disableAllMarkup (); } / ** * इस विधि अपडेट करेगा साजिश डेटा * / निजी स्थिर शून्य drawMergedPlot (पूर्णांक EcgRaLl, पूर्णांक EcgLaLl) {संख्या [] seriesRNumbers = {EcgRaLl, EcgLaLl}; EcgLevelsSeries.setModel (Arrays.asList (सीरियलआर संख्या), सरलएक्साइरीज। अर्रेफ़ॉर्मेट.एक्सवाई_एवीएएलएस_आइ.ए.एल.एस.ए. अगर (ecgRaLlHistory.size () & gt; HISTORY_SIZE || ecgLaLlHistory.size () & gt; 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 (); } / ** * इस पद्धति को तब बुलाया जाना चाहिए जब नया डेटा हो। * / निजी स्थैतिक शून्य पर सेंसर रीडिंग (इंट इक्ग्राएल, इंट एक्ग्लैल) {ड्रामेर्गेड प्लॉट (इक्ग्राएल, एक्गोलाल); }
No comments:
Post a Comment