Skip to content

Commit

Permalink
ASI Camera SDK 1.32 release (indilib#858)
Browse files Browse the repository at this point in the history
previous versions.

    1.32:
    New Features
      1. Can remember the last state of cooling camera's fan speed and LED
         state.
    Optimization
      1. ASI2600 linearity of image brightness in long exposure state.
      2. ASI120 Mini no longer supports overclocking feature.
      3. Maximum number of supported camera models changed to 256
    Bug fix
      1. In rare cases, two different ASI cameras are recognized as the same
         camera.
      2. ASI2600 has no image in high speed mode.
      3. GPS time of GPS cameras is inaccurate in individual cases.
      4. ASI664/ASI715 has no image under certain exposure times in hardware
         Bin2 state.
      5. ASI2600 drops frames in high speed mode when transmitting data via
         USB2.0.

    1.31:
    New Features
      1. Add ASI664MC,ASI715MC.
      2. Add fan speed control and LED light control for cooler cameras.
      3. For customized cameras, GPS functionality has been added.
    Bug fix
      1. fixed the bug of ASI220Mini's brightness on high gain.

    1.30:
    Bug fix
      1. Fix low frame rate problem in ASI462MM high-speed mode.
  • Loading branch information
jpaana authored Dec 2, 2023
1 parent f6cf88f commit 3fef15c
Show file tree
Hide file tree
Showing 9 changed files with 232 additions and 3 deletions.
37 changes: 37 additions & 0 deletions debian/libasi/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
libasi (1.32) jammy; urgency=medium

* ASI Camera SDK 1.32 release. Change log for this and couple of
previous versions.

1.32:
New Features
1. Can remember the last state of cooling camera's fan speed and LED
state.
Optimization
1. ASI2600 linearity of image brightness in long exposure state.
2. ASI120 Mini no longer supports overclocking feature.
3. Maximum number of supported camera models changed to 256
Bug fix
1. In rare cases, two different ASI cameras are recognized as the same
camera.
2. ASI2600 has no image in high speed mode.
3. GPS time of GPS cameras is inaccurate in individual cases.
4. ASI664/ASI715 has no image under certain exposure times in hardware
Bin2 state.
5. ASI2600 drops frames in high speed mode when transmitting data via
USB2.0.

1.31:
New Features
1. Add ASI664MC,ASI715MC.
2. Add fan speed control and LED light control for cooler cameras.
3. For customized cameras, GPS functionality has been added.
Bug fix
1. fixed the bug of ASI220Mini's brightness on high gain.

1.30:
Bug fix
1. Fix low frame rate problem in ASI462MM high-speed mode.

-- Jarno Paananen <[email protected]> Fri, 01 Dec 2023 22:00:46 +0200

libasi (1.31) jammy; urgency=medium

* ASI Camera SDK 1.31 release. No change log posted.
Expand Down
194 changes: 193 additions & 1 deletion libasi/ASICamera2.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ while(1)
#define ASICAMERA_API
#endif

#define ASICAMERA_ID_MAX 128
#define ASICAMERA_ID_MAX 256

typedef enum ASI_BAYER_PATTERN{
ASI_BAYER_RG=0,
Expand Down Expand Up @@ -665,6 +665,38 @@ ASI_ERROR_TIMEOUT: no image get and timeout
ASICAMERA_API ASI_ERROR_CODE ASIGetVideoData(int iCameraID, unsigned char* pBuffer, long lBuffSize, int iWaitms);


/***************************************************************************
Descriptions:
get data from the video buffer.the buffer is very small
you need to call this API as fast as possible, otherwise frame will be discarded
so the best way is maintain one buffer loop and call this API in a loop
please make sure the buffer size is biger enough to hold one image
otherwise the this API will crash
Paras:
int CameraID: this is get from the camera property use the API ASIGetCameraProperty
unsigned char* pBuffer, caller need to malloc the buffer, make sure the size is big enough
the size in byte:
8bit mono:width*height
16bit mono:width*height*2
RGB24:width*height*3
int iWaitms, this API will block and wait iWaitms to get one image. the unit is ms
-1 means wait forever. this value is recommend set to exposure*2+500ms
GPS_DATA *gpsData, if camera support GPS, the GPS data will pass to incomming parameter,
the GPS data struct is define at the top of this file.
return:
ASI_SUCCESS : Operation is successful
ASI_ERROR_CAMERA_CLOSED : camera didn't open
ASI_ERROR_INVALID_ID :no camera of this ID is connected or ID value is out of boundary
ASI_ERROR_TIMEOUT: no image get and timeout
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGetVideoDataGPS(int iCameraID, unsigned char* pBuffer, long lBuffSize, int iWaitms, ASI_GPS_DATA *gpsData);


/***************************************************************************
Descriptions:
PulseGuide of the ST4 port on. this function only work on the module which have ST4 port
Expand Down Expand Up @@ -779,6 +811,33 @@ ASI_ERROR_TIMEOUT: no image get and timeout
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGetDataAfterExp(int iCameraID, unsigned char* pBuffer, long lBuffSize);

/***************************************************************************
Descriptions:
get data after exposure.
please make sure the buffer size is biger enough to hold one image
otherwise the this API will crash
Paras:
int CameraID: this is get from the camera property use the API ASIGetCameraProperty
unsigned char* pBuffer, caller need to malloc the buffer, make sure the size is big enough
the size in byte:
8bit mono:width*height
16bit mono:width*height*2
RGB24:width*height*3
GPS_DATA *gpsData, if camera support GPS, the GPS data will pass to incomming parameter,
the GPS data struct is define at the top of this file.
return:
ASI_SUCCESS : Operation is successful
ASI_ERROR_CAMERA_CLOSED : camera didn't open
ASI_ERROR_INVALID_ID :no camera of this ID is connected or ID value is out of boundary
ASI_ERROR_TIMEOUT: no image get and timeout
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGetDataAfterExpGPS(int iCameraID, unsigned char* pBuffer, long lBuffSize, ASI_GPS_DATA *gpsData);

/***************************************************************************
Descriptions:
get camera id stored in flash, only available for USB3.0 camera
Expand Down Expand Up @@ -982,6 +1041,139 @@ ASI_ERROR_GPS_DATA_INVALID : GPS has not yet found the satellite or FPGA cannot
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGPSGetData(int iCameraID, ASI_GPS_DATA* startLineGPSData, ASI_GPS_DATA* endLineGPSData);


/***************************************************************************
Description:
Enable the debug log output
Paras:
int CameraID: this is get from the camera property use the API ASIGetCameraProperty.
ASI_BOOL bEnable: true to enable the log output and false to disable.
return:
ASI_SUCCESS : Operation is successful
ASI_ERROR_CAMERA_CLOSED : camera didn't open
ASI_ERROR_INVALID_ID :no camera of this ID is connected or ID value is out of boundary
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIEnableDebugLog(int iCameraID, ASI_BOOL bEnable);

/***************************************************************************
Description:
Get the status that if the debug log file output is enabled
Paras:
int CameraID: this is get from the camera property use the API ASIGetCameraProperty.
ASI_BOOL *bEnable: true if the log output is enabled and false if the log output is disabled.
return:
ASI_SUCCESS : Operation is successful
ASI_ERROR_CAMERA_CLOSED : camera didn't open
ASI_ERROR_INVALID_ID :no camera of this ID is connected or ID value is out of boundary
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGetDebugLogIsEnabled(int iCameraID, ASI_BOOL *bEnable);

//#define ASIPRODUCE //API for Produce. It needs to be commented out when it is released to the public
#ifdef ASIPRODUCE
//#define SEESTAR_PRODUCE //Only for Seestar production. If you want to release USB cameras' production SDK, please comment this Macro
ASICAMERA_API ASI_ERROR_CODE ASISaveHPCTable(int iCameraID, unsigned char *table, long len);
/***************************************************************************
Description:
Get the number of HPC
piVal: the number of HPC.
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIHPCNumber(int iCameraID, int* piVal);
/***************************************************************************
Description:
Get the HPC table. When you malloc the table, make sure the length is max_width * max_height / 8
table: the array which contains HPC table.
len: max_width * max_height / 8
Note: note that the HPC table you get is compressed.One byte contains 8 pixels.
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIGetHPCTable(int iCameraID, unsigned char* table, long len);
ASICAMERA_API ASI_ERROR_CODE ASIEnableHPC(int iCameraID, ASI_BOOL bVal);
ASICAMERA_API int ASIGetIDByIndex(int iCameraIndex);
/***************************************************************************
Description:
The sensor is set to output continuous gradient image to facilitate the detection of snowflake screen
bEnable: ASI_ TRUE means output continuous gradient image, ASI_ FALSE indicates the actual image
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIEnableSnowTest(int iCameraID, ASI_BOOL bEnable);
/***************************************************************************
Description:
Write sensor register directly. Used for ASIProduce only.
iAddr: the address of the register
iValue: the value to write to the register
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIWriteSonyReg(int iCameraID, unsigned short iAddr, unsigned char iValue);
/***************************************************************************
Description:
Read FPGA register directly. Used for ASIProduce only.
iAddr: the address of the register
iValue: the value read from the register
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIReadFPGAReg(int iCameraID, unsigned short iAddr, unsigned char* piValue);

/***************************************************************************
Description:
Read special register. Used for ASIProduce(Seestar) only.
iCmd: the cmd, for Seestar E-compass, it's 0xE8
iAddr: the address of the register, for Seestar E-compass, it's 0
iValue: the value read from the register, for Seestar E-compass, it's 0x0E48
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIReadSpecialReg(int iCameraID, unsigned char iCmd, unsigned short iAddr, unsigned short* piValue);

ASICAMERA_API int ASIGetPID(int iCameraID);

/***************************************************************************
Description:
Switch 2 group filter. Used for ASIProduce only.
group: the group of filter
val: left or right position
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIS50FilterSwitch(int iCameraID, int group, int val);

/***************************************************************************
Description:
Enable and disable heater of S50. Used for ASIProduce only.
val: enable or disable
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIS50Heater(int iCameraID, ASI_BOOL bEnable);

/***************************************************************************
Description:
Get the status of RA and DEC of S50. Used for ASIProduce only.
bRaEn: TRUE is block, FALSE is not block
bDecEn: TRUE is block, FALSE is not block
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASIS50RADECSensor(int iCameraID, ASI_BOOL* bRaEn, ASI_BOOL* bDecEn);

#endif // ASIPRODUCE

//#define INNER_TEST //Inner test£¬do not release to public. It must be commented before release
//#define SMLTEST //Test by SML. It must be commented before release

#ifdef INNER_TEST
/***************************************************************************
Description:
Set the Cooling Temperature parameters. Used for ASIProduce only.
nTempSegment: The separator temperature. When the temperature is higher than the separation point,
adopt faster cooling speed to improve efficiency. When the temperature is lower than the separation point,
use a slower speed to cool the camera to avoid fogging or icing.
nHighTempDurationSec: The cooling time from current temperature to separator temperature.
nLowTempDurationSec: The cooling time form separator temperature to target temperature.
***************************************************************************/
ASICAMERA_API ASI_ERROR_CODE ASISetTempControlValue(int iCameraID, int nTempSegment, int nHighTempDurationSec, int nLowTempDurationSec);
#endif // INNER_TEST


#ifdef __cplusplus
}
#endif
Expand Down
4 changes: 2 additions & 2 deletions libasi/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cmake_minimum_required (VERSION 3.0)
project (libasi)

# Using ASI Camera SDK Version 1.31 updated on 2023-10-28
# Using ASI Camera SDK Version 1.32 updated on 2023-12-01
# Using ASI EFW SDK Version 1.7 updated on 2021-05-17
# Using ASI ST4 SDK Version 1.0 updated on 2018-07-23
# Using ASI EAF SDK Version 1.6 updated on 2023-03-16

set (ASICAM_VERSION "1.31")
set (ASICAM_VERSION "1.32")
set (ASICAM_SOVERSION "1")

set (ASIEFW_VERSION "1.7")
Expand Down
Binary file modified libasi/armv6/libASICamera2.bin
Binary file not shown.
Binary file modified libasi/armv7/libASICamera2.bin
Binary file not shown.
Binary file modified libasi/armv8/libASICamera2.bin
Binary file not shown.
Binary file modified libasi/mac/libASICamera2.bin
Binary file not shown.
Binary file modified libasi/x64/libASICamera2.bin
Binary file not shown.
Binary file modified libasi/x86/libASICamera2.bin
Binary file not shown.

0 comments on commit 3fef15c

Please sign in to comment.