I don't want to save just JPEG images. I want to access the 16-bits raw video data stream, but do it on Windows.
Anybody know how to do that?
Yes, I understand your problem, but there are two steps:
(1) USB communication with F1G2
(2) video stream in windows
I think, for solution of the first task the smaller jpg-version without V4L part is a good entry point.
There is no Click-To-Run solution for compiling the linux code in windows.
Have fun
Hi sonic,
good work
Do you know my posts about the SDK?
You can edit the sdk java files and also switch from cropped to full lepton resolution. Read this thread for more informations...I think you are the only one, who testing the Flir SDK.
Here you can download a working SDK sample with the extracted java.class (see my post above)
see path FLIROneSDKBundle\FLIRONEExampleApplication\app\src\main\java\com\flir\flironesdk\usb
have fun
http://www.file-upload.net/download-11040066/FLIROneSDKBundle04-Basis.zip.html
background:
http://stackoverflow.com/questions/21417419/how-to-convert-aar-to-jarQuoteAndroid Studio (version: 1.3.2) allows you to seamlessly access the .jar inside a .aar.
Bonus: it automatically decompiles the classes!
Simply follow these steps:
1. File > New > New Module > Import .JAR/.AAR Package to import you .aar as a module
2. Add the newly created module as a dependency to your main project (not sure if needed)
3. Right click on "classes.jar" as shown in the capture below, and click "Show in explorer". Here is your .jar.
next step:
Android Studio / File / Project Structur
Modules "app" / Dependencies / + "Module Dependency" and select FlirSDK
SDK without cropped images (full resolution 160x120):
change SDK path for CameraFiles from intern
/data/data/com.flir.flironeexampleapplication/files/CameraFiles
to extern
/sdcard/Android/data/com.flir.flironeexampleapplication/files/CameraFiles
by editing two code linesCode: [Select]\FLIROneSDKBundle\FLIRONEExampleApplication\app\src\main\java\com\flir>grep -r -n -A1 getFilesDir *
flironesdk/Device.java:213: //FrameProcessor.updateCameraFiles(zis, cachedContext.getFilesDir().getAbsolutePath() + File.separator);
flironesdk/Device.java-214- FrameProcessor.updateCameraFiles(zis, cachedContext.getExternalFilesDir(null).getAbsolutePath() + File.separator);
--
flironesdk/FrameProcessor.java:101: // String storagePath = context.getFilesDir().getAbsolutePath() + File.separator;
flironesdk/FrameProcessor.java-102- String storagePath = context.getExternalFilesDir(null).getAbsolutePath() + File.separator;
next step is avoid overwriting your file calib.rsc after starting the apk
edit the function updateCameraFiles() in file FrameProcessor.javaCode: [Select]static void updateCameraFiles(ZipInputStream zis, String storagePath)
simple delete
{
try
{
ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) {
File f = new File(storagePath + ze.getName());
if ((!f.exists())||(!ze.getName().endsWith( "calib.rsc")))
{
if (ze.isDirectory()) {
//File f = new File(storagePath + ze.getName());
if (!f.isDirectory()) {
f.mkdirs();
}
} else {
File parentDir = new File(storagePath + ze.getName()).getParentFile();
if (( null != parentDir) &&
(!parentDir.isDirectory())) {
parentDir.mkdirs();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(storagePath + ze.getName()));
byte[] bytesIn = new byte['?' ];
int read;
while ((read = zis.read(bytesIn)) != - 1) {
bos.write(bytesIn, 0, read);
}
zis.closeEntry();
bos.flush();
bos.close();
}
}
}
zis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
/sdcard/Android/data/com.flir.flironeexampleapplication/files/CameraFiles/system/calib.rsc
for getting a fresh version of the file from the FlirOne Flash
now you can edit your calib.rsc (without always overwriting with original file from your F1)
edit your calib.rsc to remove the crop factor by removing the .calib.lensCorr part
the crop factor is inside *.fff files, this files are not bad pixel map files (like Ex):Code: [Select].calib.lensCorr entry
.calib.lensCorr.ds_we_ap_fi_le index
.calib.lensCorr.ds_we_ap_fi_le.enabled bool true
.calib.lensCorr.ds_we_ap_fi_le.fileName text "ds_we_ap_fi_le_LCFMap.fff"
.calib.lensCorr.ds_we_ap_fi_le.rotation double 0.345
.calib.lensCorr.ds_we_ap_fi_le.type int32 100
.calib.lensCorr.ds_we_ap_fi_le.zoom double 7.69
.calib.lensCorr.ds_we_ap_fi_leExFOL2 index
.calib.lensCorr.ds_we_ap_fi_leExFOL2.enabled bool true
.calib.lensCorr.ds_we_ap_fi_leExFOL2.fileName text "ds_we_ap_fi_leExFOL2_LCFMap.fff"
.calib.lensCorr.ds_we_ap_fi_leExFOL2.rotation double 0.345
.calib.lensCorr.ds_we_ap_fi_leExFOL2.type int32 100
.calib.lensCorr.ds_we_ap_fi_leExFOL2.zoom double 7.69
calc a new checksum crcCode: [Select]// crc32 sample on bash command line
first try this steps with an original file
// count lines
$ wc -l calib.rsc
646 calib.rsc
//print last line
$ tail -n1 calib.rsc
# CRC32 4683a151
//calc a new crc32 for (n-1) lines
$ crc32 <(head -n 645 calib.rsc)
4683a151
inside the large E4 thread in this forum you find some more methods for calculating the Flir CRC
a hint: the FlirOne App from Play Store save the original CameraFiles also to the visible path:
/sdcard/Android/data/com.flir.flirone/files/
CameraFiles.zip
CameraFilesSimu.zip
Here you can always get an original (unpatched) CameraFiles.zip.
view my thermal gallery
https://www.eevblog.com/forum/testgear/flir-e4-thermal-imaging-camera-teardown/msg802245/#msg802245Flir One G2 Lepton 160x120 with hacked config file calib.rsc
I was able to recompile the example app from the sdk
I think you are the only one, who testing the Flir SDK.
Here you can download a working SDK sample with the extracted java.class (see my post above)
see path FLIROneSDKBundle\FLIRONEExampleApplication\app\src\main\java\com\flir\flironesdk\usb
have fun
http://www.file-upload.net/download-11040066/FLIROneSDKBundle04-Basis.zip.html
DO NOT USE THIS IF YOUR GOING TO USE GOOGLE PLAY!!!!!
THIS CODE JUT GOT ME IN BIG TROUBLE WITH GOOGLE
$ ./flir
Successfully find the Flir One G2 device
libusb_control_transfer(devh, DATA0: 80 06 00 01 00 00 12 00
DATA1: 12 01 00 02 00 00 00 40 cb 09 96 19 08 01 01 02 03 01
libusb_control_transfer(devh, DATA0: 80 06 00 02 00 00 09 00
DATA1: 09 02 60 00 03 03 04 c0 00
libusb_control_transfer(devh, DATA0: 80 06 00 02 00 00 60 00
DATA1: 09 02 60 00 03 03 04 c0 00 09 04 00 00 02 ff f0 00 05 07 05 81 02 00 02 00 07 05 02 02 00 02 01 09 04 01 01 00 ff f0 01 06 09 04 01 00 02 ff f0 01 06 07 05 83 02 00 02 00 07 05 04 02 00 02 01 09 04 02 01 00 ff f0 01 07 09 04 02 00 02 ff f0 01 07 07 05 85 02 00 02 00 07 05 06 02 00 02 01
libusb_get_string_descriptor langid=0x409
String descriptor 2: "FLIR ONE Camera"
String descriptor 1: "FLIR Systems"
String descriptor 3: "FLIRONEF03F8O0FAFFF"
Successfully set usb configuration 3
String descriptor 4: "SBIBDP Configuration"
String descriptor 5: "iAP Interface"
String descriptor 6: "com.flir.rosebud.fileio"
String descriptor 7: "com.flir.rosebud.frame"
Successfully claimed interface 0,1,2
stop interface 2 FRAME
stop interface 1 FILEIO
start interface 1 FILEIO
: Mon Dec 7 09:55:58 2015
Mon Dec 7 09:55:58 2015
>>>>>>>>>>>>>>>>>bulk transfer (in) 0x81: LIBUSB_ERROR_TIMEOUT
Mon Dec 7 09:55:59 2015
>>>>>>>>>>>>>>>>>bulk transfer (in) 0x83: LIBUSB_ERROR_OTHER
Mon Dec 7 09:56:00 2015
>>>>>>>>>>>>>>>>>bulk transfer (in) 0x85: LIBUSB_ERROR_IO
: Mon Dec 7 09:56:01 2015
bulk read EP 0x81, actual length 535
HEX:
cc 01 00 00 01 00 00 00 07 02 00 00 77 60 0c bd 7b 22 74 79 70 65 22 3a 22 73 6c 65 64 49 6e 66 6f 72 6d 61 74 69 6f 6e 22 2c 22 64 61 74 61 22 3a 7b 22 73 65 72 69 61 6c 4e 75 6d 62 65 72 42 6f 61 72 64 22 3a 22 46 30 33 46 38 4f 30 30 41 46 46 22 2c 22 70 61 72 74 4e 75 6d 62 65 72 42 6f 61 72 64 22 3a 22 32 31 32 30 30 31 36 30 32 30 31 22 2c 22 76 65 72 73 69 6f 6e 42 6f 61 72 64 22 3a 22 44 22 2c 22 73 65 72 69 61 6c 4e 75 6d 62 65 72 4c 65 70 74 6f 6e 22 3a 22 33 37 31 38 37 31 22 2c 22 76 65 72 73 69 6f 6e 4c 65 70 74 6f 6e 22 3a 22 33 2e 31 2e 34 36 22 2c 22 6c 65 70 74 6f 6e 51 52 22 3a 22 41 30 33 37 31 38 37 31 22 2c 22 76 65 72 73 69 6f 6e 52 6f 73 65 62 75 64 46 61 63 74 6f 72 79 45 53 57 22 3a 22 30 2e 34 2e 32 37 22 2c 22 76 65 72 73 69 6f 6e 52 6f 73 65 62 75 64 4f 70 65 72 61 74 69 6f 6e 61 6c 45 53 57 22 3a 22 30 2e 34 2e 32 37 22 2c 22 76 65 72 73 69 6f 6e 52 6f 73 65 62 75 64 55 70 64 61 74 65 72 45 53 57 22 3a 22 30 2e 34 2e 32 37 22 2c 22 76 65 72 73 69 6f 6e 52 6f 73 65 62 75 64 41 50 49 22 3a 22 6d 61 73 74 65 72 2e 30 31 35 65 64 65 34 22 2c 22 67 69 74 52 65 76 69 73 69 6f 6e 22 3a 22 6d 61 73 74 65 72 2e 30 31 35 65 64 65 34 22 2c 22 61 75 74 6f 6d 61 74 69 63 53 68 75 74 74 65 72 22 3a 22 59 22 2c 22 66 6f 72 6d 46 61 63 74 6f 72 22 3a 22 64 6f 6e 67 6c 65 22 2c 22 74 68 65 72 6d 61 6c 48 65 69 67 68 74 22 3a 22 31 32 30 22 2c 22 74 68 65 72 6d 61 6c 57 69 64 74 68 22 3a 22 31 36 30 22 2c 22 62 69 67 45 6e 64 69 61 6e 54 68 65 72 6d 61 6c 22 3a 22 30 22 2c 22 6f 70 65 72 61 74 69 6e 67 4d 6f 64 65 22 3a 22 6f 70 65 72 61 74 69 6f 6e 61 6c 22 7d 7d 00
STRING:
?w`?{"type":"sledInformation","data":{"serialNumberBoard":"F03F8O0FAFF","partNumberBoard":"21200161301","versionBoard":"D","serialNumberLepton":"371871","versionLepton":"3.1.46","leptonQR":"A0371871","versionRosebudFactoryESW":"0.4.27","versionRosebudOperationalESW":"0.4.27","versionRosebudUpdaterESW":"0.4.27","versionRosebudAPI":"master.015ede4","gitRevision":"master.015ede4","automaticShutter":"Y","formFactor":"dongle","thermalHeight":"120","thermalWidth":"160","bigEndianThermal":"0","operatingMode":"operational"}}
Mon Dec 7 09:56:01 2015
>>>>>>>>>>>>>>>>>bulk transfer (in) 0x85: LIBUSB_ERROR_PIPE
: Mon Dec 7 09:56:02 2015
bulk read EP 0x81, actual length 282
HEX:
cc 01 00 00 01 00 00 00 54 00 00 00 55 14 30 67 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 56 6f 6c 74 61 67 65 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 76 6f 6c 74 61 67 65 22 3a 33 2e 36 39 30 30 30 30 30 35 37 32 32 30 34 36 2c 22 70 65 72 63 65 6e 74 61 67 65 22 3a 31 31 7d 7d 00 cc 01 00 00 01 00 00 00 45 00 00 00 af 24 95 8f 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 43 68 61 72 67 69 6e 67 43 75 72 72 65 6e 74 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 63 68 61 72 67 69 6e 67 43 75 72 72 65 6e 74 22 3a 30 7d 7d 00 cc 01 00 00 01 00 00 00 51 00 00 00 67 e4 ee 50 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 43 68 61 72 67 69 6e 67 53 74 61 74 65 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 63 68 61 72 67 69 6e 67 53 74 61 74 65 22 3a 22 73 74 61 74 65 4e 6f 43 68 61 72 67 69 6e 67 22 7d 7d 00
STRING:
?TU0g{"type":"batteryVoltageUpdate","data":{"voltage":3.69000005722046,"percentage":11}}?E?$??{"type":"batteryChargingCurrentUpdate","data":{"chargingCurrent":0}}?Qg??P{"type":"batteryChargingStateUpdate","data":{"chargingState":"stateNoCharging"}}
ask for CameraFiles.zip on EP 0x83:
: Mon Dec 7 09:56:02 2015
To be sent Hexcode: 16 Bytes[ cc 01 00 00 01 00 00 00 41 00 00 00 f8 b3 f7 00 ]
Write successful!
To be sent: {"type":"openFile","data":{"mode":"r","path":"CameraFiles.zip"}}
Write successful!
Sent 65 bytes with string: {"type":"openFile","data":{"mode":"r","path":"CameraFiles.zip"}}
To be sent Hexcode: 16 Bytes[ cc 01 00 00 01 00 00 00 33 00 00 00 ef db c1 c1 ]
Write successful!
To be sent 51 Bytes: {"type":"readFile","data":{"streamIdentifier":10}}
Write successful!
Sent 51 bytes with string: {"type":"readFile","data":{"streamIdentifier":10}}
: Mon Dec 7 09:56:02 2015
: Mon Dec 7 09:56:02 2015
bulk read EP 0x81, actual length 16
HEX:
cc 01 00 00 01 00 00 00 5d 00 00 00 df 5b 38 1a
STRING:
?]?[8
: Mon Dec 7 09:56:02 2015
bulk read EP 0x81, actual length 93
HEX:
7b 22 74 79 70 65 22 3a 22 6f 70 65 6e 46 69 6c 65 53 74 61 74 75 73 22 2c 22 64 61 74 61 22 3a 7b 22 70 61 74 68 22 3a 22 43 61 6d 65 72 61 46 69 6c 65 73 2e 7a 69 70 22 2c 22 73 74 72 65 61 6d 49 64 65 6e 74 69 66 69 65 72 22 3a 31 31 2c 22 6d 6f 64 65 22 3a 22 72 22 7d 7d 00
STRING:
{"type":"openFileStatus","data":{"path":"CameraFiles.zip","streamIdentifier":11,"mode":"r"}}
: Mon Dec 7 09:56:04 2015
: Mon Dec 7 09:56:06 2015
bulk read EP 0x81, actual length 99
HEX:
cc 01 00 00 01 00 00 00 53 00 00 00 ec 2c e7 fa 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 56 6f 6c 74 61 67 65 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 76 6f 6c 74 61 67 65 22 3a 33 2e 36 38 30 30 30 30 30 36 36 37 35 37 32 2c 22 70 65 72 63 65 6e 74 61 67 65 22 3a 31 31 7d 7d 00
STRING:
?S?,??{"type":"batteryVoltageUpdate","data":{"voltage":3.6800000667572,"percentage":11}}
: Mon Dec 7 09:56:08 2015
bulk read EP 0x81, actual length 100
HEX:
cc 01 00 00 01 00 00 00 54 00 00 00 55 14 30 67 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 56 6f 6c 74 61 67 65 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 76 6f 6c 74 61 67 65 22 3a 33 2e 36 39 30 30 30 30 30 35 37 32 32 30 34 36 2c 22 70 65 72 63 65 6e 74 61 67 65 22 3a 31 31 7d 7d 00
STRING:
?TU0g{"type":"batteryVoltageUpdate","data":{"voltage":3.69000005722046,"percentage":11}}
: Mon Dec 7 09:56:12 2015
bulk read EP 0x81, actual length 99
HEX:
cc 01 00 00 01 00 00 00 53 00 00 00 ec 2c e7 fa 7b 22 74 79 70 65 22 3a 22 62 61 74 74 65 72 79 56 6f 6c 74 61 67 65 55 70 64 61 74 65 22 2c 22 64 61 74 61 22 3a 7b 22 76 6f 6c 74 61 67 65 22 3a 33 2e 36 38 30 30 30 30 30 36 36 37 35 37 32 2c 22 70 65 72 63 65 6e 74 61 67 65 22 3a 31 31 7d 7d 00
STRING:
?S?,??{"type":"batteryVoltageUpdate","data":{"voltage":3.6800000667572,"percentage":11}}
For Linux Mageia 5 the program is working. Data is accepted.
>grep -A4 bmRequestType f6c*
SETUP: 0.0
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0100 type (H) index (L)
4 wIndex 00
5 wLength 00
->DATA0: 80 06 00 01 00 00 40 00 dd 94
<-DATA1: 12 01 00 02 00 00 00 40 cb 09 96 19 08 01 01 02 03 01 ef bc
Device Descriptor result
Offset Field Value
0 bLength = 12
1 bDescriptorType = 01
2 bcdUSB = 0002
4 bDeviceClass = 00
5 bDeviceSubClass = 00
6 bDeviceProtocol = 00
7 bMaxPacketSize0 = 40
8 idVendor = cb09
10 idProduct = 9619
12 bcdDevice = 0801
14 iManufacturer = 01
15 iProduct = 01
16 iSerialNumber = 0203
17 bNumConfigurations = 01
--
SETUP: 0.0
0 bmRequestType = 00
1 bRequest = 05 SET_ADDRESS
2 wValue 004c 0x4c = 76
4 wIndex 00
5 wLength 00
DATA0: 00 05 4c 00 00 00 00 00 e4 f8
--
SETUP: 76.0
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0100 type (H) index (L)
4 wIndex 00
5 wLength 00
-> DATA0: 80 06 00 01 00 00 12 00 e0 f4
<- DATA1: 12 01 00 02 00 00 00 40 cb 09 96 19 08 01 01 02 03 01 ef bc
Device Descriptor result
Offset Field Value
0 bLength = 12
1 bDescriptorType = 01
2 bcdUSB = 0002
4 bDeviceClass = 00
5 bDeviceSubClass = 00
6 bDeviceProtocol = 00
7 bMaxPacketSize0 = 40
8 idVendor = cb09
10 idProduct = 9619
12 bcdDevice = 0801
14 iManufacturer = 01
15 iProduct = 01
16 iSerialNumber = 0203
17 bNumConfigurations = 01
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0002 type (H) index (L)
4 wIndex 00
5 wLength 00
-> DATA0: 80 06 00 02 00 00 09 00 ae 04
<- DATA1: 09 02 60 00 03 03 04 c0 00 2b 05
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0002 type (H) index (L)
4 wIndex 00
5 wLength 00
-> DATA0: 80 06 00 02 00 00 60 00 80 54
<- DATA1: 09 02 60 00 03 03 04 c0 00 09 04 00 00 02 ff f0 00 05 07 05 81 02 00 02 00 07 05 02 02 00 02 01 09 04 01 01 00 ff f0 01 06 09 04 01 00 02 ff f0 01 06 07 05 83 02 00 02 00 07 05 04 02 00 02 01 ca ae
<-DATA0: 09 04 02 01 00 ff f0 01 07 09 04 02 00 02 ff f0 01 07 07 05 85 02 00 02 00 07 05 06 02 00 02 01 a7 0d
DATA1: 09 02 60 00 03 03 04 c0 00 09 04 00 00 02 ff f0 00 05 07 05 81 02 00 02 00 07 05 02 02 00 02 01 09 04 01 01 00 ff f0 01 06 09 04 01 00 02 ff f0 01 06 07 05 83 02 00 02 00 07 05 04 02 00 02 01 09 04 02 01 00 ff f0 01 07 09 04 02 00 02 ff f0 01 07 07 05 85 02 00 02 00 07 05 06 02 00 02 01
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0300 type (H) index (L) type: String Descriptor (0x03) // http://www.beyondlogic.org/usbnutshell/usb5.shtml#StringDescriptors
4 wIndex 00
5 wLength 00
DATA0: 80 06 00 03 00 00 ff 00 d4 64
-> String Descriptor result
Offset Field Value
0 bLength = 04
1 bDescriptorType = 03
2 bString 0409
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0302 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 02 03 09 04 ff 00 97 db
-> String Descriptor result (FLIR ONE Camera)
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0301 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 01 03 09 04 ff 00 97 e8
-> String Descriptor result (FLIR SYSTEMS)
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0303 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 03 03 09 04 ff 00 96 0a
-> String Descriptor result (FLIRONEF03F6200xxxx)
--
0 bmRequestType = 00
1 bRequest = 09 SET_CONFIGURATION 03
2 wValue 0003 type (H) index (L)
4 wIndex 00
5 wLength 00
DATA0: 00 09 03 00 00 00 00 00 26 c7
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0304 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 04 03 09 04 ff 00 97 bd
-> String Descriptor result (SBI BDP Configuration)
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0305 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 05 03 09 04 ff 00 96 6c
-> String Descriptor result (iAP Interface)
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0306 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 06 03 09 04 ff 00 96 5f
-> String Descriptor result (com.flir.rosebud.fileio)
--
0 bmRequestType = 80
1 bRequest = 06 GET_DESCRIPTOR
2 wValue 0307 type (H) index (L)
4 wIndex 09
5 wLength 04
DATA0: 80 06 07 03 09 04 ff 00 97 8e
-> String Descriptor result (com.flir.rosebud.frame)
--
0 bmRequestType = 01
1 bRequest = 0b SET_INTERFACE
2 wValue 0000 type (H) index (L) Alternate Setting 0
4 wIndex 02 Interface 2
5 wLength 00
DATA0: 01 0b 00 00 02 00 00 00 c5 40
--
0 bmRequestType = 01
1 bRequest = 0b SET_INTERFACE
2 wValue 0000 type (H) index (L) Alternate Setting 0
4 wIndex 01 Interface 1
5 wLength 00
DATA0: 01 0b 00 00 01 00 00 00 c5 04
--
0 bmRequestType = 01
1 bRequest = 0b SET_INTERFACE
2 wValue 0001 type (H) index (L) Alternate Setting 1
4 wIndex 01 Interface 1
5 wLength 00
DATA0: 01 0b 01 00 01 00 00 00 c4 d5
--
[ ] 3.045669 d= 0.000001 [ 4.1 + 96.633] [ 3] IN : 78.1
[ ] 3.045669 d= 0.000001 [ 4.1 + 97.150] [515] DATA0: cc 01 00 00 01 00 00 00 07 02 00 00 77 60 0c bd 7b 22 74 79 70 65 22 3a 22 73 6c 65 64 ......
{"type":"sledInformation","data":{"serialNumberBoard":"F03F6200571","partNumberBoard":"21200160201","versionBoard":"C","serialNumberLepton":"355692","versionLepton":"3.1.45","leptonQR":"A0355692","versionRosebudFactoryESW":"0.4.25","versionRosebudOperationalESW":"0.4.26","versionRosebudUpdaterESW":"0.4.26","versionRosebudAPI":"master.26498f5","gitRevision":"master.26498f5","automaticShutter":"Y","formFactor":"dongle","thermalHeight":"120","thermalWidth":"160","bigEndianThermal":"0","operatinw
[ ] 3.045741 d= 0.000001 [ 4.2 + 44.367] [ 3] IN : 78.1
[ ] 3.045742 d= 0.000001 [ 4.2 + 44.883] [ 26] DATA1: 67 4d 6f 64 65 22 3a 22 6f 70 65 72 61 74 69 6f 6e 61 6c 22 7d 7d 00 63 74
gMode":"operational"}}
[ ] 3.152582 d= 0.000000 [111.1 + 1.867] [ 3] OUT : 78.2
[ ] 3.152583 d= 0.000000 [111.1 + 2.267] [ 19] DATA0: cc 01 00 00 01 00 00 00 41 00 00 00 f8 b3 f7 00 6b d2
[ ] 3.153468 d= 0.000001 [112.0 + 12.600] [ 3] OUT : 78.2
[ ] 3.153468 d= 0.000000 [112.0 + 13.000] [ 68] DATA1: 7b 22 74 79 70 65 22 3a 22 6f 70 65 6e 46 69 6c 65 22 2c 22 64 61 74 61 22 3a 7b 22 6d 6f 64 65 22 3a 22 72 22 2c 22 70 61 74 68 22 3a 22 43 61 6d 65 72 61 46 69 6c 65 73 2e 7a 69 70 22 7d 7d 00 9c 80
{"type":"openFile","data":{"mode":"r","path":"CameraFiles.zip"}}
[ ] 3.159050 d= 0.000001 [117.4 + 94.250] [ 3] OUT : 78.2
[ ] 3.159051 d= 0.000000 [117.4 + 94.650] [ 19] DATA0: cc 01 00 00 01 00 00 00 33 00 00 00 ef db c1 c1 bf 77
[ ] 3.159582 d= 0.000018 [118.1 + 0.933] [ 3] OUT : 78.2
[ ] 3.159582 d= 0.000000 [118.1 + 1.333] [ 54] DATA1: 7b 22 74 79 70 65 22 3a 22 72 65 61 64 46 69 6c 65 22 2c 22 64 61 74 61 22 3a 7b 22 73 74 72 65 61 6d 49 64 65 6e 74 69 66 69 65 72 22 3a 31 30 7d 7d 00 a1 23
{"type":"readFile","data":{"streamIdentifier":10}}
[ ] 3.162183 d= 0.000001 [120.5 +102.317] [ 3] IN : 78.3
[ ] 3.162184 d= 0.000001 [120.5 +102.833] [ 27] DATA0: 10 55 00 00 01 00 00 00 b7 1a 00 00 0a 00 00 00 00 99 9d 5d 2c 91 a3 df 5e 15
[ ] 3.166051 d= 0.000001 [124.4 + 94.367] [ 3] IN : 78.3
[ ] 3.166051 d= 0.000001 [124.4 + 94.883] [515] DATA1: 50 4b 03 04 14 00 08 08 08 00 77 7b 15 47 00.....
PK zip Datei
[ ] 3.166095 d= 0.000001 [124.5 + 13.167] [ 3] IN : 78.3
[ ] 3.166095 d= 0.000001 [124.5 + 13.683] [515] DATA0: 9b e6 28 68 48 b6 71 d0 9a b1 8d 84 ......
usw
----
[ ] 3.171615 d= 0.000001 [130.1 + 33.617] [ 3] OUT : 78.2
[ ] 3.171616 d= 0.000000 [130.1 + 34.017] [ 19] DATA0: cc 01 00 00 01 00 00 00 33 00 00 00 ef db c1 c1 bf 77
[ ] 3.172186 d= 0.000001 [130.5 +103.600] [ 3] OUT : 78.2
[ ] 3.172186 d= 0.000000 [130.5 +104.000] [ 54] DATA1: 7b 22 74 79 70 65 22 3a 22 72 65 61 64 46 69 6c 65 22 2c 22 64 61 74 61 22 3a 7b 22 73 74 72 65 61 6d 49 64 65 6e 74 69 66 69 65 72 22 3a 31 30 7d 7d 00 a1 23
{"type":"readFile","data":{"streamIdentifier":10}}
[ ] 3.172642 d= 0.000000 [131.1 + 60.300] [ 3] IN : 78.3
[ ] 3.172643 d= 0.000001 [131.1 + 60.833] [ 27] DATA1: 10 55 00 00 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 69 e7 7b b0 e5 eb
SDK App sendet keine 2. Anfrage, Rückmeldung ggf für empty
--
0 bmRequestType = 01
1 bRequest = 0b SET_INTERFACE
2 wValue 0001 type (H) index (L) Alternate Setting 1
4 wIndex 02 Interface 2
5 wLength 00
--
[ ] 3.232393 d= 0.000001 [190.7 + 56.067] [ 3] OUT : 78.2
[ ] 3.232393 d= 0.000000 [190.7 + 56.467] [ 65] DATA1: 7b 22 74 79 70 65 22 3a 22 73 65 74 4f 70 74 69 6f 6e 22 2c 22 64 61 74 61 22 3a 7b 22 6f 70 74 69 6f 6e 22 3a 22 61 75 74 6f 46 46 43 22 2c 22 76 61 6c 75 65 22 3a 74 72 75 65 7d 7d 00 3e 5b
{"type":"setOption","data":{"option":"autoFFC","value":true}}0x00
[ ] 3.233349 d= 0.000001 [191.7 + 12.633] [ 3] IN : 78.1
[ ] 3.233350 d= 0.000001 [191.7 + 13.150] [ 85] DATA0: cc 01 00 00 01 00 00 00 42 00 00 00 16 1c 42 12 7b 22 74 79 70 65 22 3a 22 73 65 74 4f 70 74 69 6f 6e 53 74 61 74 75 73 22 2c 22 64 61 74 61 22 3a 7b 22 6f 70 74 69 6f 6e 22 3a 22 61 75 74 6f 46 46 43 22 2c 22 76 61 6c 75 65 22 3a 2d 31 7d 7d 00 89 bd
{"type":"setOptionStatus","data":{"option":"autoFFC","value":-1}}
// anderer Mitschnitt
[ ] 20.832630 d= 0.000018 [231.5 + 0.933] [ 3] OUT : 89.2
[ ] 20.832630 d= 0.000000 [231.5 + 1.333] [ 65] DATA1: 7b 22 74 79 70 65 22 3a 22 73 65 74 4f 70 74 69 6f 6e 22 2c 22 64 61 74 61 22 3a 7b 22 6f 70 74 69 6f 6e 22 3a 22 61 75 74 6f 46 46 43 22 2c 22 76 61 6c 75 65 22 3a 74 72 75 65 7d 7d 00 3e 5b
{"type":"setOption","data":{"option":"autoFFC","value":true}}
[ ] 21.627581 d= 0.000001 [ 2.4 + 14.133] [ 3] IN : 89.1
[ ] 21.627582 d= 0.000001 [ 2.4 + 14.650] [ 87] DATA1: cc 01 00 00 01 00 00 00 44 00 00 00 ca 43 29 37 7b 22 74 79 70 65 22 3a 22 73 65 74 4f 70 74 69 6f 6e 53 74 61 74 75 73 22 2c 22 64 61 74 61 22 3a 7b 22 6f 70 74 69 6f 6e 22 3a 22 61 75 74 6f 46 46 43 22 2c 22 76 61 6c 75 65 22 3a 74 72 75 65 7d 7d 00 ab 6b
{"type":"setOptionStatus","data":{"option":"autoFFC","value":true}}
[ ] 21.637696 d= 0.000001 [ 12.5 + 2.967] [ 3] IN : 89.5
[ ] 21.637697 d= 0.000000 [ 12.5 + 3.467] [515] DATA0: ef be 00 00 01 00 00 00 19 25 02 00 ac 9b 00 00 c8 88 01 00 a5 00 00 00 16 bb 99 10 00 50 7e 7c 9f 09 98 09 b7 09 c8 09 c6 09 c5 09 d4 09 d6 09 de 09 ee 09 ee 09 ff 09 02 0a 09 0a 1b 0a 0a 0a 1f 0a 29 0a 22 0a 29 0a 29 0a 33 0a 2b 0a 39 0a 2f 0a 40 0a 37 0a 40 0a 53 0a 48 0a 47 0a 49 0a 57 0a 53 0a 55 0a 5c 0a 57 0a 5c 0a 5e 0a 6e 0a 6a 0a 6d 0a 67 0a 71 0a 73 0a 67 0a 6f 0a 6d 0a 76 0a 72 0a 6c 0a 77 0a 76 0a 7c 0a 77 0a 77 0a 7a 0a 76 0a 77 0a 7e 0a 82 0a 7e 0a 8d 0a 88 0a 8d 0a 8e 0a 85 0a 7c 0a 8f 0a 8f 0a 8b 0a 82 0a 85 0a 8c 0a 8d 0a 93 0a 8c 0a 7c 0a 8e 0a 91 0a 01 00 a6 66 94 0a 8b 0a 8e 0a 95 0a 8c 0a 93 0a 8b 0a 9a 0a 91 0a 8c 0a 89 0a 8f 0a 8b 0a 8e 0a 99 0a 8b 0a 8b 0a 8a 0a 84 0a 90 0a 82 0a 8b 0a 82 0a 83 0a 83 0a 81 0a 85 0a 75 0a 80 0a 76 0a 73 0a 83 0a 74 0a 81 0a 7d 0a 72 0a 6a 0a 65 0a 75 0a 6c 0a 63 0a 71 0a 67 0a 61 0a 65 0a 5f 0a 61 0a 60 0a 5d 0a 55 0a 55 0a 56 0a 48 0a 46 0a 3f 0a 36 0a 41 0a 42 0a 27 0a 2d 0a 22 0a 2c 0a 31 0a 25 0a 1c 0a 27 0a 18 0a 1c 0a 1a 0a 17 0a 14 0a 06 0a fc 09 f8 09 0b 0a f2 09 eb 09 e7 09 dc 09 d6 09 02 00 f8 6c b2 09 c1 09 cc 09 d0 09 cd 09 da 09 e3 09 f2 09 f1 09 03 0a 04 0a 0b 0a 09 0a 17 0a 23 0a 1a 0a 30 0a 38 0a 37 0a 38 0a 35 0a 43 0a 39 0a 43 0a 41 0a 4b 0a 4c 0a 46 0a 50 0a 4c 0a 56 0a 57 0a 59 0a 6c 0a 6f 0a 5d 0a 6b 0a 66 0a 6a 0a 71 0a 71 0a 77 0a 7d 0a 7f 0a 77 0a 7b 0a 7b 0a 79 0a 82 0a 86 0a 80 0a 7a 0a 7d 0a 88 0a 7e 0a 7f 0a 84 0a 86 0a 89 0a 84 0a 8c 0a 87 0a 87 0a 96 0a 96 0a 95 0a 8c 0a 99 0a 8a 0a 9b 0a 8f 0a 8c 0a 96 0a 92 0a 88 0a 9f 0a 8e a2
RAW Daten
It goes on and on and on from here.
Maybe there is an error in windows libusb.
happy our, on my Raspberry Pi the code also runs fine
I worked the last two weeks at wrong computers
It is interesting how RAW14 is recalculated in temperature. In the datasheet, I did not find it...
// Get current measurement parameters
PvGenFloat *lR = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "R" ) );
PvGenFloat *lB = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "B" ) );
PvGenFloat *lF = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "F" ) );
// Get gain (J1) and offset (J0)
PvGenInteger *lJ0 = dynamic_cast<PvGenInteger *>( lGenDevice->Get( "J0" ) );
PvGenFloat *lJ1 = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "J1" ) );
// Get spectral response
PvGenFloat *lX = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "X" ) );
PvGenFloat *la1 = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "alpha1" ) );
PvGenFloat *la2 = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "alpha2" ) );
PvGenFloat *lb1 = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "beta1" ) );
PvGenFloat *lb2 = dynamic_cast<PvGenFloat *>( lGenDevice->Get( "beta2" ) );
CTemperature PvSimpleUISampleDlg::imgToTemp(long lPixval)
{
double tmp;
CTemperature K;
tmp = imgToPow(lPixval);
//tmp = clipPow(tmp,pValState);
tmp = powToObjSig(tmp);
K = objSigToTemp(tmp);
return (K);
}