Refs #593. Merged branch with support for high ping firmware updates via TCP/IP back into the trunk.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@579 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2018-08-03 12:40:47 +00:00
parent d407f9b365
commit 8904af6a8b
15 changed files with 175 additions and 121 deletions

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "BootCommander - Reference Manual"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 1.4.0 PROJECT_NUMBER = 1.4.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a

View File

@ -38,7 +38,7 @@ PROJECT_NAME = "OpenBLT Host Library - Reference Manual"
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 1.3.1 PROJECT_NUMBER = 1.3.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a

View File

@ -268,7 +268,8 @@ int main(int argc, char const * const argv[])
{ {
printf("[" OUTPUT_YELLOW "TIMEOUT" OUTPUT_RESET "]\n"); printf("[" OUTPUT_YELLOW "TIMEOUT" OUTPUT_RESET "]\n");
/* No response. Prompt the user to reset the system. */ /* No response. Prompt the user to reset the system. */
printf("Reset target system..."); (void)fflush(stdout); printf("Attempting backdoor entry (reset system if this takes too long)...");
(void)fflush(stdout);
/* Now keep trying until we get a response. */ /* Now keep trying until we get a response. */
while (BltSessionStart() != BLT_RESULT_OK) while (BltSessionStart() != BLT_RESULT_OK)
{ {
@ -471,8 +472,8 @@ int main(int argc, char const * const argv[])
static void DisplayProgramInfo(void) static void DisplayProgramInfo(void)
{ {
printf("--------------------------------------------------------------------------\n"); printf("--------------------------------------------------------------------------\n");
printf("BootCommander version 1.04. Performs firmware updates on a microcontroller\n"); printf("BootCommander version 1.04.01. Performs firmware updates on a micro-\n");
printf("based system that runs the OpenBLT bootloader.\n\n"); printf("controller based system that runs the OpenBLT bootloader.\n\n");
printf("Copyright (c) 2017 by Feaser http://www.feaser.com\n"); printf("Copyright (c) 2017 by Feaser http://www.feaser.com\n");
printf("-------------------------------------------------------------------------\n"); printf("-------------------------------------------------------------------------\n");
} /*** end of DisplayProgramInfo ***/ } /*** end of DisplayProgramInfo ***/
@ -507,6 +508,8 @@ static void DisplayProgramUsage(void)
printf(" value (Default = 10000 ms).\n"); printf(" value (Default = 10000 ms).\n");
printf(" -t5=[timeout] Program memory and target reset timeout in milli-\n"); printf(" -t5=[timeout] Program memory and target reset timeout in milli-\n");
printf(" seconds as a 16-bit value (Default = 1000 ms).\n"); printf(" seconds as a 16-bit value (Default = 1000 ms).\n");
printf(" -t6=[timeout] Connect response timeout in milliseconds as a 16-bit\n");
printf(" value (Default = 50 ms).\n");
printf(" -t7=[timeout] Busy wait timer timeout in milliseconds as a 16-bit\n"); printf(" -t7=[timeout] Busy wait timer timeout in milliseconds as a 16-bit\n");
printf(" value (Default = 2000 ms).\n"); printf(" value (Default = 2000 ms).\n");
printf(" -sk=[file] Seed/key algorithm library filename (Optional).\n"); printf(" -sk=[file] Seed/key algorithm library filename (Optional).\n");
@ -607,6 +610,7 @@ static void DisplaySessionInfo(uint32_t sessionType, void const * sessionSetting
printf(" -> Timeout T3: %hu ms\n", xcpSettings->timeoutT3); printf(" -> Timeout T3: %hu ms\n", xcpSettings->timeoutT3);
printf(" -> Timeout T4: %hu ms\n", xcpSettings->timeoutT4); printf(" -> Timeout T4: %hu ms\n", xcpSettings->timeoutT4);
printf(" -> Timeout T5: %hu ms\n", xcpSettings->timeoutT5); printf(" -> Timeout T5: %hu ms\n", xcpSettings->timeoutT5);
printf(" -> Timeout T6: %hu ms\n", xcpSettings->timeoutT6);
printf(" -> Timeout T7: %hu ms\n", xcpSettings->timeoutT7); printf(" -> Timeout T7: %hu ms\n", xcpSettings->timeoutT7);
printf(" -> Seed/Key file: "); printf(" -> Seed/Key file: ");
if (xcpSettings->seedKeyFile != NULL) if (xcpSettings->seedKeyFile != NULL)
@ -925,6 +929,7 @@ static void * ExtractSessionSettingsFromCommandLine(int argc, char const * const
* -t3=[timeout] -> Start programming timeout in milliseconds. * -t3=[timeout] -> Start programming timeout in milliseconds.
* -t4=[timeout] -> Erase memory timeout in milliseconds. * -t4=[timeout] -> Erase memory timeout in milliseconds.
* -t5=[timeout] -> Program memory and reset timeout in milliseconds. * -t5=[timeout] -> Program memory and reset timeout in milliseconds.
* -t6=[timeout] -> Connect response timeout in milliseconds.
* -t7=[timeout] -> Busy wait timer timeout in milliseconds. * -t7=[timeout] -> Busy wait timer timeout in milliseconds.
* -sk=[file] -> Seed/key algorithm library filename. * -sk=[file] -> Seed/key algorithm library filename.
* -cm=[value] -> Connection mode parameter in XCP connect command. * -cm=[value] -> Connection mode parameter in XCP connect command.
@ -941,6 +946,7 @@ static void * ExtractSessionSettingsFromCommandLine(int argc, char const * const
xcpSettings->timeoutT3 = 2000; xcpSettings->timeoutT3 = 2000;
xcpSettings->timeoutT4 = 10000; xcpSettings->timeoutT4 = 10000;
xcpSettings->timeoutT5 = 1000; xcpSettings->timeoutT5 = 1000;
xcpSettings->timeoutT6 = 50;
xcpSettings->timeoutT7 = 2000; xcpSettings->timeoutT7 = 2000;
xcpSettings->seedKeyFile = NULL; xcpSettings->seedKeyFile = NULL;
xcpSettings->connectMode = 0; xcpSettings->connectMode = 0;
@ -985,6 +991,15 @@ static void * ExtractSessionSettingsFromCommandLine(int argc, char const * const
/* Continue with next loop iteration. */ /* Continue with next loop iteration. */
continue; continue;
} }
/* Is this the -t6=[timeout] parameter? */
if ( (strstr(argv[paramIdx], "-t6=") != NULL) &&
(strlen(argv[paramIdx]) > 4) )
{
/* Extract the timeout value. */
sscanf(&argv[paramIdx][4], "%hu", &(xcpSettings->timeoutT6));
/* Continue with next loop iteration. */
continue;
}
/* Is this the -t7=[timeout] parameter? */ /* Is this the -t7=[timeout] parameter? */
if ( (strstr(argv[paramIdx], "-t7=") != NULL) && if ( (strstr(argv[paramIdx], "-t7=") != NULL) &&
(strlen(argv[paramIdx]) > 4) ) (strlen(argv[paramIdx]) > 4) )

View File

@ -86,6 +86,7 @@ type
timeoutT3: Word; // Start programming timeout in milliseconds. timeoutT3: Word; // Start programming timeout in milliseconds.
timeoutT4: Word; // Erase memory timeout in milliseonds. timeoutT4: Word; // Erase memory timeout in milliseonds.
timeoutT5: Word; // Program memory and reset timeout in milliseonds. timeoutT5: Word; // Program memory and reset timeout in milliseonds.
timeoutT6: Word; // Connect response timeout in milliseonds.
timeoutT7: Word; // Busy wait timer timeout in milliseonds. timeoutT7: Word; // Busy wait timer timeout in milliseonds.
seedKeyFile: PAnsiChar; // Seed/key algorithm library filename. seedKeyFile: PAnsiChar; // Seed/key algorithm library filename.
connectMode: Byte; // Connection mode parameter in XCP connect command. connectMode: Byte; // Connection mode parameter in XCP connect command.

View File

@ -834,6 +834,7 @@ class BltSessionSettingsXcpV10:
self.timeoutT3 = 2000 # Start programming timeout in milliseconds. self.timeoutT3 = 2000 # Start programming timeout in milliseconds.
self.timeoutT4 = 10000 # Erase memory timeout in milliseonds. self.timeoutT4 = 10000 # Erase memory timeout in milliseonds.
self.timeoutT5 = 1000 # Program memory and reset timeout in milliseconds. self.timeoutT5 = 1000 # Program memory and reset timeout in milliseconds.
self.timeoutT6 = 50 # Command response timeout in milliseconds.
self.timeoutT7 = 2000 # Busy wait timer timeout in milliseconds. self.timeoutT7 = 2000 # Busy wait timer timeout in milliseconds.
self.seedKeyFile = '' # Seed/key algorithm library filename. self.seedKeyFile = '' # Seed/key algorithm library filename.
self.connectMode = 0 # Connection mode parameter in XCP connect command. self.connectMode = 0 # Connection mode parameter in XCP connect command.
@ -929,6 +930,7 @@ def session_init(session_type, session_settings, transport_type, transport_setti
session_settings.timeoutT3 = 2000 session_settings.timeoutT3 = 2000
session_settings.timeoutT4 = 10000 session_settings.timeoutT4 = 10000
session_settings.timeoutT5 = 1000 session_settings.timeoutT5 = 1000
session_settings.timeoutT6 = 50
session_settings.timeoutT7 = 2000 session_settings.timeoutT7 = 2000
session_settings.seedKeyFile = '' session_settings.seedKeyFile = ''
session_settings.connectMode = 0 session_settings.connectMode = 0
@ -947,6 +949,7 @@ def session_init(session_type, session_settings, transport_type, transport_setti
('timeoutT3', ctypes.c_uint16), ('timeoutT3', ctypes.c_uint16),
('timeoutT4', ctypes.c_uint16), ('timeoutT4', ctypes.c_uint16),
('timeoutT5', ctypes.c_uint16), ('timeoutT5', ctypes.c_uint16),
('timeoutT6', ctypes.c_uint16),
('timeoutT7', ctypes.c_uint16), ('timeoutT7', ctypes.c_uint16),
('seedKeyFile', ctypes.c_char_p), ('seedKeyFile', ctypes.c_char_p),
('connectMode', ctypes.c_uint8)] ('connectMode', ctypes.c_uint8)]
@ -984,6 +987,7 @@ def session_init(session_type, session_settings, transport_type, transport_setti
session_settings_struct.timeoutT3 = ctypes.c_uint16(session_settings.timeoutT3) session_settings_struct.timeoutT3 = ctypes.c_uint16(session_settings.timeoutT3)
session_settings_struct.timeoutT4 = ctypes.c_uint16(session_settings.timeoutT4) session_settings_struct.timeoutT4 = ctypes.c_uint16(session_settings.timeoutT4)
session_settings_struct.timeoutT5 = ctypes.c_uint16(session_settings.timeoutT5) session_settings_struct.timeoutT5 = ctypes.c_uint16(session_settings.timeoutT5)
session_settings_struct.timeoutT6 = ctypes.c_uint16(session_settings.timeoutT6)
session_settings_struct.timeoutT7 = ctypes.c_uint16(session_settings.timeoutT7) session_settings_struct.timeoutT7 = ctypes.c_uint16(session_settings.timeoutT7)
session_settings_struct.seedKeyFile = \ session_settings_struct.seedKeyFile = \
ctypes.c_char_p(session_settings.seedKeyFile.encode('utf-8')) ctypes.c_char_p(session_settings.seedKeyFile.encode('utf-8'))

View File

@ -51,10 +51,10 @@
* for major-, minor-, and patch-version. Version 1.05.12 would for example be * for major-, minor-, and patch-version. Version 1.05.12 would for example be
* 10512. * 10512.
*/ */
#define BLT_VERSION_NUMBER (10301u) #define BLT_VERSION_NUMBER (10302u)
/** \brief The version number of the library as a null-terminated string. */ /** \brief The version number of the library as a null-terminated string. */
#define BLT_VERSION_STRING "1.03.01" #define BLT_VERSION_STRING "1.03.02"
/**************************************************************************************** /****************************************************************************************
@ -140,6 +140,7 @@ LIBOPENBLT_EXPORT void BltSessionInit(uint32_t sessionType,
xcpLoaderSettings.timeoutT3 = bltSessionSettingsXcpV10Ptr->timeoutT3; xcpLoaderSettings.timeoutT3 = bltSessionSettingsXcpV10Ptr->timeoutT3;
xcpLoaderSettings.timeoutT4 = bltSessionSettingsXcpV10Ptr->timeoutT4; xcpLoaderSettings.timeoutT4 = bltSessionSettingsXcpV10Ptr->timeoutT4;
xcpLoaderSettings.timeoutT5 = bltSessionSettingsXcpV10Ptr->timeoutT5; xcpLoaderSettings.timeoutT5 = bltSessionSettingsXcpV10Ptr->timeoutT5;
xcpLoaderSettings.timeoutT6 = bltSessionSettingsXcpV10Ptr->timeoutT6;
xcpLoaderSettings.timeoutT7 = bltSessionSettingsXcpV10Ptr->timeoutT7; xcpLoaderSettings.timeoutT7 = bltSessionSettingsXcpV10Ptr->timeoutT7;
xcpLoaderSettings.seedKeyFile = bltSessionSettingsXcpV10Ptr->seedKeyFile; xcpLoaderSettings.seedKeyFile = bltSessionSettingsXcpV10Ptr->seedKeyFile;
xcpLoaderSettings.connectMode = bltSessionSettingsXcpV10Ptr->connectMode; xcpLoaderSettings.connectMode = bltSessionSettingsXcpV10Ptr->connectMode;

View File

@ -124,6 +124,7 @@ typedef struct t_blt_session_settings_xcp_v10
uint16_t timeoutT3; /**< Start programming timeout in milliseconds. */ uint16_t timeoutT3; /**< Start programming timeout in milliseconds. */
uint16_t timeoutT4; /**< Erase memory timeout in milliseconds. */ uint16_t timeoutT4; /**< Erase memory timeout in milliseconds. */
uint16_t timeoutT5; /**< Program memory and reset timeout in milliseconds.*/ uint16_t timeoutT5; /**< Program memory and reset timeout in milliseconds.*/
uint16_t timeoutT6; /**< Connect response timeout in milliseconds. */
uint16_t timeoutT7; /**< Busy wait timer timeout in milliseonds. */ uint16_t timeoutT7; /**< Busy wait timer timeout in milliseonds. */
char const * seedKeyFile; /**< Seed/key algorithm library filename. */ char const * seedKeyFile; /**< Seed/key algorithm library filename. */
uint8_t connectMode; /**< Connection mode parameter in XCP connect command.*/ uint8_t connectMode; /**< Connection mode parameter in XCP connect command.*/

View File

@ -59,9 +59,6 @@
/* XCP response packet IDs as defined by the protocol. */ /* XCP response packet IDs as defined by the protocol. */
#define XCPLOADER_CMD_PID_RES (0xFFu) /**< positive response */ #define XCPLOADER_CMD_PID_RES (0xFFu) /**< positive response */
/** \brief Maximum timeout for the XCP connect command. */
#define XCPLOADER_CONNECT_TIMEOUT_MS (50u)
/** \brief Number of retries to connect to the XCP slave. */ /** \brief Number of retries to connect to the XCP slave. */
#define XCPLOADER_CONNECT_RETRIES (5u) #define XCPLOADER_CONNECT_RETRIES (5u)
@ -169,6 +166,7 @@ static void XcpLoaderInit(void const * settings)
xcpSettings.timeoutT3 = 2000; xcpSettings.timeoutT3 = 2000;
xcpSettings.timeoutT4 = 10000; xcpSettings.timeoutT4 = 10000;
xcpSettings.timeoutT5 = 1000; xcpSettings.timeoutT5 = 1000;
xcpSettings.timeoutT6 = 50;
xcpSettings.timeoutT7 = 2000; xcpSettings.timeoutT7 = 2000;
xcpSettings.connectMode = 0; xcpSettings.connectMode = 0;
xcpSettings.seedKeyFile = NULL; xcpSettings.seedKeyFile = NULL;
@ -244,6 +242,7 @@ static void XcpLoaderTerminate(void)
xcpSettings.timeoutT3 = 2000; xcpSettings.timeoutT3 = 2000;
xcpSettings.timeoutT4 = 10000; xcpSettings.timeoutT4 = 10000;
xcpSettings.timeoutT5 = 1000; xcpSettings.timeoutT5 = 1000;
xcpSettings.timeoutT6 = 50;
xcpSettings.timeoutT7 = 2000; xcpSettings.timeoutT7 = 2000;
xcpSettings.connectMode = 0; xcpSettings.connectMode = 0;
xcpSettings.seedKeyFile = NULL; xcpSettings.seedKeyFile = NULL;
@ -695,7 +694,7 @@ static bool XcpLoaderSendCmdConnect(void)
cmdPacket.len = 2; cmdPacket.len = 2;
/* Send the packet. */ /* Send the packet. */
if (!xcpSettings.transport->SendPacket(&cmdPacket, &resPacket, if (!xcpSettings.transport->SendPacket(&cmdPacket, &resPacket,
XCPLOADER_CONNECT_TIMEOUT_MS)) xcpSettings.timeoutT6))
{ {
/* Could not send packet or receive response within the specified timeout. */ /* Could not send packet or receive response within the specified timeout. */
result = false; result = false;

View File

@ -90,6 +90,8 @@ typedef struct t_xcp_loader_settings
uint16_t timeoutT4; uint16_t timeoutT4;
/** \brief Program memory and reset timeout in milliseconds. */ /** \brief Program memory and reset timeout in milliseconds. */
uint16_t timeoutT5; uint16_t timeoutT5;
/** \brief Connect response timeout in milliseconds. */
uint16_t timeoutT6;
/** \brief Busy wait timer timeout in milliseconds. */ /** \brief Busy wait timer timeout in milliseconds. */
uint16_t timeoutT7; uint16_t timeoutT7;
/** \brief Connection mode used in the XCP connect command. */ /** \brief Connection mode used in the XCP connect command. */

View File

@ -19,8 +19,9 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MainUnit"/> <UnitName Value="MainUnit"/>
<TopLine Value="291"/> <IsVisibleTab Value="True"/>
<CursorPos X="11" Y="296"/> <TopLine Value="26"/>
<CursorPos X="61" Y="37"/>
<UsageCount Value="87"/> <UsageCount Value="87"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -31,7 +32,7 @@
<UnitName Value="OpenBlt"/> <UnitName Value="OpenBlt"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="53"/> <TopLine Value="53"/>
<CursorPos Y="80"/> <CursorPos X="5" Y="85"/>
<UsageCount Value="87"/> <UsageCount Value="87"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -39,18 +40,17 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="CurrentConfig"/> <UnitName Value="CurrentConfig"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="17"/> <TopLine Value="202"/>
<CursorPos Y="34"/> <CursorPos X="57" Y="251"/>
<UsageCount Value="87"/> <UsageCount Value="87"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="configgroups.pas"/> <Filename Value="configgroups.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="ConfigGroups"/> <UnitName Value="ConfigGroups"/>
<IsVisibleTab Value="True"/> <EditorIndex Value="1"/>
<EditorIndex Value="2"/> <TopLine Value="470"/>
<TopLine Value="366"/> <CursorPos X="37" Y="495"/>
<CursorPos X="15" Y="224"/>
<UsageCount Value="84"/> <UsageCount Value="84"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
@ -61,11 +61,10 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SettingsDialog"/> <UnitName Value="SettingsDialog"/>
<EditorIndex Value="3"/> <EditorIndex Value="-1"/>
<TopLine Value="252"/> <TopLine Value="252"/>
<CursorPos X="63" Y="258"/> <CursorPos X="63" Y="258"/>
<UsageCount Value="79"/> <UsageCount Value="79"/>
<Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="sessionxcpdialog.pas"/> <Filename Value="sessionxcpdialog.pas"/>
@ -74,10 +73,12 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SessionXcpDialog"/> <UnitName Value="SessionXcpDialog"/>
<EditorIndex Value="-1"/> <EditorIndex Value="2"/>
<TopLine Value="114"/> <TopLine Value="226"/>
<CursorPos X="43" Y="127"/> <CursorPos X="52" Y="230"/>
<UsageCount Value="76"/> <UsageCount Value="76"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="customutil.pas"/> <Filename Value="customutil.pas"/>
@ -152,12 +153,12 @@
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="FirmwareUpdate"/> <UnitName Value="FirmwareUpdate"/>
<EditorIndex Value="1"/> <EditorIndex Value="3"/>
<TopLine Value="481"/> <TopLine Value="896"/>
<CursorPos X="84" Y="490"/> <CursorPos Y="930"/>
<UsageCount Value="49"/> <UsageCount Value="49"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="23" Y="995" ID="1"/> <Item0 X="23" Y="998" ID="1"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
@ -174,11 +175,10 @@
<Filename Value="filelogger.pas"/> <Filename Value="filelogger.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="FileLogger"/> <UnitName Value="FileLogger"/>
<EditorIndex Value="4"/> <EditorIndex Value="-1"/>
<TopLine Value="134"/> <TopLine Value="134"/>
<CursorPos X="19" Y="140"/> <CursorPos X="19" Y="140"/>
<UsageCount Value="24"/> <UsageCount Value="24"/>
<Loaded Value="True"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="/usr/share/fpcsrc/3.0.0/rtl/objpas/sysutils/osutilsh.inc"/> <Filename Value="/usr/share/fpcsrc/3.0.0/rtl/objpas/sysutils/osutilsh.inc"/>
@ -296,126 +296,119 @@
<OtherDefines Count="1"> <OtherDefines Count="1">
<Define0 Value="UseCThreads"/> <Define0 Value="UseCThreads"/>
</OtherDefines> </OtherDefines>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="28" HistoryIndex="27">
<Position1> <Position1>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="487" Column="39" TopLine="446"/> <Caret Line="106" Column="41" TopLine="70"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="497" Column="23" TopLine="456"/> <Caret Line="604" Column="50" TopLine="569"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="498" Column="41" TopLine="457"/> <Caret Line="694" Column="50" TopLine="659"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="509" Column="45" TopLine="468"/> <Caret Line="708" Column="50" TopLine="690"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="559" Column="45" TopLine="518"/> <Caret Line="488" Column="32" TopLine="481"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="578" Column="43" TopLine="537"/> <Caret Line="127" Column="43" TopLine="114"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="588" Column="45" TopLine="547"/> <Caret Line="132" Column="43" TopLine="119"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="648" Column="45" TopLine="607"/> <Caret Line="104" Column="3" TopLine="92"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="667" Column="43" TopLine="626"/> <Caret Line="20" Column="35"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="677" Column="45" TopLine="636"/> <Caret Line="60" Column="17" TopLine="18"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="716" Column="39" TopLine="675"/> <Caret Line="71" Column="17" TopLine="29"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="724" Column="39" TopLine="683"/> <Caret Line="219" Column="50" TopLine="176"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="744" Column="37" TopLine="703"/> <Caret Line="230" Column="60" TopLine="187"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="1129" Column="39" TopLine="1087"/> <Caret Line="259" Column="57" TopLine="214"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="firmwareupdate.pas"/> <Filename Value="configgroups.pas"/>
<Caret Line="1138" Column="52" TopLine="1096"/> <Caret Line="94" Column="6" TopLine="69"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="firmwareupdate.pas"/> <Filename Value="configgroups.pas"/>
<Caret Line="1126" Column="64" TopLine="1104"/> <Caret Line="108" Column="14" TopLine="69"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="firmwareupdate.pas"/> <Filename Value="configgroups.pas"/>
<Caret Line="449" Column="13" TopLine="420"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="firmwareupdate.pas"/> <Filename Value="configgroups.pas"/>
<Caret Line="98" Column="43" TopLine="93"/> <Caret Line="469" Column="4" TopLine="427"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="745" TopLine="719"/> <Caret Line="215" Column="30" TopLine="185"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="98" Column="72" TopLine="68"/> <Caret Line="57" Column="8" TopLine="32"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="947" TopLine="938"/> <Caret Line="66" Column="8" TopLine="32"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="1053" Column="19" TopLine="1018"/> <Caret Line="215" Column="21" TopLine="190"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="1038" Column="17" TopLine="1032"/> <Caret Line="226" Column="6" TopLine="190"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="600" Column="63" TopLine="579"/> <Caret Line="250" Column="9" TopLine="225"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="firmwareupdate.pas"/> <Filename Value="sessionxcpdialog.pas"/>
<Caret Line="68" TopLine="42"/> <Caret Line="251" Column="23" TopLine="225"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="106" Column="41" TopLine="70"/> <Caret Line="490" Column="84" TopLine="481"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="firmwareupdate.pas"/> <Filename Value="firmwareupdate.pas"/>
<Caret Line="604" Column="50" TopLine="569"/> <Caret Line="791" Column="63" TopLine="762"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="firmwareupdate.pas"/> <Filename Value="mainunit.pas"/>
<Caret Line="694" Column="50" TopLine="659"/> <Caret Line="294" Column="14" TopLine="291"/>
</Position28> </Position28>
<Position29>
<Filename Value="firmwareupdate.pas"/>
<Caret Line="708" Column="50" TopLine="690"/>
</Position29>
<Position30>
<Filename Value="firmwareupdate.pas"/>
<Caret Line="488" Column="32" TopLine="481"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>
</CONFIG> </CONFIG>

View File

@ -95,6 +95,7 @@ type
FTimeoutT3: Integer; FTimeoutT3: Integer;
FTimeoutT4: Integer; FTimeoutT4: Integer;
FTimeoutT5: Integer; FTimeoutT5: Integer;
FTimeoutT6: Integer;
FTimeoutT7: Integer; FTimeoutT7: Integer;
FConnectMode: Integer; FConnectMode: Integer;
FSeedKey: String; FSeedKey: String;
@ -108,6 +109,7 @@ type
property TimeoutT3: Integer read FTimeoutT3 write FTimeoutT3; property TimeoutT3: Integer read FTimeoutT3 write FTimeoutT3;
property TimeoutT4: Integer read FTimeoutT4 write FTimeoutT4; property TimeoutT4: Integer read FTimeoutT4 write FTimeoutT4;
property TimeoutT5: Integer read FTimeoutT5 write FTimeoutT5; property TimeoutT5: Integer read FTimeoutT5 write FTimeoutT5;
property TimeoutT6: Integer read FTimeoutT6 write FTimeoutT6;
property TimeoutT7: Integer read FTimeoutT7 write FTimeoutT7; property TimeoutT7: Integer read FTimeoutT7 write FTimeoutT7;
property ConnectMode: Integer read FConnectMode write FConnectMode; property ConnectMode: Integer read FConnectMode write FConnectMode;
property SeedKey: String read FSeedKey write FSeedKey; property SeedKey: String read FSeedKey write FSeedKey;
@ -444,6 +446,7 @@ begin
FTimeoutT3 := 2000; FTimeoutT3 := 2000;
FTimeoutT4 := 10000; FTimeoutT4 := 10000;
FTimeoutT5 := 1000; FTimeoutT5 := 1000;
FTimeoutT6 := 50;
FTimeoutT7 := 2000; FTimeoutT7 := 2000;
FConnectMode := 0; FConnectMode := 0;
FSeedKey := ''; FSeedKey := '';
@ -467,6 +470,7 @@ begin
FTimeoutT3 := XmlConfig.GetValue('timeout_t3', FTimeoutT3); FTimeoutT3 := XmlConfig.GetValue('timeout_t3', FTimeoutT3);
FTimeoutT4 := XmlConfig.GetValue('timeout_t4', FTimeoutT4); FTimeoutT4 := XmlConfig.GetValue('timeout_t4', FTimeoutT4);
FTimeoutT5 := XmlConfig.GetValue('timeout_t5', FTimeoutT5); FTimeoutT5 := XmlConfig.GetValue('timeout_t5', FTimeoutT5);
FTimeoutT6 := XmlConfig.GetValue('timeout_t6', FTimeoutT6);
FTimeoutT7 := XmlConfig.GetValue('timeout_t7', FTimeoutT7); FTimeoutT7 := XmlConfig.GetValue('timeout_t7', FTimeoutT7);
FConnectMode := XmlConfig.GetValue('connect_mode', FConnectMode); FConnectMode := XmlConfig.GetValue('connect_mode', FConnectMode);
FSeedKey := String(XmlConfig.GetValue('seed_key', UnicodeString(FSeedKey))); FSeedKey := String(XmlConfig.GetValue('seed_key', UnicodeString(FSeedKey)));
@ -492,6 +496,7 @@ begin
XmlConfig.SetValue('timeout_t3', FTimeoutT3); XmlConfig.SetValue('timeout_t3', FTimeoutT3);
XmlConfig.SetValue('timeout_t4', FTimeoutT4); XmlConfig.SetValue('timeout_t4', FTimeoutT4);
XmlConfig.SetValue('timeout_t5', FTimeoutT5); XmlConfig.SetValue('timeout_t5', FTimeoutT5);
XmlConfig.SetValue('timeout_t6', FTimeoutT6);
XmlConfig.SetValue('timeout_t7', FTimeoutT7); XmlConfig.SetValue('timeout_t7', FTimeoutT7);
XmlConfig.SetValue('connect_mode', FConnectMode); XmlConfig.SetValue('connect_mode', FConnectMode);
XmlConfig.SetValue('seed_key', UnicodeString(FSeedKey)); XmlConfig.SetValue('seed_key', UnicodeString(FSeedKey));

View File

@ -788,6 +788,7 @@ begin
sessionSettingsXcp.timeoutT3 := sessionXcpConfig.TimeoutT3; sessionSettingsXcp.timeoutT3 := sessionXcpConfig.TimeoutT3;
sessionSettingsXcp.timeoutT4 := sessionXcpConfig.TimeoutT4; sessionSettingsXcp.timeoutT4 := sessionXcpConfig.TimeoutT4;
sessionSettingsXcp.timeoutT5 := sessionXcpConfig.TimeoutT5; sessionSettingsXcp.timeoutT5 := sessionXcpConfig.TimeoutT5;
sessionSettingsXcp.timeoutT6 := sessionXcpConfig.TimeoutT6;
sessionSettingsXcp.timeoutT7 := sessionXcpConfig.TimeoutT7; sessionSettingsXcp.timeoutT7 := sessionXcpConfig.TimeoutT7;
sessionSettingsXcp.connectMode := sessionXcpConfig.ConnectMode; sessionSettingsXcp.connectMode := sessionXcpConfig.ConnectMode;
sessionSettingsXcp.seedKeyFile := PAnsiChar(AnsiString(sessionXcpConfig.SeedKey)); sessionSettingsXcp.seedKeyFile := PAnsiChar(AnsiString(sessionXcpConfig.SeedKey));
@ -926,6 +927,8 @@ begin
Synchronize(@SynchronizeLogEvent); Synchronize(@SynchronizeLogEvent);
FLogString := ' -> Timeout T5: ' + IntToStr(sessionXcpConfig.TimeoutT5) + ' ms'; FLogString := ' -> Timeout T5: ' + IntToStr(sessionXcpConfig.TimeoutT5) + ' ms';
Synchronize(@SynchronizeLogEvent); Synchronize(@SynchronizeLogEvent);
FLogString := ' -> Timeout T6: ' + IntToStr(sessionXcpConfig.TimeoutT6) + ' ms';
Synchronize(@SynchronizeLogEvent);
FLogString := ' -> Timeout T7: ' + IntToStr(sessionXcpConfig.TimeoutT7) + ' ms'; FLogString := ' -> Timeout T7: ' + IntToStr(sessionXcpConfig.TimeoutT7) + ' ms';
Synchronize(@SynchronizeLogEvent); Synchronize(@SynchronizeLogEvent);
if sessionXcpConfig.SeedKey <> '' then if sessionXcpConfig.SeedKey <> '' then

View File

@ -48,7 +48,7 @@ uses
//*************************************************************************************** //***************************************************************************************
const const
PROGRAM_NAME_STR = 'MicroBoot'; PROGRAM_NAME_STR = 'MicroBoot';
PROGRAM_VERSION_STR = 'v2.00'; PROGRAM_VERSION_STR = 'v2.01';
//*************************************************************************************** //***************************************************************************************

View File

@ -1,19 +1,19 @@
object SessionXcpForm: TSessionXcpForm object SessionXcpForm: TSessionXcpForm
Left = 1306 Left = 582
Height = 308 Height = 308
Top = 661 Top = 371
Width = 407 Width = 407
Caption = 'XCP Session' Caption = 'XCP Session'
ClientHeight = 308 ClientHeight = 308
ClientWidth = 407 ClientWidth = 407
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
LCLVersion = '1.6.2.0' LCLVersion = '1.8.2.0'
object LblTimeouts: TLabel object LblTimeouts: TLabel
Left = 8 Left = 8
Height = 17 Height = 16
Top = 160 Top = 160
Width = 56 Width = 59
Caption = 'Timeouts' Caption = 'Timeouts'
Font.Style = [fsBold] Font.Style = [fsBold]
ParentColor = False ParentColor = False
@ -21,15 +21,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblTimeoutT1: TLabel object LblTimeoutT1: TLabel
Left = 23 Left = 23
Height = 17 Height = 16
Top = 187 Top = 187
Width = 45 Width = 47
Caption = 'T1 (ms):' Caption = 'T1 (ms):'
ParentColor = False ParentColor = False
end end
object EdtTimeoutT1: TEdit object EdtTimeoutT1: TEdit
Left = 80 Left = 80
Height = 29 Height = 28
Hint = 'Command response timeout in milliseconds as a 16-bit value (Default = 1000 ms)' Hint = 'Command response timeout in milliseconds as a 16-bit value (Default = 1000 ms)'
Top = 184 Top = 184
Width = 115 Width = 115
@ -41,15 +41,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblTimeoutT3: TLabel object LblTimeoutT3: TLabel
Left = 23 Left = 23
Height = 17 Height = 16
Top = 227 Top = 227
Width = 45 Width = 47
Caption = 'T3 (ms):' Caption = 'T3 (ms):'
ParentColor = False ParentColor = False
end end
object EdtTimeoutT3: TEdit object EdtTimeoutT3: TEdit
Left = 80 Left = 80
Height = 29 Height = 28
Hint = 'Start programming timeout in milliseconds as a 16-bit value (Default = 2000 ms)' Hint = 'Start programming timeout in milliseconds as a 16-bit value (Default = 2000 ms)'
Top = 224 Top = 224
Width = 115 Width = 115
@ -61,15 +61,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblTimeoutT4: TLabel object LblTimeoutT4: TLabel
Left = 23 Left = 23
Height = 17 Height = 16
Top = 267 Top = 267
Width = 45 Width = 47
Caption = 'T4 (ms):' Caption = 'T4 (ms):'
ParentColor = False ParentColor = False
end end
object EdtTimeoutT4: TEdit object EdtTimeoutT4: TEdit
Left = 80 Left = 80
Height = 29 Height = 28
Hint = 'Erase memory timeout in milliseconds as a 16-bit value (Default = 10000 ms)' Hint = 'Erase memory timeout in milliseconds as a 16-bit value (Default = 10000 ms)'
Top = 264 Top = 264
Width = 115 Width = 115
@ -81,15 +81,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblTimeoutT5: TLabel object LblTimeoutT5: TLabel
Left = 226 Left = 226
Height = 17 Height = 16
Top = 187 Top = 187
Width = 45 Width = 47
Caption = 'T5 (ms):' Caption = 'T5 (ms):'
ParentColor = False ParentColor = False
end end
object EdtTimeoutT5: TEdit object EdtTimeoutT5: TEdit
Left = 280 Left = 280
Height = 29 Height = 28
Hint = 'Program memory and target reset timeout in milliseconds as a 16-bit value (Default = 1000 ms)' Hint = 'Program memory and target reset timeout in milliseconds as a 16-bit value (Default = 1000 ms)'
Top = 184 Top = 184
Width = 115 Width = 115
@ -101,17 +101,17 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblTimeoutT7: TLabel object LblTimeoutT7: TLabel
Left = 226 Left = 226
Height = 17 Height = 16
Top = 227 Top = 267
Width = 45 Width = 47
Caption = 'T7 (ms):' Caption = 'T7 (ms):'
ParentColor = False ParentColor = False
end end
object EdtTimeoutT7: TEdit object EdtTimeoutT7: TEdit
Left = 280 Left = 280
Height = 29 Height = 28
Hint = 'Busy wait timer timeout in milliseconds as a 16-bit value (Default = 2000 ms)' Hint = 'Busy wait timer timeout in milliseconds as a 16-bit value (Default = 2000 ms)'
Top = 224 Top = 264
Width = 115 Width = 115
OnChange = EdtTimeoutChange OnChange = EdtTimeoutChange
OnKeyPress = EdtTimeoutKeyPress OnKeyPress = EdtTimeoutKeyPress
@ -121,9 +121,9 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblConnection: TLabel object LblConnection: TLabel
Left = 8 Left = 8
Height = 17 Height = 16
Top = 8 Top = 8
Width = 68 Width = 74
Caption = 'Connection' Caption = 'Connection'
Font.Style = [fsBold] Font.Style = [fsBold]
ParentColor = False ParentColor = False
@ -131,15 +131,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblConnectMode: TLabel object LblConnectMode: TLabel
Left = 23 Left = 23
Height = 17 Height = 16
Top = 38 Top = 38
Width = 35 Width = 38
Caption = 'Mode:' Caption = 'Mode:'
ParentColor = False ParentColor = False
end end
object CmbConnectMode: TComboBox object CmbConnectMode: TComboBox
Left = 80 Left = 80
Height = 27 Height = 26
Hint = 'Connection mode value sent in the XCP connect command as a 8-bit value (Default=0)' Hint = 'Connection mode value sent in the XCP connect command as a 8-bit value (Default=0)'
Top = 35 Top = 35
Width = 120 Width = 120
@ -411,9 +411,9 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblSecurity: TLabel object LblSecurity: TLabel
Left = 8 Left = 8
Height = 17 Height = 16
Top = 72 Top = 72
Width = 49 Width = 54
Caption = 'Security' Caption = 'Security'
Font.Style = [fsBold] Font.Style = [fsBold]
ParentColor = False ParentColor = False
@ -421,15 +421,15 @@ object SessionXcpForm: TSessionXcpForm
end end
object LblSeedKey: TLabel object LblSeedKey: TLabel
Left = 23 Left = 23
Height = 17 Height = 16
Top = 96 Top = 96
Width = 276 Width = 298
Caption = 'Select your seed/key algorithm shared library file:' Caption = 'Select your seed/key algorithm shared library file:'
ParentColor = False ParentColor = False
end end
object EdtSeedKey: TEdit object EdtSeedKey: TEdit
Left = 23 Left = 23
Height = 29 Height = 28
Hint = 'Seed/key algorithm shared library filename (Optional)' Hint = 'Seed/key algorithm shared library filename (Optional)'
Top = 120 Top = 120
Width = 281 Width = 281
@ -446,6 +446,26 @@ object SessionXcpForm: TSessionXcpForm
OnClick = BtnSeedKeyClick OnClick = BtnSeedKeyClick
TabOrder = 2 TabOrder = 2
end end
object LblTimeoutT6: TLabel
Left = 224
Height = 16
Top = 227
Width = 47
Caption = 'T6 (ms):'
ParentColor = False
end
object EdtTimeoutT6: TEdit
Left = 280
Height = 28
Hint = 'Connect response timeout in milliseconds as a 16-bit value (Default = 50 ms)'
Top = 224
Width = 115
OnChange = EdtTimeoutChange
OnKeyPress = EdtTimeoutKeyPress
ParentShowHint = False
ShowHint = True
TabOrder = 8
end
object OpenDialog: TOpenDialog object OpenDialog: TOpenDialog
Filter = 'Shared libraries (*.dll;*.so)|*.dll;*.so|All files (*.*)|*.*' Filter = 'Shared libraries (*.dll;*.so)|*.dll;*.so|All files (*.*)|*.*'
Options = [ofFileMustExist, ofEnableSizing, ofViewDetail] Options = [ofFileMustExist, ofEnableSizing, ofViewDetail]

View File

@ -47,6 +47,9 @@ uses
//*************************************************************************************** //***************************************************************************************
type type
//------------------------------ TSessionXcpForm ---------------------------------------- //------------------------------ TSessionXcpForm ----------------------------------------
{ TSessionXcpForm }
TSessionXcpForm = class(TForm) TSessionXcpForm = class(TForm)
BtnSeedKey: TButton; BtnSeedKey: TButton;
CmbConnectMode: TComboBox; CmbConnectMode: TComboBox;
@ -55,6 +58,7 @@ type
EdtTimeoutT3: TEdit; EdtTimeoutT3: TEdit;
EdtTimeoutT4: TEdit; EdtTimeoutT4: TEdit;
EdtTimeoutT5: TEdit; EdtTimeoutT5: TEdit;
EdtTimeoutT6: TEdit;
EdtTimeoutT7: TEdit; EdtTimeoutT7: TEdit;
LblConnection: TLabel; LblConnection: TLabel;
LblSeedKey: TLabel; LblSeedKey: TLabel;
@ -65,6 +69,7 @@ type
LblTimeoutT3: TLabel; LblTimeoutT3: TLabel;
LblTimeoutT4: TLabel; LblTimeoutT4: TLabel;
LblTimeoutT5: TLabel; LblTimeoutT5: TLabel;
LblTimeoutT6: TLabel;
LblTimeoutT7: TLabel; LblTimeoutT7: TLabel;
OpenDialog: TOpenDialog; OpenDialog: TOpenDialog;
procedure BtnSeedKeyClick(Sender: TObject); procedure BtnSeedKeyClick(Sender: TObject);
@ -211,6 +216,7 @@ begin
FSessionXcpConfig.TimeoutT3 := Config.TimeoutT3; FSessionXcpConfig.TimeoutT3 := Config.TimeoutT3;
FSessionXcpConfig.TimeoutT4 := Config.TimeoutT4; FSessionXcpConfig.TimeoutT4 := Config.TimeoutT4;
FSessionXcpConfig.TimeoutT5 := Config.TimeoutT5; FSessionXcpConfig.TimeoutT5 := Config.TimeoutT5;
FSessionXcpConfig.TimeoutT6 := Config.TimeoutT6;
FSessionXcpConfig.TimeoutT7 := Config.TimeoutT7; FSessionXcpConfig.TimeoutT7 := Config.TimeoutT7;
FSessionXcpConfig.ConnectMode := Config.ConnectMode; FSessionXcpConfig.ConnectMode := Config.ConnectMode;
FSessionXcpConfig.SeedKey := Config.SeedKey; FSessionXcpConfig.SeedKey := Config.SeedKey;
@ -221,6 +227,7 @@ begin
EdtTimeoutT3.Text := IntToStr(FSessionXcpConfig.TimeoutT3); EdtTimeoutT3.Text := IntToStr(FSessionXcpConfig.TimeoutT3);
EdtTimeoutT4.Text := IntToStr(FSessionXcpConfig.TimeoutT4); EdtTimeoutT4.Text := IntToStr(FSessionXcpConfig.TimeoutT4);
EdtTimeoutT5.Text := IntToStr(FSessionXcpConfig.TimeoutT5); EdtTimeoutT5.Text := IntToStr(FSessionXcpConfig.TimeoutT5);
EdtTimeoutT6.Text := IntToStr(FSessionXcpConfig.TimeoutT6);
EdtTimeoutT7.Text := IntToStr(FSessionXcpConfig.TimeoutT7); EdtTimeoutT7.Text := IntToStr(FSessionXcpConfig.TimeoutT7);
end; //*** end of LoadConfig *** end; //*** end of LoadConfig ***
@ -248,6 +255,8 @@ begin
FSessionXcpConfig.TimeoutT4 := StrToInt(EdtTimeoutT4.Text); FSessionXcpConfig.TimeoutT4 := StrToInt(EdtTimeoutT4.Text);
if EdtTimeoutT5.Text <> '' then if EdtTimeoutT5.Text <> '' then
FSessionXcpConfig.TimeoutT5 := StrToInt(EdtTimeoutT5.Text); FSessionXcpConfig.TimeoutT5 := StrToInt(EdtTimeoutT5.Text);
if EdtTimeoutT6.Text <> '' then
FSessionXcpConfig.TimeoutT6 := StrToInt(EdtTimeoutT6.Text);
if EdtTimeoutT7.Text <> '' then if EdtTimeoutT7.Text <> '' then
FSessionXcpConfig.TimeoutT7 := StrToInt(EdtTimeoutT7.Text); FSessionXcpConfig.TimeoutT7 := StrToInt(EdtTimeoutT7.Text);
// Store configuration. // Store configuration.
@ -255,6 +264,7 @@ begin
Config.TimeoutT3 := FSessionXcpConfig.TimeoutT3; Config.TimeoutT3 := FSessionXcpConfig.TimeoutT3;
Config.TimeoutT4 := FSessionXcpConfig.TimeoutT4; Config.TimeoutT4 := FSessionXcpConfig.TimeoutT4;
Config.TimeoutT5 := FSessionXcpConfig.TimeoutT5; Config.TimeoutT5 := FSessionXcpConfig.TimeoutT5;
Config.TimeoutT6 := FSessionXcpConfig.TimeoutT6;
Config.TimeoutT7 := FSessionXcpConfig.TimeoutT7; Config.TimeoutT7 := FSessionXcpConfig.TimeoutT7;
Config.ConnectMode := FSessionXcpConfig.ConnectMode; Config.ConnectMode := FSessionXcpConfig.ConnectMode;
Config.SeedKey := FSessionXcpConfig.SeedKey; Config.SeedKey := FSessionXcpConfig.SeedKey;