Hello,
As you have already the examples of the EEG -50 channel, Is it possible to set the sensitivity factor for the channels to show the graph.
Basically, this will set the amplitude based on the frequency variation example 7micro volts/millimeter (7microvolts/mm) for each channel. Is there any way we can do it using Scichart, please let us know.
Appreciate your help
Regards,
Aditya
- Aditya Kadambi asked 3 years ago
-
Hi, to further clarify, we noticed that Scichart automatically scales as per the values and the height of the smartphone screen. We would like to control it a bit more like “traditional” EEG charts which can show amplitude at 7Uv/mm or 20Uv/mm or 200Uv/mm or even 1000Uv/mm. Can Scichart help us with this?
- You must login to post comments
I have added it in update indicators method() where I update impedence every 5 sec. i update visible range based on sensitivity selection. I m able to see the toast msg for every 5 sec with the selected sensitivity and min and max visible range. But graph is not updated. it may be because numeriicAxis is defined as final. But without final i will not be able to define it. Note; impedence values updates properly every five sec. But graph setvisible range not updated,
private void updateIndicators(long time) {
final Context context1 = getActivity();
if(time % 5 == 0) {
indicatorsProvider.update();
binding.heartRateIndicator.impedencech0.setText("Fp1-Ref: " + (Double.toString(Math.round(Impedance_ch[0]*100.0)/100.0)));
if (Impedance_ch[0] <= 5000) {
binding.heartRateIndicator.impedencech0.setTextColor(Color.DKGRAY);
int Fp1Ref = ContextCompat.getColor(context1, R.color.DKGREEN);
}
if (Impedance_ch[0] <= 10000 & Impedance_ch[0] > 5000) {
binding.heartRateIndicator.impedencech0.setTextColor(Color.GREEN);
int Fp1Ref = ContextCompat.getColor(context1, R.color.GREEN);
}
if (Impedance_ch[0] > 10000) {
binding.heartRateIndicator.impedencech0.setTextColor(Color.RED);
int Fp1Ref = ContextCompat.getColor(context1, R.color.RED);
}
binding.heartRateIndicator.impedencech1.setText("Fp2-Ref: " + (Double.toString(Math.round(Impedance_ch[1]*100.0)/100.0)));
if (Impedance_ch[1] <= 5000) {
binding.heartRateIndicator.impedencech1.setTextColor(Color.DKGRAY);
int Fp2Ref = ContextCompat.getColor(context1, R.color.DKGREEN);
}
if (Impedance_ch[1] <= 10000 & Impedance_ch[1] > 5000) {
binding.heartRateIndicator.impedencech1.setTextColor(Color.GREEN);
int Fp2Ref = ContextCompat.getColor(context1, R.color.GREEN);
}
if (Impedance_ch[1] > 10000) {
binding.heartRateIndicator.impedencech1.setTextColor(Color.RED);
int Fp2Ref = ContextCompat.getColor(context1, R.color.RED);
}
binding.heartRateIndicator.impedencech2.setText("F3-Ref: " + (Double.toString(Math.round(Impedance_ch[2]*100.0)/100.0)));
if (Impedance_ch[2] <= 5000) {
binding.heartRateIndicator.impedencech2.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[2] <= 10000 & Impedance_ch[2] > 5000) {
binding.heartRateIndicator.impedencech2.setTextColor(Color.GREEN);
}
if (Impedance_ch[2] > 10000) {
binding.heartRateIndicator.impedencech2.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech3.setText("F4-Ref: " + (Double.toString(Math.round(Impedance_ch[3]*100.0)/100.0)));
if (Impedance_ch[3] <= 5000) {
binding.heartRateIndicator.impedencech3.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[3] <= 10000 & Impedance_ch[3] > 5000) {
binding.heartRateIndicator.impedencech3.setTextColor(Color.GREEN);
}
if (Impedance_ch[3] > 10000) {
binding.heartRateIndicator.impedencech3.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech4.setText("C3-Ref: " + (Double.toString(Math.round(Impedance_ch[4]*100.0)/100.0)));
if (Impedance_ch[4] <= 5000) {
binding.heartRateIndicator.impedencech4.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[4] <= 10000 & Impedance_ch[4] > 5000) {
binding.heartRateIndicator.impedencech4.setTextColor(Color.GREEN);
}
if (Impedance_ch[4] > 10000) {
binding.heartRateIndicator.impedencech4.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech5.setText("C4-Ref: " + (Double.toString(Math.round(Impedance_ch[5]*100.0)/100.0)));
if (Impedance_ch[5] <= 5000) {
binding.heartRateIndicator.impedencech5.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[5] <= 10000 & Impedance_ch[5] > 5000) {
binding.heartRateIndicator.impedencech5.setTextColor(Color.GREEN);
}
if (Impedance_ch[5] > 10000) {
binding.heartRateIndicator.impedencech5.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech6.setText("P3-Ref: " + (Double.toString(Math.round(Impedance_ch[6]*100.0)/100.0)));
if (Impedance_ch[6] <= 5000) {
binding.heartRateIndicator.impedencech6.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[6] <= 10000 & Impedance_ch[6] > 5000) {
binding.heartRateIndicator.impedencech6.setTextColor(Color.GREEN);
}
if (Impedance_ch[6] > 10000) {
binding.heartRateIndicator.impedencech6.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech7.setText("P4-Ref: " + (Double.toString(Math.round(Impedance_ch[7]*100.0)/100.0)));
if (Impedance_ch[7] <= 5000) {
binding.heartRateIndicator.impedencech7.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[7] <= 10000 & Impedance_ch[7] > 5000) {
binding.heartRateIndicator.impedencech7.setTextColor(Color.GREEN);
}
if (Impedance_ch[7] > 10000) {
binding.heartRateIndicator.impedencech7.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech8.setText("O1-Ref: " + (Double.toString(Math.round(Impedance_ch[8]*100.0)/100.0)));
if (Impedance_ch[8] <= 5000) {
binding.heartRateIndicator.impedencech8.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[8] <= 10000 & Impedance_ch[8] > 5000) {
binding.heartRateIndicator.impedencech8.setTextColor(Color.GREEN);
}
if (Impedance_ch[8] > 10000) {
binding.heartRateIndicator.impedencech8.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech9.setText("O2-Ref: " + (Double.toString(Math.round(Impedance_ch[9]*100.0)/100.0)));
if (Impedance_ch[9] <= 5000) {
binding.heartRateIndicator.impedencech9.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[9] <= 10000 & Impedance_ch[9] > 5000) {
binding.heartRateIndicator.impedencech9.setTextColor(Color.GREEN);
}
if (Impedance_ch[9] > 10000) {
binding.heartRateIndicator.impedencech9.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech10.setText("F7-Ref: " + (Double.toString(Math.round(Impedance_ch[10]*100.0)/100.0)));
if (Impedance_ch[10] <= 5000) {
binding.heartRateIndicator.impedencech10.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[10] <= 10000 & Impedance_ch[10] > 5000) {
binding.heartRateIndicator.impedencech10.setTextColor(Color.GREEN);
}
if (Impedance_ch[10] > 10000) {
binding.heartRateIndicator.impedencech10.setTextColor(Color.RED);
}
//
binding.heartRateIndicator.impedencech11.setText("F8-Ref: " + (Double.toString(Math.round(Impedance_ch[11]*100.0)/100.0)));
if (Impedance_ch[11] <= 5000) {
binding.heartRateIndicator.impedencech11.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[11] <= 10000 & Impedance_ch[11] > 5000) {
binding.heartRateIndicator.impedencech11.setTextColor(Color.GREEN);
}
if (Impedance_ch[11] > 10000) {
binding.heartRateIndicator.impedencech11.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech12.setText("T3-Ref: " + (Double.toString(Math.round(Impedance_ch[12]*100.0)/100.0)));
if (Impedance_ch[12] <= 5000) {
binding.heartRateIndicator.impedencech12.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[12] <= 10000 & Impedance_ch[12] > 5000) {
binding.heartRateIndicator.impedencech12.setTextColor(Color.GREEN);
}
if (Impedance_ch[12] > 10000) {
binding.heartRateIndicator.impedencech12.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech13.setText("T4-Ref: " + (Double.toString(Math.round(Impedance_ch[13]*100.0)/100.0)));
if (Impedance_ch[13] <= 5000) {
binding.heartRateIndicator.impedencech13.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[13] <= 10000 & Impedance_ch[13] > 5000) {
binding.heartRateIndicator.impedencech13.setTextColor(Color.GREEN);
}
if (Impedance_ch[13] > 10000) {
binding.heartRateIndicator.impedencech13.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech14.setText("T5-Ref: " + (Double.toString(Math.round(Impedance_ch[14]*100.0)/100.0)));
if (Impedance_ch[14] <= 5000) {
binding.heartRateIndicator.impedencech14.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[14] <= 10000 & Impedance_ch[14] > 5000) {
binding.heartRateIndicator.impedencech14.setTextColor(Color.GREEN);
}
if (Impedance_ch[14] > 10000) {
binding.heartRateIndicator.impedencech14.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech15.setText("T6-Ref: " + (Double.toString(Math.round(Impedance_ch[15]*100.0)/100.0)));
if (Impedance_ch[15] <= 5000) {
binding.heartRateIndicator.impedencech15.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[15] <= 10000 & Impedance_ch[15] > 5000) {
binding.heartRateIndicator.impedencech15.setTextColor(Color.GREEN);
}
if (Impedance_ch[15] > 10000) {
binding.heartRateIndicator.impedencech15.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech16.setText("A1-Ref: " + (Double.toString(Math.round(Impedance_ch[16]*100.0)/100.0)));
if (Impedance_ch[16] <= 5000) {
binding.heartRateIndicator.impedencech16.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[16] <= 10000 & Impedance_ch[16] > 5000) {
binding.heartRateIndicator.impedencech16.setTextColor(Color.GREEN);
}
if (Impedance_ch[16] > 10000) {
binding.heartRateIndicator.impedencech16.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech17.setText("A2-Ref: " + (Double.toString(Math.round(Impedance_ch[17]*100.0)/100.0)));
if (Impedance_ch[17] <= 5000) {
binding.heartRateIndicator.impedencech17.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[17] <= 10000 & Impedance_ch[17] > 5000) {
binding.heartRateIndicator.impedencech17.setTextColor(Color.GREEN);
}
if (Impedance_ch[17] > 10000) {
binding.heartRateIndicator.impedencech17.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech18.setText("Fz-Ref: " + (Double.toString(Math.round(Impedance_ch[18]*100.0)/100.0)));
if (Impedance_ch[18] <= 5000) {
binding.heartRateIndicator.impedencech18.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[18] <= 10000 & Impedance_ch[18] > 5000) {
binding.heartRateIndicator.impedencech18.setTextColor(Color.GREEN);
}
if (Impedance_ch[18] > 10000) {
binding.heartRateIndicator.impedencech18.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech19.setText("Cz-Ref: " + (Double.toString(Math.round(Impedance_ch[19]*100.0)/100.0)));
if (Impedance_ch[19] <= 5000) {
binding.heartRateIndicator.impedencech19.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[19] <= 10000 & Impedance_ch[19] > 5000) {
binding.heartRateIndicator.impedencech17.setTextColor(Color.GREEN);
}
if (Impedance_ch[19] > 10000) {
binding.heartRateIndicator.impedencech19.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech20.setText("Pz-Ref: " + (Double.toString(Math.round(Impedance_ch[20]*100.0)/100.0)));
if (Impedance_ch[20] <= 5000) {
binding.heartRateIndicator.impedencech20.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[20] <= 10000 & Impedance_ch[20] > 5000) {
binding.heartRateIndicator.impedencech20.setTextColor(Color.GREEN);
}
if (Impedance_ch[20] > 10000) {
binding.heartRateIndicator.impedencech20.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech21.setText("Oz-Ref: " + (Double.toString(Math.round(Impedance_ch[21]*100.0)/100.0)));
if (Impedance_ch[21] <= 5000) {
binding.heartRateIndicator.impedencech21.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[21] <= 10000 & Impedance_ch[21] > 5000) {
binding.heartRateIndicator.impedencech21.setTextColor(Color.GREEN);
}
if (Impedance_ch[21] > 10000) {
binding.heartRateIndicator.impedencech21.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech22.setText("PG1-Ref: " + (Double.toString(Math.round(Impedance_ch[22]*100.0)/100.0)));
if (Impedance_ch[22] <= 5000) {
binding.heartRateIndicator.impedencech22.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[22] <= 10000 & Impedance_ch[22] > 5000) {
binding.heartRateIndicator.impedencech22.setTextColor(Color.GREEN);
}
if (Impedance_ch[22] > 10000) {
binding.heartRateIndicator.impedencech22.setTextColor(Color.RED);
}
binding.heartRateIndicator.impedencech23.setText("PG2-Ref: " + (Double.toString(Math.round(Impedance_ch[23]*100.0)/100.0)));
if (Impedance_ch[23] <= 5000) {
binding.heartRateIndicator.impedencech23.setTextColor(Color.DKGRAY);
}
if (Impedance_ch[23] <= 10000 & Impedance_ch[23] > 5000) {
binding.heartRateIndicator.impedencech21.setTextColor(Color.GREEN);
}
if (Impedance_ch[23] > 10000) {
binding.heartRateIndicator.impedencech23.setTextColor(Color.RED);
}
Toast.makeText(getActivity(), "Selected Sensitivity position in update: "+ Sensitivity_pos, Toast.LENGTH_LONG).show();
final DefaultVitalSignsDataProvider dataProvider = new DefaultVitalSignsDataProvider(getActivity());
Toast.makeText(getActivity(), "Selected Sensitivity rage: "+ dataProvider.getCh1_valueRange(), Toast.LENGTH_LONG).show();
final String Fp1RefId = "Fp1-Ref";
final String Fp2RefId = "Fp2-Ref";
final String F3RefId = "F3-Ref";
final String F4RefId = "F4-Ref";
final String C3RefId = "C3-Ref";
final String C4RefId = "C4-Ref";
final String P3RefId = "P3-Ref";
final String P4RefId = "P4-Ref";
final String O1RefId = "O1-Ref";
final String O2RefId = "O2-Ref";
final String F7RefId = "F7-Ref";
final String F8RefId = "F8-Ref";
final String T3RefId = "T3-Ref";
final String T4RefId = "T4-Ref";
final String T5RefId = "T5-Ref";
final String T6RefId = "T6-Ref";
final String A1RefId = "A1-Ref";
final String A2RefId = "A2-Ref";
final String FzRefId = "Fz-Ref";
final String CzRefId = "Cz-Ref";
final String PzRefId = "Pz-Ref";
final String OzRefId = "Oz-Ref";
final String PG1RefId = "PG1-Ref";
final String PG2RefId = "PG2-Ref";
final NumericAxis yAxisFp1Ref = generateYAxis(Fp1RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisFp2Ref = generateYAxis(Fp2RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisF3Ref = generateYAxis(F3RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisF4Ref = generateYAxis(F4RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisC3Ref = generateYAxis(C3RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisC4Ref = generateYAxis(C4RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisP3Ref = generateYAxis(P3RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisP4Ref = generateYAxis(P4RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisO1Ref = generateYAxis(O1RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisO2Ref = generateYAxis(O2RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisF7Ref = generateYAxis(F7RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisF8Ref = generateYAxis(F8RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisT3Ref = generateYAxis(T3RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisT4Ref = generateYAxis(T4RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisT5Ref = generateYAxis(T5RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisT6Ref = generateYAxis(T6RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisA1Ref = generateYAxis(A1RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisA2Ref = generateYAxis(A2RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisFzRef = generateYAxis(FzRefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisCzRef = generateYAxis(CzRefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisPzRef = generateYAxis(PzRefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisOzRef = generateYAxis(OzRefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisPG1Ref = generateYAxis(PG1RefId, dataProvider.getCh1_valueRange());
final NumericAxis yAxisPG2Ref = generateYAxis(PG2RefId, dataProvider.getBloodOxygenationRange());
//change the sensitivity
yAxisFp1Ref.setAutoRange(AutoRange.Never);
yAxisFp1Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisFp2Ref.setAutoRange(AutoRange.Never);
yAxisFp2Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisF3Ref.setAutoRange(AutoRange.Never);
yAxisF3Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisF4Ref.setAutoRange(AutoRange.Never);
yAxisF4Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisC3Ref.setAutoRange(AutoRange.Never);
yAxisC3Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisC4Ref.setAutoRange(AutoRange.Never);
yAxisC4Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisP3Ref.setAutoRange(AutoRange.Never);
yAxisP3Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisP4Ref.setAutoRange(AutoRange.Never);
yAxisP4Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisO1Ref.setAutoRange(AutoRange.Never);
yAxisO1Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisO2Ref.setAutoRange(AutoRange.Never);
yAxisO2Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisF7Ref.setAutoRange(AutoRange.Never);
yAxisF7Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisF8Ref.setAutoRange(AutoRange.Never);
yAxisF8Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisT3Ref.setAutoRange(AutoRange.Never);
yAxisT3Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisT4Ref.setAutoRange(AutoRange.Never);
yAxisT4Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisT5Ref.setAutoRange(AutoRange.Never);
yAxisT5Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisT6Ref.setAutoRange(AutoRange.Never);
yAxisT6Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisA1Ref.setAutoRange(AutoRange.Never);
yAxisA1Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisA2Ref.setAutoRange(AutoRange.Never);
yAxisA2Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisFzRef.setAutoRange(AutoRange.Never);
yAxisFzRef.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisCzRef.setAutoRange(AutoRange.Never);
yAxisCzRef.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisPzRef.setAutoRange(AutoRange.Never);
yAxisPzRef.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisOzRef.setAutoRange(AutoRange.Never);
yAxisOzRef.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisPG1Ref.setAutoRange(AutoRange.Never);
yAxisPG1Ref.setVisibleRange(dataProvider.getCh1_valueRange());
yAxisPG2Ref.setAutoRange(AutoRange.Never);
yAxisPG2Ref.setVisibleRange(dataProvider.getCh1_valueRange());
}
}
- Aditya Kadambi answered 3 years ago
-
I’m not 100% sure ( you didn’t provide source code of generateYAxis() method ) but it looks like generateYAxis() creates new NumericAxis instance. If updateIndicators() is called every 5 seconds this means that you recreate yAxes, but I don’t see where you add them into SciChartSurface. It looks like they are created, then you set AutoRange and VisibleRange for them and that’s all ( they never used by chart ). In this case solution for your problem will be rewriting code in a such way that you update VisibleRange on NumeriAxis instances that are used by chart ( maybe you can create and save yAxes in private fields of class, then just update VisibleRange for them in updateIndicators() method )
- You must login to post comments
I am considering applying server-side licensing for my javerScript application.
In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)
However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)
I wonder if there is a sample code implemented in C++ for server-side licensing.
Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?
- Aditya Kadambi answered 3 years ago
-
It looks like code wasn’t fully copy pasted, so I couldn’t run it, but it seems that I was correct and you need to define private fields for storing your yAxes, because in other methods they are recreated and you’re setting VisibleRange on new instances and axes attached to chart remain unchanged.
- You must login to post comments
Hi Yura,
Does this code makes sense ? I have sent you the full code. Please let me know how can we do it.
I am trying to make it with AxisCollection yax= binding.surface.getYAxes(); By getting all the Y axises and then setting the visible ranges.
Please let me know if it works.
Regards,
Aditya
- Aditya Kadambi answered 3 years ago
- You must login to post comments
Hi Yura,
I solved it with the below code. I used AxisCollection class and for each axis i set the visible range for every 5 sec. this solves the problem
AxisCollection yax= binding.surface.getYAxes();
yax.get(0).setAutoRange(AutoRange.Never);
yax.get(0).setVisibleRange(dataProvider.getCh1_valueRange());
Regards,
Aditya
- Aditya Kadambi answered 3 years ago
- You must login to post comments
Hi Aditya,
You can set VisibleRange for X and Y axes manually – this should allow to control what data is displayed by chart. Also to disable default scaling of chart you would need to set AutoRange.Never for both axes.
Best regards,
Yura
- Yura Khariton answered 3 years ago
- You must login to post comments
Hi Yura,
Thanks for the answer, We are able to achieve this sensitivity factor by adding SetVisibleRange.
yAxisFp1Ref.setAutoRange(AutoRange.Never);
yAxisFp1Ref.setVisibleRange(dataProvider.getCh1_valueRange());
This happens at the initiation of the graph. But how can we do it on the fly when the graph is running.
When the graph is in progress, we have a Dropdown with Sensitivity values. and We can select the sensitivity, now the graph should set the visible ranges for all the channels should change accordingly. Image is attached for your reference.
I have added this change in updateIndicators(long time) method, which updates for every five seconds.
But this is not making changes to setvisible range.
- Aditya Kadambi answered 3 years ago
-
Have you tried to update VisibleRange value in same place where you update your DataSeries? So if you update data for some channel you just recalculate and set Y range for this channel. Is it suitable for your needs?
- You must login to post comments
Hi
i am adding it where i m changing the data series. but its not taking. I tried to re initialize the graph also whenever we change th sensitivity.
pls check and let us know
- Aditya Kadambi answered 3 years ago
-
Can you provide project which reproduces this issue, because I’m not sure what I should check ( you didn’t provide any source code that I can take a look on)
-
I have added it in update indicators method() where I update impedence every 5 sec. i update visible range based on sensitivity selection. I m able to see the toast msg for every 5 sec with the selected sensitivity and min and max visible range. But graph is not updated. it may be because numeriicAxis is defined as final. But without final i will not be able to define it. Note; impedence values updates properly every five sec. But graph setvisible range not updated, private void updateIndicators(long time) { //final ExampleVitalSignsBloodOxygenationIndicatorLayoutBinding bloodOxygenationIndicator = binding.bloodOxygenationIndicator; // final ExampleVitalSignsBloodPressureIndicatorLayoutBinding bloodPressureIndicator = binding.bloodPressureIndicator; // binding.heartRateIndicator.heartIcon.setVisibility(time % 2 == 0 ? View.VISIBLE : View.INVISIBLE); final Context context1 = getActivity(); if(time % 5 == 0) { indicatorsProvider.update(); binding.heartRateIndicator.impedencech0.setText(“Fp1-Ref: ” + (Double.toString(Math.round(Impedance_ch[0]*100.0)/100.0))); if (Impedance_ch[0] <= 5000) { binding.heartRateIndicator.impedencech0.setTextColor(Color.DKGRAY); int Fp1Ref = ContextCompat.getColor(context1, R.color.DKGREEN); } if (Impedance_ch[0] 5000) { binding.heartRateIndicator.impedencech0.setTextColor(Color.GREEN); int Fp1Ref = ContextCompat.getColor(context1, R.color.GREEN); } if (Impedance_ch[0] > 10000) { binding.heartRateIndicator.impedencech0.setTextColor(Color.RED); int Fp1Ref = ContextCompat.getColor(context1, R.color.RED); } binding.heartRateIndicator.impedencech1.setText(“Fp2-Ref: ” + (Double.toString(Math.round(Impedance_ch[1]*100.0)/100.0))); if (Impedance_ch[1] <= 5000) { binding.heartRateIndicator.impedencech1.setTextColor(Color.DKGRAY); int Fp2Ref = ContextCompat.getColor(context1, R.color.DKGREEN); } if (Impedance_ch[1] 5000) { binding.heartRateIndicator.impedencech1.setTextColor(Color.GREEN); int Fp2Ref = ContextCompat.getColor(context1, R.color.GREEN); } if (Impedance_ch[1] > 10000) { binding.heartRateIndicator.impedencech1.setTextColor(Color.RED); int Fp2Ref = ContextCompat.getColor(context1, R.color.RED); } binding.heartRateIndicator.impedencech2.setText(“F3-Ref: ” + (Double.toString(Math.round(Impedance_ch[2]*100.0)/100.0))); if (Impedance_ch[2] <= 5000) { binding.heartRateIndicator.impedencech2.setTextColor(Color.DKGRAY); } if (Impedance_ch[2] 5000) { binding.heartRateIndicator.impedencech2.setTextColor(Color.GREEN); } if (Impedance_ch[2] > 10000) { binding.heartRateIndicator.impedencech2.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech3.setText(“F4-Ref: ” + (Double.toString(Math.round(Impedance_ch[3]*100.0)/100.0))); if (Impedance_ch[3] <= 5000) { binding.heartRateIndicator.impedencech3.setTextColor(Color.DKGRAY); } if (Impedance_ch[3] 5000) { binding.heartRateIndicator.impedencech3.setTextColor(Color.GREEN); } if (Impedance_ch[3] > 10000) { binding.heartRateIndicator.impedencech3.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech4.setText(“C3-Ref: ” + (Double.toString(Math.round(Impedance_ch[4]*100.0)/100.0))); if (Impedance_ch[4] <= 5000) { binding.heartRateIndicator.impedencech4.setTextColor(Color.DKGRAY); } if (Impedance_ch[4] 5000) { binding.heartRateIndicator.impedencech4.setTextColor(Color.GREEN); } if (Impedance_ch[4] > 10000) { binding.heartRateIndicator.impedencech4.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech5.setText(“C4-Ref: ” + (Double.toString(Math.round(Impedance_ch[5]*100.0)/100.0))); if (Impedance_ch[5] <= 5000) { binding.heartRateIndicator.impedencech5.setTextColor(Color.DKGRAY); } if (Impedance_ch[5] 5000) { binding.heartRateIndicator.impedencech5.setTextColor(Color.GREEN); } if (Impedance_ch[5] > 10000) { binding.heartRateIndicator.impedencech5.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech6.setText(“P3-Ref: ” + (Double.toString(Math.round(Impedance_ch[6]*100.0)/100.0))); if (Impedance_ch[6] <= 5000) { binding.heartRateIndicator.impedencech6.setTextColor(Color.DKGRAY); } if (Impedance_ch[6] 5000) { binding.heartRateIndicator.impedencech6.setTextColor(Color.GREEN); } if (Impedance_ch[6] > 10000) { binding.heartRateIndicator.impedencech6.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech7.setText(“P4-Ref: ” + (Double.toString(Math.round(Impedance_ch[7]*100.0)/100.0))); if (Impedance_ch[7] <= 5000) { binding.heartRateIndicator.impedencech7.setTextColor(Color.DKGRAY); } if (Impedance_ch[7] 5000) { binding.heartRateIndicator.impedencech7.setTextColor(Color.GREEN); } if (Impedance_ch[7] > 10000) { binding.heartRateIndicator.impedencech7.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech8.setText(“O1-Ref: ” + (Double.toString(Math.round(Impedance_ch[8]*100.0)/100.0))); if (Impedance_ch[8] <= 5000) { binding.heartRateIndicator.impedencech8.setTextColor(Color.DKGRAY); } if (Impedance_ch[8] 5000) { binding.heartRateIndicator.impedencech8.setTextColor(Color.GREEN); } if (Impedance_ch[8] > 10000) { binding.heartRateIndicator.impedencech8.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech9.setText(“O2-Ref: ” + (Double.toString(Math.round(Impedance_ch[9]*100.0)/100.0))); if (Impedance_ch[9] <= 5000) { binding.heartRateIndicator.impedencech9.setTextColor(Color.DKGRAY); } if (Impedance_ch[9] 5000) { binding.heartRateIndicator.impedencech9.setTextColor(Color.GREEN); } if (Impedance_ch[9] > 10000) { binding.heartRateIndicator.impedencech9.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech10.setText(“F7-Ref: ” + (Double.toString(Math.round(Impedance_ch[10]*100.0)/100.0))); if (Impedance_ch[10] <= 5000) { binding.heartRateIndicator.impedencech10.setTextColor(Color.DKGRAY); } if (Impedance_ch[10] 5000) { binding.heartRateIndicator.impedencech10.setTextColor(Color.GREEN); } if (Impedance_ch[10] > 10000) { binding.heartRateIndicator.impedencech10.setTextColor(Color.RED); } // binding.heartRateIndicator.impedencech11.setText(“F8-Ref: ” + (Double.toString(Math.round(Impedance_ch[11]*100.0)/100.0))); if (Impedance_ch[11] <= 5000) { binding.heartRateIndicator.impedencech11.setTextColor(Color.DKGRAY); } if (Impedance_ch[11] 5000) { binding.heartRateIndicator.impedencech11.setTextColor(Color.GREEN); } if (Impedance_ch[11] > 10000) { binding.heartRateIndicator.impedencech11.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech12.setText(“T3-Ref: ” + (Double.toString(Math.round(Impedance_ch[12]*100.0)/100.0))); if (Impedance_ch[12] <= 5000) { binding.heartRateIndicator.impedencech12.setTextColor(Color.DKGRAY); } if (Impedance_ch[12] 5000) { binding.heartRateIndicator.impedencech12.setTextColor(Color.GREEN); } if (Impedance_ch[12] > 10000) { binding.heartRateIndicator.impedencech12.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech13.setText(“T4-Ref: ” + (Double.toString(Math.round(Impedance_ch[13]*100.0)/100.0))); if (Impedance_ch[13] <= 5000) { binding.heartRateIndicator.impedencech13.setTextColor(Color.DKGRAY); } if (Impedance_ch[13] 5000) { binding.heartRateIndicator.impedencech13.setTextColor(Color.GREEN); } if (Impedance_ch[13] > 10000) { binding.heartRateIndicator.impedencech13.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech14.setText(“T5-Ref: ” + (Double.toString(Math.round(Impedance_ch[14]*100.0)/100.0))); if (Impedance_ch[14] <= 5000) { binding.heartRateIndicator.impedencech14.setTextColor(Color.DKGRAY); } if (Impedance_ch[14] 5000) { binding.heartRateIndicator.impedencech14.setTextColor(Color.GREEN); } if (Impedance_ch[14] > 10000) { binding.heartRateIndicator.impedencech14.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech15.setText(“T6-Ref: ” + (Double.toString(Math.round(Impedance_ch[15]*100.0)/100.0))); if (Impedance_ch[15] <= 5000) { binding.heartRateIndicator.impedencech15.setTextColor(Color.DKGRAY); } if (Impedance_ch[15] 5000) { binding.heartRateIndicator.impedencech15.setTextColor(Color.GREEN); } if (Impedance_ch[15] > 10000) { binding.heartRateIndicator.impedencech15.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech16.setText(“A1-Ref: ” + (Double.toString(Math.round(Impedance_ch[16]*100.0)/100.0))); if (Impedance_ch[16] <= 5000) { binding.heartRateIndicator.impedencech16.setTextColor(Color.DKGRAY); } if (Impedance_ch[16] 5000) { binding.heartRateIndicator.impedencech16.setTextColor(Color.GREEN); } if (Impedance_ch[16] > 10000) { binding.heartRateIndicator.impedencech16.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech17.setText(“A2-Ref: ” + (Double.toString(Math.round(Impedance_ch[17]*100.0)/100.0))); if (Impedance_ch[17] <= 5000) { binding.heartRateIndicator.impedencech17.setTextColor(Color.DKGRAY); } if (Impedance_ch[17] 5000) { binding.heartRateIndicator.impedencech17.setTextColor(Color.GREEN); } if (Impedance_ch[17] > 10000) { binding.heartRateIndicator.impedencech17.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech18.setText(“Fz-Ref: ” + (Double.toString(Math.round(Impedance_ch[18]*100.0)/100.0))); if (Impedance_ch[18] <= 5000) { binding.heartRateIndicator.impedencech18.setTextColor(Color.DKGRAY); } if (Impedance_ch[18] 5000) { binding.heartRateIndicator.impedencech18.setTextColor(Color.GREEN); } if (Impedance_ch[18] > 10000) { binding.heartRateIndicator.impedencech18.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech19.setText(“Cz-Ref: ” + (Double.toString(Math.round(Impedance_ch[19]*100.0)/100.0))); if (Impedance_ch[19] <= 5000) { binding.heartRateIndicator.impedencech19.setTextColor(Color.DKGRAY); } if (Impedance_ch[19] 5000) { binding.heartRateIndicator.impedencech17.setTextColor(Color.GREEN); } if (Impedance_ch[19] > 10000) { binding.heartRateIndicator.impedencech19.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech20.setText(“Pz-Ref: ” + (Double.toString(Math.round(Impedance_ch[20]*100.0)/100.0))); if (Impedance_ch[20] <= 5000) { binding.heartRateIndicator.impedencech20.setTextColor(Color.DKGRAY); } if (Impedance_ch[20] 5000) { binding.heartRateIndicator.impedencech20.setTextColor(Color.GREEN); } if (Impedance_ch[20] > 10000) { binding.heartRateIndicator.impedencech20.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech21.setText(“Oz-Ref: ” + (Double.toString(Math.round(Impedance_ch[21]*100.0)/100.0))); if (Impedance_ch[21] <= 5000) { binding.heartRateIndicator.impedencech21.setTextColor(Color.DKGRAY); } if (Impedance_ch[21] 5000) { binding.heartRateIndicator.impedencech21.setTextColor(Color.GREEN); } if (Impedance_ch[21] > 10000) { binding.heartRateIndicator.impedencech21.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech22.setText(“PG1-Ref: ” + (Double.toString(Math.round(Impedance_ch[22]*100.0)/100.0))); if (Impedance_ch[22] <= 5000) { binding.heartRateIndicator.impedencech22.setTextColor(Color.DKGRAY); } if (Impedance_ch[22] 5000) { binding.heartRateIndicator.impedencech22.setTextColor(Color.GREEN); } if (Impedance_ch[22] > 10000) { binding.heartRateIndicator.impedencech22.setTextColor(Color.RED); } binding.heartRateIndicator.impedencech23.setText(“PG2-Ref: ” + (Double.toString(Math.round(Impedance_ch[23]*100.0)/100.0))); if (Impedance_ch[23] <= 5000) { binding.heartRateIndicator.impedencech23.setTextColor(Color.DKGRAY); } if (Impedance_ch[23] 5000) { binding.heartRateIndicator.impedencech21.setTextColor(Color.GREEN); } if (Impedance_ch[23] > 10000) { binding.heartRateIndicator.impedencech23.setTextColor(Color.RED); } Toast.makeText(getActivity(), “Selected Sensitivity position in update: “+ Sensitivity_pos, Toast.LENGTH_LONG).show(); // final Context context1 = getActivity(); final DefaultVitalSignsDataProvider dataProvider = new DefaultVitalSignsDataProvider(getActivity()); Toast.makeText(getActivity(), “Selected Sensitivity rage: “+ dataProvider.getCh1_valueRange(), Toast.LENGTH_LONG).show(); final String Fp1RefId = “Fp1-Ref”; final String Fp2RefId = “Fp2-Ref”; final String F3RefId = “F3-Ref”; final String F4RefId = “F4-Ref”; final String C3RefId = “C3-Ref”; final String C4RefId = “C4-Ref”; final String P3RefId = “P3-Ref”; final String P4RefId = “P4-Ref”; final String O1RefId = “O1-Ref”; final String O2RefId = “O2-Ref”; final String F7RefId = “F7-Ref”; final String F8RefId = “F8-Ref”; final String T3RefId = “T3-Ref”; final String T4RefId = “T4-Ref”; final String T5RefId = “T5-Ref”; final String T6RefId = “T6-Ref”; final String A1RefId = “A1-Ref”; final String A2RefId = “A2-Ref”; final String FzRefId = “Fz-Ref”; final String CzRefId = “Cz-Ref”; final String PzRefId = “Pz-Ref”; final String OzRefId = “Oz-Ref”; final String PG1RefId = “PG1-Ref”; final String PG2RefId = “PG2-Ref”; final NumericAxis yAxisFp1Ref = generateYAxis(Fp1RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisFp2Ref = generateYAxis(Fp2RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisF3Ref = generateYAxis(F3RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisF4Ref = generateYAxis(F4RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisC3Ref = generateYAxis(C3RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisC4Ref = generateYAxis(C4RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisP3Ref = generateYAxis(P3RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisP4Ref = generateYAxis(P4RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisO1Ref = generateYAxis(O1RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisO2Ref = generateYAxis(O2RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisF7Ref = generateYAxis(F7RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisF8Ref = generateYAxis(F8RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisT3Ref = generateYAxis(T3RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisT4Ref = generateYAxis(T4RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisT5Ref = generateYAxis(T5RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisT6Ref = generateYAxis(T6RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisA1Ref = generateYAxis(A1RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisA2Ref = generateYAxis(A2RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisFzRef = generateYAxis(FzRefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisCzRef = generateYAxis(CzRefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisPzRef = generateYAxis(PzRefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisOzRef = generateYAxis(OzRefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisPG1Ref = generateYAxis(PG1RefId, dataProvider.getCh1_valueRange()); final NumericAxis yAxisPG2Ref = generateYAxis(PG2RefId, dataProvider.getBloodOxygenationRange()); //change the sensitivity yAxisFp1Ref.setAutoRange(AutoRange.Never); yAxisFp1Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisFp2Ref.setAutoRange(AutoRange.Never); yAxisFp2Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisF3Ref.setAutoRange(AutoRange.Never); yAxisF3Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisF4Ref.setAutoRange(AutoRange.Never); yAxisF4Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisC3Ref.setAutoRange(AutoRange.Never); yAxisC3Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisC4Ref.setAutoRange(AutoRange.Never); yAxisC4Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisP3Ref.setAutoRange(AutoRange.Never); yAxisP3Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisP4Ref.setAutoRange(AutoRange.Never); yAxisP4Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisO1Ref.setAutoRange(AutoRange.Never); yAxisO1Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisO2Ref.setAutoRange(AutoRange.Never); yAxisO2Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisF7Ref.setAutoRange(AutoRange.Never); yAxisF7Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisF8Ref.setAutoRange(AutoRange.Never); yAxisF8Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisT3Ref.setAutoRange(AutoRange.Never); yAxisT3Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisT4Ref.setAutoRange(AutoRange.Never); yAxisT4Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisT5Ref.setAutoRange(AutoRange.Never); yAxisT5Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisT6Ref.setAutoRange(AutoRange.Never); yAxisT6Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisA1Ref.setAutoRange(AutoRange.Never); yAxisA1Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisA2Ref.setAutoRange(AutoRange.Never); yAxisA2Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisFzRef.setAutoRange(AutoRange.Never); yAxisFzRef.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisCzRef.setAutoRange(AutoRange.Never); yAxisCzRef.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisPzRef.setAutoRange(AutoRange.Never); yAxisPzRef.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisOzRef.setAutoRange(AutoRange.Never); yAxisOzRef.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisPG1Ref.setAutoRange(AutoRange.Never); yAxisPG1Ref.setVisibleRange(dataProvider.getCh1_valueRange()); yAxisPG2Ref.setAutoRange(AutoRange.Never); yAxisPG2Ref.setVisibleRange(dataProvider.getCh1_valueRange()); } }
- You must login to post comments
Please login first to submit.