Created
January 15, 2023 10:03
-
-
Save franz-ms-muc/37adef87ab2e6fc72b777d7de2eeeaa3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
static int AppPoolSettings(const ISOVT_EVENT_DATA_T* psEvData) | |
{ | |
static iso_u8* pu8PoolData = 0; // Pointer to the pool data ( Attention: ) | |
static iso_u32 u32PoolSize = 0UL; | |
static uint16_t poolCrc = 0; | |
u32PoolSize = LoadPoolFromFile("/data/DefaultPool.iop", &pu8PoolData); | |
poolCrc = crc16_le(0, pu8PoolData, u32PoolSize); | |
iso_DebugPrint("LoadPoolFromFile (u32PoolSize = %d)\n", u32PoolSize); | |
//TODO do not crash if the File is not exist. | |
// Only if VT and VTC is Version 5 or higher 32 bytes are used else the first 7 bytes | |
iso_u8 abVersion1[] = "LOGXXXX"; // ISO version string | |
char buffer [5]; | |
snprintf(buffer, 5, "%.4X",poolCrc); | |
//we want to replace the XXXX with the CRC value: | |
abVersion1[3] = buffer[0]; | |
abVersion1[4] = buffer[1]; | |
abVersion1[5] = buffer[2]; | |
abVersion1[6] = buffer[3]; | |
//resulting Pool Label: | |
iso_DebugPrint("abVersion **resulting Pool Label *** (%s)\n", abVersion1); | |
iso_u16 u16SKM_Scal = 0u; | |
iso_u16 u16DM_Scal = 0u; // Scaling factor * 10000 | |
IsoVtcPoolLoad(psEvData->u8Instance, abVersion1, 80, 80, 480, // VTC instance, Version Label, SKM width and height, DM res. | |
PoolTransferFlash, pu8PoolData, u32PoolSize, 0UL, 0u, 0); // PoolAddress, PoolSize | |
u16DM_Scal = (iso_u16)IsoVtcPoolReadInfo(psEvData->u8Instance, PoolDataMaskScalFaktor); // Call only after PoolInit !! | |
u16SKM_Scal = (iso_u16)IsoVtcPoolReadInfo(psEvData->u8Instance, PoolSoftKeyMaskScalFaktor); | |
if (u16SKM_Scal <= 11111u && u16SKM_Scal >= 9000u ) //erst ab 111% saklieren, vorher nicht ... damit wird bei 80x80 und 72x72 nicht skaliert. | |
{ | |
u16SKM_Scal = ISO_FACTOR_ONE; | |
} | |
/* u16DM_Scal /= 2; | |
u16SKM_Scal /= 2;*/ | |
iso_DebugPrint("PoolDataMaskScalFaktor = %i", u16DM_Scal); | |
iso_DebugPrint("PoolSoftKeyMaskScalFaktor = %i", u16SKM_Scal); | |
// ------------------------------------------------------------------------------ | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 1000u, 1999u, u16DM_Scal, Scaling); // DataMask | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 2000u, 2999u, u16DM_Scal, Scaling); // AlarmMask | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 3000u, 3499u, u16DM_Scal, Scaling); // Container | |
// SoftKeyMask | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 6000u, 6999u, u16DM_Scal, Scaling); // Button | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 7000u, 7999u, u16DM_Scal, Scaling); // InputBoolean | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 8000u, 8999u, u16DM_Scal, Scaling); // InputString | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 9000u, 9999u, u16DM_Scal, Scaling); // InputNumber | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 10000u, 10999u, u16DM_Scal, Scaling); // InputList | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 11000u, 11499u, u16DM_Scal, Scaling); // OutputString | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 12000u, 12999u, u16DM_Scal, Scaling); // OutputNumber | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 13000u, 13499u, u16DM_Scal, Scaling); // Line | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 14000u, 14499u, u16DM_Scal, Scaling); // Rectangle | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 15000u, 15499u, u16DM_Scal, Scaling); // Ellipse | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 16000u, 16499u, u16DM_Scal, Scaling); // Polygon | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 17000u, 17499u, u16DM_Scal, Scaling); // Meter | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 18000u, 18499u, u16DM_Scal, Scaling); // LinearBargraph | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 19000u, 19499u, u16DM_Scal, Scaling); // ArchedBargraph | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 20000u, 20499u, u16DM_Scal, Scaling); // PictureGraphic | |
// ObjectPointer | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 23000u, 23499u, u16DM_Scal, Scaling); // FontAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 24000u, 24499u, u16DM_Scal, Scaling); // LineAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 25000u, 25499u, u16DM_Scal, Scaling); // FillAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 30000u, 30999u, u16DM_Scal, Scaling); // OutputList | |
/*HANDLE SOFTKEY MANIPULATION*/ | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 0u, 0u, u16SKM_Scal, Centering); // Working set object | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 3500u, 3999u, u16SKM_Scal, Scaling); // Container | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 5000u, 5999u, u16SKM_Scal, Centering); // Softkeys | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 11500u, 11999u, u16SKM_Scal, Scaling); // OutputString | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 13500u, 13999u, u16SKM_Scal, Scaling); // Line | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 14500u, 14999u, u16SKM_Scal, Scaling); // Rectangle | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 15500u, 15999u, u16SKM_Scal, Scaling); // Ellipse | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 16500u, 16999u, u16SKM_Scal, Scaling); // Polygon | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 20500u, 20999u, u16SKM_Scal, Scaling); // Working set bitmaps | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 23500u, 23999u, u16SKM_Scal, Scaling); // FontAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 24500u, 24900u, u16SKM_Scal, Scaling); // LineAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 25000u, 25499u, u16SKM_Scal, Scaling); // FillAttributes | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 29000u, 29999u, u16SKM_Scal, Centering); // Auxiliary function | |
iso_u16 value_of_VT_VERSIONNR = IsoVtcGetStatusInfo(psEvData->u8Instance, VT_VERSIONNR); | |
iso_DebugPrint("VT_VERSIONNR = %i", value_of_VT_VERSIONNR); | |
if (value_of_VT_VERSIONNR == VT_V2_FE) | |
{ | |
iso_DebugPrint("Transforming Auxiliary function Type 2 into Type 1"); | |
IsoVtcPoolSetIDRangeMode(psEvData->u8Instance, 29000, 29999, 0, AuxToV2); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment