FLIR One Developer / Blog / Topics / when S60 phone get hot ,the temperature is no correct

when S60 phone get hot ,the temperature is no correct

Home Forums FLIR ONE SDK Development Device specific CAT S60/S61 smartphones when S60 phone get hot ,the temperature is no correct

This topic contains 6 replies, has 2 voices, and was last updated by Profile photo of Jimmy Jimmy 2 years, 1 month ago.

Viewing 7 posts - 1 through 7 (of 7 total)

  • Author

    Posts

  • #7273

    Profile photo of Jimmy
    Jimmy

    Participant

    when S60 phone get hot ,the temperature is no correct.

    when we use s60 to measure temperature for a long time , the phone will get hot.
    Then,we found the situation that using the example code (as below) to test ,
    the temperature will get higher than actual value.
    could I how to adjust this error in on “public void onFrameProcessed(final RenderedImage renderedImage)
    {}”??

    Thank you~

    #7291

    Profile photo of Allison
    Allison

    Moderator

    Hi Jimmy,

    I would try tuning the device more frequently. The tuning allows the device to perform a flat-field calibration that essentially recalibrates the device and should allow it to read the correct temperature despite the temperature of the device as long as the device does not get over 60 °C.

    Hopefully this helps, if not please let me know and I’ll be happy to continue to troubleshoot this issue.

    Thank you,
    Allison Torchia

    #7292

    Profile photo of Jimmy
    Jimmy

    Participant

    Hi Allison,
    Thank your reply!

    I face another problem, could you mind assisting again .

    This is my test as below.
    Using MyFlir to get max temperature (full screen) by hot water, then it shows about 90℃ in the app.
    But when I use Flirexmple code to test, then it shows about 80℃.
    Cannot figure out why the values are substantial different between MyFlir and Flirexample app.

    Were there other method to get correct temperature over 60℃ in MyFlir ?
    Or some code is wrong in Flirexample code ?
    This is get max temperature in Flireample code as below:

      public void onFrameProcessed(final RenderedImage renderedImage) {
                //FrameProcessor.Delegate
                if (renderedImage.imageType() == RenderedImage.ImageType.ThermalRadiometricKelvinImage) {
                    // Note: this code is not optimized
                   int[] thermalPixels = renderedImage.thermalPixelValues();
                    double averageTemp = 0;
                    double maxTemp = -99999;
                    double minTemp = 99999;
                    for (int i = 0; i < pixelsNum; i=i+20 ){
                           int pixelValue = (thermalPixels[i]);
                            averageTemp += (((double) pixelValue) - averageTemp) / ((double) i + 1);
                            if (pixelValue > maxTemp) {
                                maxTemp = pixelValue;
                            }
                            if (pixelValue < minTemp) {
                                minTemp = pixelValue;
                            }
                    }
                    double averageC = (averageTemp / 100) - 273.15 ;
                    double maxC = (maxTemp / 100) - 273.15 ;
                    double minC = (minTemp / 100) - 273.15 ;
                    NumberFormat numberFormat = NumberFormat.getInstance();
                    numberFormat.setMaximumFractionDigits(2);
                    numberFormat.setMinimumFractionDigits(2);
                    tmax = numberFormat.format(maxC);
                    tempInfo =  "平均~"  + numberFormat.format(averageC)+"˚C"+"\n"+
                                "最高~"  + numberFormat.format(maxC) + "˚C" + "\n"+
                                "最低~"  + numberFormat.format(minC)+"˚C";
                    final String spotMeterValue = tempInfo;
                    runOnUiThread(new Runnable() {
                        @Override<
                        public void run() {
                            ((TextView) findViewById(R.id.spotMeter)).setText(tempInfo);
                        }
                    })
                }
    	}
    

    Thank you,
    Jimmy

    • This reply was modified 2 years, 2 months ago by Profile photo of Jimmy Jimmy.
    • This reply was modified 2 years, 2 months ago by Profile photo of Jimmy Jimmy.
    • This reply was modified 2 years, 2 months ago by Profile photo of Jimmy Jimmy.

    #7296

    Profile photo of Allison
    Allison

    Moderator

    Hi Jimmy,

    It’s possible it could be due to some default settings in the camera, things like emissivity can affect how the camera reads temperature and it’s possible that MyFlir and FlirExample are setting it differently. I would try playing around with that setting using setEmissivity(float emissivity) as well as performing a tuning between readings in case any other initial settings between the two apps are leading to a need for calibration. I will continue to look into this to see if there are any other possible causes.

    Regarding the 60 °C issue, the device should be able to read 60 °C just fine there is no separate method needed. The only issue is if the device itself heats up to the point of being 60 °C. If the device is 60 °C then it will not operate properly and any readings it gives may be inaccurate.

    Thank you,
    Allison Torchia

    #7314

    Profile photo of Jimmy
    Jimmy

    Participant

    Hi Allison,

    This is my misunderstanding about the 60 °C issue.
    Appreciate your clear explain !

    In addition,
    I set MyFlir as below:
    Palette: Iron
    Emissivity: EMISSIVITY_SEMI_MATTE
    and set FlirExample to the same condition. ( please reference as below code )

    But the result was still different value after retested by hot water gain.
    (Max temperature MyFllir :87°C , FlirExample :79°C )
    Is the default setting(as below code) wrong in FlirExample ,so cause the different??
    Or were there other method which could solve this problem ??

    Setting:

            //RenderedImage.ImageType defaultImageType = RenderedImage.ImageType.BlendedMSXRGBA8888Image;
            defaultImageType = RenderedImage.ImageType.BlendedMSXRGBA8888Image;
    
            frameProcessor = new FrameProcessor(this, this, 
            EnumSet.of(RenderedImage.ImageType.ThermalRadiometricKelvinImage), true);
            frameProcessor.setGLOutputMode(defaultImageType);
            frameProcessor.setEmissivity(FrameProcessor.EMISSIVITY_SEMI_MATTE);//設定半霧面 發射率
            frameProcessor.setMSXDistance(1.0F);
            frameProcessor.setImagePalette(RenderedImage.Palette.Iron);
            frameProcessor.setVividIrEnabled(false);
    
            thermalSurfaceView = (GLSurfaceView) findViewById(R.id.FLIRimageView);
            thermalSurfaceView.setPreserveEGLContextOnPause(false);
            thermalSurfaceView.setEGLContextClientVersion(2); 
            thermalSurfaceView.setRenderer(frameProcessor); 
            thermalSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 
            thermalSurfaceView.setDebugFlags(GLSurfaceView.DEBUG_CHECK_GL_ERROR | 
            GLSurfaceView.DEBUG_LOG_GL_CALLS);
    

    Thanks,
    Jimmy

    #7407

    Profile photo of Allison
    Allison

    Moderator

    Hi Jimmy,

    I apologize for the delay. I’m still not certain what could be causing this issue, but I am continuing to look into possibilities. It should be noted that according to CAT “the temperature indicated by the Cat S60 is always a calculated estimate and cannot be taken as an exact measurement” This does not explain the difference, but it is something to keep in mind while using the thermal camera on the CAT S60.

    I will continue to try to figure out what is going on, it may be something with the way the temperature is calculated in the MyFlir is very different than in the example application.

    Thank you for your patience,
    Allison Torchia

    #7425

    Profile photo of Jimmy
    Jimmy

    Participant

    Hi, Allison
    Thank for your continuous assistance !
    If you have any new finding , please let me know .
    Otherwise, could we have sourecode or samplecode of MyFlir to renfer ?

    Thanks again,
    Jimmy

    • This reply was modified 2 years, 1 month ago by Profile photo of Jimmy Jimmy.

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.