This commit is contained in:
f1iwq2
2024-08-24 09:12:51 +02:00
parent ede3d91c4d
commit 7d2c4bd591
43 changed files with 32873 additions and 14550 deletions
+371
View File
@@ -0,0 +1,371 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ADDISPLOG.INC 4.06 *}
{*********************************************************}
{* String resources for the dispatcher log *}
{*********************************************************}
{ Logging - It is unlikely that these should change, these strings are }
{ used in the dispatcher log. Translating them into another language }
{ could make it difficult for TurboPower Tech Support to decipher it. }
{ Dispatch type }
sdtNone {15001} = 'No event';
sdtDispatch {15002} = 'Dispatch';
sdtTrigger {15003} = 'Trigger';
sdtError {15004} = 'Error';
sdtThread {15005} = 'Thread';
sdtTriggerAlloc {15006} = 'TrigAllc';
sdtTriggerDispose {15007} = 'TrigDisp';
sdtTriggerHandlerAlloc {15008} = 'TrgHdAlc';
sdtTriggerHandlerDispose {15009} = 'TrgHdDsp';
sdtTriggerDataChange {15010} = 'TrDatChg';
sdtTelnet {15011} = 'Telnet';
sdtFax {15012} = 'Fax';
sdtXModem {15013} = 'XModem';
sdtYModem {15014} = 'YModem';
sdtZModem {15015} = 'ZModem';
sdtKermit {15016} = 'Kermit';
sdtAscii {15017} = 'Ascii';
sdtBPlus {15018} = 'BPlus';
sdtPacket {15019} = 'Packet';
sdtUser {15020} = 'User';
sdtScript {15021} = 'Script';
{ Dispatch subtype }
sdstNone {15100} = '';
sdstReadCom {15101} = 'ReadCom';
sdstWriteCom {15102} = 'WriteCom';
sdstLineStatus {15103} = 'Line status';
sdstModemStatus {15104} = 'Modem status';
sdstAvail {15105} = 'Avail';
sdstTimer {15106} = 'Timer';
sdstData {15107} = 'Data';
sdstStatus {15108} = 'Status';
sdstThreadStart {15109} = 'Start';
sdstThreadExit {15110} = 'Exit';
sdstThreadSleep {15111} = 'Sleep';
sdstThreadWake {15112} = 'Wake';
sdstDataTrigger {15113} = 'Data';
sdstTimerTrigger {15114} = 'Timer';
sdstStatusTrigger {15115} = 'Status';
sdstAvailTrigger {15116} = 'Avail';
sdstWndHandler {15117} = 'Window';
sdstProcHandler {15118} = 'Procedure';
sdstEventHandler {15119} = 'Method';
sdstSWill {15120} = 'Sent WILL';
sdstSWont {15121} = 'Sent WON''T';
sdstSDo {15122} = 'Sent DO';
sdstSDont {15123} = 'Sent DON''T';
sdstRWill {15124} = 'Recv WILL';
sdstRWont {15125} = 'Recv WON''T';
sdstRDo {15126} = 'Recv DO';
sdstRDont {15127} = 'Recv DON''T';
sdstCommand {15128} = 'Command';
sdstSTerm {15129} = 'Sent Term';
sdsttfNone {15130} = 'tfNone';
sdsttfGetEntry {15131} = 'tfGetEntry';
sdsttfInit {15132} = 'tfInit';
sdsttf1Init1 {15133} = 'tf1Init1';
sdsttf2Init1 {15134} = 'tf2Init1';
sdsttf2Init1A {15135} = 'tf2Init1A';
sdsttf2Init1B {15136} = 'tf2Init1B';
sdsttf2Init2 {15137} = 'tf2Init2';
sdsttf2Init3 {15138} = 'tf2Init3';
sdsttfDial {15139} = 'tfDial';
sdsttfRetryWait {15140} = 'tfRetryWait';
sdsttf1Connect {15141} = 'tf1Connect';
sdsttf1SendTSI {15142} = 'tf1SendTSI';
sdsttf1TSIResponse {15143} = 'tf1TSIRespns';
sdsttf1DCSResponse {15144} = 'tf1DCSRspns';
sdsttf1TrainStart {15145} = 'tf1TrainStrt';
sdsttf1TrainFinish {15146} = 'tf1TrainFnsh';
sdsttf1WaitCFR {15147} = 'tf1WaitCFR';
sdsttf1WaitPageConnect {15148} = 'tf1WaitPgCn';
sdsttf2Connect {15149} = 'tf2Connect';
sdsttf2GetParams {15150} = 'tf2GetParams';
sdsttfWaitXon {15151} = 'tfWaitXon';
sdsttfWaitFreeHeader {15152} = 'tfWaitFrHead';
sdsttfSendPageHeader {15153} = 'tfSndPgeHdr';
sdsttfOpenCover {15154} = 'tfOpenCover';
sdsttfSendCover {15155} = 'tfSendCover';
sdsttfPrepPage {15156} = 'tfPrepPage';
sdsttfSendPage {15157} = 'tfSendPage';
sdsttfDrainPage {15158} = 'tfDrainPage';
sdsttf1PageEnd {15159} = 'tf1PageEnd';
sdsttf1PrepareEOP {15160} = 'tf1PrepEOP';
sdsttf1SendEOP {15161} = 'tf1SendEOP';
sdsttf1WaitMPS {15162} = 'tf1WaitMPS';
sdsttf1WaitEOP {15163} = 'tf1WaitEOP';
sdsttf1WaitMCF {15164} = 'tf1WaitMCF';
sdsttf1SendDCN {15165} = 'tf1SendDCN';
sdsttf1Hangup {15166} = 'tf1Hangup';
sdsttf1WaitHangup {15167} = 'tf1WaitHngp';
sdsttf2SendEOP {15168} = 'tf2SendEOP';
sdsttf2WaitFPTS {15169} = 'tf2WaitFPTS';
sdsttf2WaitFET {15170} = 'tf2WaitFET';
sdsttf2WaitPageOK {15171} = 'tf2WaitPgOK';
sdsttf2SendNewParams {15172} = 'tf2SndNwPrm';
sdsttf2NextPage {15173} = 'tf2NextPage';
sdsttf20CheckPage {15174} = 'tf20ChckPg';
sdsttfClose {15175} = 'tfClose';
sdsttfCompleteOK {15176} = 'tfCompleteOK';
sdsttfAbort {15177} = 'tfAbort';
sdsttfDone {15178} = 'tfDone';
sdstrfNone {15179} = 'rfNone';
sdstrfInit {15180} = 'rfInit';
sdstrf1Init1 {15181} = 'rf1Init1';
sdstrf2Init1 {15182} = 'rf2Init1';
sdstrf2Init1A {15183} = 'rf2Init1A';
sdstrf2Init1B {15184} = 'rf2Init1B';
sdstrf2Init2 {15185} = 'rf2Init2';
sdstrf2Init3 {15186} = 'rf2Init3';
sdstrfWaiting {15187} = 'rfWaiting';
sdstrfAnswer {15188} = 'rfAnswer';
sdstrf1SendCSI {15189} = 'rf1SendCSI';
sdstrf1SendDIS {15190} = 'rf1SendDIS';
sdstrf1CollectFrames {15191} = 'rf1CollFrms';
sdstrf1CollectRetry1 {15192} = 'rf1CollRtry1';
sdstrf1CollectRetry2 {15193} = 'rf1CollRtry2';
sdstrf1StartTrain {15194} = 'rf1StrtTrn';
sdstrf1CollectTrain {15195} = 'rf1CollTrn';
sdstrf1Timeout {15196} = 'rf1Timeout';
sdstrf1Retrain {15197} = 'rf1Retrain';
sdstrf1FinishTrain {15198} = 'rf1FinTrn';
sdstrf1SendCFR {15199} = 'rf1SendCFR';
sdstrf1WaitPageConnect {15200} = 'rf1WtPgCnnct';
sdstrf2ValidConnect {15201} = 'rf2ValCnnct';
sdstrf2GetSenderID {15202} = 'rf2GtSndID';
sdstrf2GetConnect {15203} = 'rf2GtCnnct';
sdstrfStartPage {15204} = 'rfStartPage';
sdstrfGetPageData {15205} = 'rfGtPgDta';
sdstrf1FinishPage {15206} = 'rf1FinPage';
sdstrf1WaitEOP {15207} = 'rf1WaitEOP';
sdstrf1WritePage {15208} = 'rf1WritePage';
sdstrf1SendMCF {15209} = 'rf1SendMCF';
sdstrf1WaitDCN {15210} = 'rf1WaitDCN';
sdstrf1WaitHangup {15211} = 'rf1WtHngp';
sdstrf2GetPageResult {15212} = 'rf2GtPgRslt';
sdstrf2GetFHNG {15213} = 'rf2GetFHNG';
sdstrfComplete {15214} = 'rfComplete';
sdstrfAbort {15215} = 'rfAbort';
sdstrfDone {15216} = 'rfDone';
sdsttxInitial {15217} = 'txInitial';
sdsttxHandshake {15218} = 'txHandshake';
sdsttxGetBlock {15219} = 'txGetBlock';
sdsttxWaitFreeSpace {15220} = 'txWtFreeSpc';
sdsttxSendBlock {15221} = 'txSendBlock';
sdsttxDraining {15222} = 'txDraining';
sdsttxReplyPending {15223} = 'txRplyPnding';
sdsttxEndDrain {15224} = 'txEndDrain';
sdsttxFirstEndOfTransmit {15225} = 'txFirstEOT';
sdsttxRestEndOfTransmit {15226} = 'txRestEOT';
sdsttxEotReply {15227} = 'txEotReply';
sdsttxFinished {15228} = 'txFinished';
sdsttxDone {15229} = 'txDone';
sdstrxInitial {15230} = 'rxInitial';
sdstrxWaitForHSReply {15231} = 'rxWtFrHSRply';
sdstrxWaitForBlockStart {15232} = 'rxWtFrBlStrt';
sdstrxCollectBlock {15233} = 'rxCollBlock';
sdstrxProcessBlock {15234} = 'rxProcBlck';
sdstrxFinishedSkip {15235} = 'rxFinSkip';
sdstrxFinished {15236} = 'rxFinished';
sdstrxDone {15237} = 'rxDone';
sdsttyInitial {15238} = 'tyInitial';
sdsttyHandshake {15239} = 'tyHandshake';
sdsttyGetFileName {15240} = 'tyGetFlName';
sdsttySendFileName {15241} = 'tySndFlName';
sdsttyDraining {15242} = 'tyDraining';
sdsttyReplyPending {15243} = 'tyRplyPndng';
sdsttyPrepXmodem {15244} = 'tyPrpXmdm';
sdsttySendXmodem {15245} = 'tySndXmdm';
sdsttyFinished {15246} = 'tyFinishd';
sdsttyFinishDrain {15247} = 'tyFinDrain';
sdsttyDone {15248} = 'tyDone';
sdstryInitial {15249} = 'ryInitial';
sdstryDelay {15250} = 'ryDelay';
sdstryWaitForHSReply {15251} = 'ryWtFrHSRply';
sdstryWaitForBlockStart {15252} = 'ryWtFBlkStrt';
sdstryCollectBlock {15253} = 'ryCollBlck';
sdstryProcessBlock {15254} = 'ryProcBlck';
sdstryOpenFile {15255} = 'ryOpenFile';
sdstryPrepXmodem {15256} = 'ryPrepXmdm';
sdstryReceiveXmodem {15257} = 'ryRcvXmodem';
sdstryFinished {15258} = 'ryFinished';
sdstryDone {15259} = 'ryDone';
sdsttzInitial {15260} = 'tzInitial';
sdsttzHandshake {15261} = 'tzHandshake';
sdsttzGetFile {15262} = 'tzGetFile';
sdsttzSendFile {15263} = 'tzSendFile';
sdsttzCheckFile {15264} = 'tzCheckFile';
sdsttzStartData {15265} = 'tzStartData';
sdsttzEscapeData {15266} = 'tzEscapeData';
sdsttzSendData {15267} = 'tzSendData';
sdsttzWaitAck {15268} = 'tzWaitAck';
sdsttzSendEof {15269} = 'tzSendEof';
sdsttzDrainEof {15270} = 'tzDrainEof';
sdsttzCheckEof {15271} = 'tzCheckEof';
sdsttzSendFinish {15272} = 'tzSendFinish';
sdsttzCheckFinish {15273} = 'tzChkFinish';
sdsttzError {15274} = 'tzError';
sdsttzCleanup {15275} = 'tzCleanup';
sdsttzDone {15276} = 'tzDone';
sdstrzRqstFile {15277} = 'rzRqstFile';
sdstrzDelay {15278} = 'rzDelay';
sdstrzWaitFile {15279} = 'rzWaitFile';
sdstrzCollectFile {15280} = 'rzCollFile';
sdstrzSendInit {15281} = 'rzSendInit';
sdstrzSendBlockPrep {15282} = 'rzSndBlkPrp';
sdstrzSendBlock {15283} = 'rzSendBlock';
sdstrzSync {15284} = 'rzSync';
sdstrzStartFile {15285} = 'rzStartFile';
sdstrzStartData {15286} = 'rzStartData';
sdstrzCollectData {15287} = 'rzCollData';
sdstrzGotData {15288} = 'rzGotData';
sdstrzWaitEof {15289} = 'rzWaitEof';
sdstrzEndOfFile {15290} = 'rzEndOfFile';
sdstrzSendFinish {15291} = 'rzSendFinish';
sdstrzCollectFinish {15292} = 'rzCollFin';
sdstrzError {15293} = 'rzError';
sdstrzWaitCancel {15294} = 'rzWaitCancel';
sdstrzCleanup {15295} = 'rzCleanup';
sdstrzDone {15296} = 'rzDone';
sdsttkInit {15297} = 'tkInit';
sdsttkInitReply {15298} = 'tkInitReply';
sdsttkCollectInit {15299} = 'tkCollInit';
sdsttkOpenFile {15300} = 'tkOpenFile';
sdsttkSendFile {15301} = 'tkSendFile';
sdsttkFileReply {15302} = 'tkFileReply';
sdsttkCollectFile {15303} = 'tkCollFile';
sdsttkCheckTable {15304} = 'tkCheckTable';
sdsttkSendData {15305} = 'tkSendData';
sdsttkBlockReply {15306} = 'tkBlockReply';
sdsttkCollectBlock {15307} = 'tkCollBlock';
sdsttkSendEof {15308} = 'tkSendEof';
sdsttkEofReply {15309} = 'tkEofReply';
sdsttkCollectEof {15310} = 'tkCollectEof';
sdsttkSendBreak {15311} = 'tkSendBreak';
sdsttkBreakReply {15312} = 'tkBreakReply';
sdsttkCollectBreak {15313} = 'tkCollBreak';
sdsttkComplete {15314} = 'tkComplete';
sdsttkWaitCancel {15315} = 'tkWaitCancel';
sdsttkError {15316} = 'tkError';
sdsttkDone {15317} = 'tkDone';
sdstrkInit {15318} = 'rkInit';
sdstrkGetInit {15319} = 'rkGetInit';
sdstrkCollectInit {15320} = 'rkCollInit';
sdstrkGetFile {15321} = 'rkGetFile';
sdstrkCollectFile {15322} = 'rkCollFile';
sdstrkGetData {15323} = 'rkGetData';
sdstrkCollectData {15324} = 'rkCollData';
sdstrkComplete {15325} = 'rkComplete';
sdstrkWaitCancel {15326} = 'rkWaitCancel';
sdstrkError {15327} = 'rkError';
sdstrkDone {15328} = 'rkDone';
sdsttaInitial {15329} = 'taInitial';
sdsttaGetBlock {15330} = 'taGetBlock';
sdsttaWaitFreeSpace {15331} = 'taWaitFrSpc';
sdsttaSendBlock {15332} = 'taSendBlock';
sdsttaSendDelay {15333} = 'taSendDelay';
sdsttaFinishDrain {15334} = 'taFinDrain';
sdsttaFinished {15335} = 'taFinished';
sdsttaDone {15336} = 'taDone';
sdstraInitial {15337} = 'raInitial';
sdstraCollectBlock {15338} = 'raCollBlock';
sdstraProcessBlock {15339} = 'raProcBlock';
sdstraFinished {15340} = 'raFinished';
sdstraDone {15341} = 'raDone';
sdstEnable {15342} = 'Enable';
sdstDisable {15343} = 'Disable';
sdstStringPacket {15344} = 'StringPacket';
sdstSizePacket {15345} = 'SizePacket';
sdstPacketTimeout {15346} = 'PcktTimeout';
sdstStartStr {15347} = 'StartStr';
sdstEndStr {15348} = 'EndStr';
sdstIdle {15349} = 'Idle';
sdstWaiting {15350} = 'Waiting';
sdstCollecting {15351} = 'Collecting';
sdstThreadStatusQueued {15352} = 'Status Queued'; // SWB
sdstThreadDataQueued {15353} = 'Data Queued'; // SWB
sdstThreadDataWritten {15354} = 'Data Written'; // SWB
sdsttzSInit {15355} = 'ZSInit'; // SWB
sdsttzCheckSInit {15356} = 'CheckSInit'; // SWB
{log headers}
sdispHeader {15501} = 'Time Type SubType Data OtherData';
sdispHeaderLine {15502} = '-------- -------- ------------ -------- ---------';
{modem tags}
sdispmdmtagDCTS {15601} = 'DCTS ';
sdispmdmtagDDSR {15602} = 'DDSR ';
sdispmdmtagTERI {15603} = 'TERI ';
sdispmdmtagDDCD {15604} = 'DDCD ';
sdispmdmtagCTS {15605} = 'CTS ';
sdispmdmtagDSR {15606} = 'DSR ';
sdispmdmtagRI {15607} = 'RI ';
sdispmdmtagDCD {15608} = 'DCD ';
{Telnet tags}
sdispTelnetBinary {15700} = 'Binary';
sdispTelnetEcho {15701} = 'Echo';
sdispTelnetReconnection {15702} = 'Reconnection';
sdispTelnetSupressGoAhead {15703} = 'Supress Go Ahead';
sdispTelnetApproxMsgSize {15704} = 'Approx Msg Size';
sdispTelnetStatus {15705} = 'Status';
sdispTelnetTimingMark {15706} = 'Timing Mark';
sdispTelnetRemoteTransEcho {15707} = 'Remote Trans & Echo';
sdispTelnetOutputLineWidth {15708} = 'Output Line Width';
sdispTelnetOutputPageSize {15709} = 'Output Page Size';
sdispTelnetOutputCRDisp {15710} = 'Output C/R Disp';
sdispTelnetOutputHorzTabs {15711} = 'Output Horz Tabs';
sdispTelnetOutputHorzTabDisp {15712} = 'Output Horz Tab Disp';
sdispTelnetOutputFFDisp {15713} = 'Output FF Disp';
sdispTelnetOutputVertTabs {15714} = 'Output Vert Tabs';
sdispTelnetOutputVertTabDisp {15715} = 'Output Vert Tab Disp';
sdispTelnetOutputLinefeedDisp {15716} = 'Output Linefeed Disp';
sdispTelnetExtendedASCII {15717} = 'Extended ASCII';
sdispTelnetLogout {15718} = 'Logout';
sdispTelnetByteMacro {15719} = 'Byte Macro';
sdispTelnetDataEntryTerminal {15720} = 'Data Entry Terminal';
sdispTelnetSUPDUP {15721} = 'SUPDUP';
sdispTelnetSUPDUPOutput {15722} = 'SUPDUP Output';
sdispTelnetSendLocation {15723} = 'Send Location';
sdispTelnetTerminalType {15724} = 'Terminal Type';
sdispTelnetEndofRecord {15725} = 'End of Record';
sdispTelnetTACACSUserID {15726} = 'TACACS User ID';
sdispTelnetOutputMarking {15727} = 'Output Marking';
sdispTelnetTerminalLocNum {15728} = 'Terminal Loc Num';
sdispTelnetTelnet3270Regime {15729} = 'Telnet3270 Regime';
sdispTelnetX3PAD {15730} = 'X.3 PAD';
sdispTelnetNegWindowSize {15731} = 'Neg Window Size';
sdispTelnetTerminalSpeed {15732} = 'Terminal Speed';
sdispTelnetFlowControl {15733} = 'Flow Control';
sdispTelnetLineMode {15734} = 'LineMode';
sdispTelnetXDisplayLocation {15735} = 'X Display Location';
sdispTelnetEnvironment {15736} = 'Environment';
sdispTelnetAuthentication {15737} = 'Authentication';
sdispTelnetTelnetcode38 {15738} = 'Telnet code 38';
sdispTelnetNewEnvironment {15739} = 'New Environment';
sdispTelnetTelnetcode40 {15740} = 'Telnet code 40';
sdispTelnetTelnetcode41 {15741} = 'Telnet code 41';
sdispTelnetCharacterSet {15742} = 'Character Set';
+833
View File
@@ -0,0 +1,833 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ADEXCEPT.FRA 4.04 *}
{* French string resources for errors and status *}
{*********************************************************}
(*
All string resources have been moved into this resourcestring file in
APRO 4.03. The APRO String Resource Manager is still available, but
not used by default. Disable the {$DEFINE UseResourceStrings} define
in AwDefine.inc to revert back to the string resource manager if desired.
AdExcept.inc contains English strings
AdExcept.fra contains French strings
AdExcept.deu contains German strings
AdExcept.esp contains Spanish strings
AdExcept.sw contains Swedish strings
AdExcept.nor constains Norwegian strings
AdExcept.dk contains Danish strings
Where a translation was not available, the English version was used.
If you have a translation for the strings, please send them to us
through the mailsupport@turbopower.com email address, or through
the turbopower.public.third-party.internationalization newsgroup.
We will include the translation in the next release of APRO. Thanks.
*)
resourcestring
{ Numbers in the comments correspond to the ErrorCode passed in many of our }
{ events. Strings without the numbers do not have corresponding ErrorCodes }
{No error}
secOK { 0} = 'OK';
{egDOS}
secFileNotFound { 2} = 'Fichier introuvable';
secPathNotFound { 3} = 'Chemin introuvable';
secTooManyFiles { 4} = 'Trop de fichiers ouverts';
secAccessDenied { 5} = 'Accès au fichier refusé';
secInvalidHandle { 6} = 'Handle de fichier incorrect';
secOutOfMemory { 8} = 'Mémoire insuffisante';
secInvalidDrive { 15} = 'Lecteur incorrect';
secNoMoreFiles { 18} = 'Plus de fichiers';
secDiskRead { 100} = 'Tentative de lire au-delà de la fin de fichier';
secDiskFull { 101} = 'Disque plein';
secNotAssigned { 102} = 'Fichier/périphérique non assigné';
secNotOpen { 103} = 'Fichier/périphérique non ouvert';
secNotOpenInput { 104} = 'Fichier/périphérique non ouvert en entrée';
secNotOpenOutput { 105} = 'Fichier/périphérique non ouvert en sortie';
secWriteProtected { 150} = 'Le disque est protégé en écriture';
secUnknownUnit { 151} = 'Unité de disque inconnue';
secDriveNotReady { 152} = 'Lecteur non prêt';
secUnknownCommand { 153} = 'Commande inconnue';
secCrcError { 154} = 'Erreur de données';
secBadStructLen { 155} = 'Mauvaise longueur de structure de requête';
secSeekError { 156} = 'Erreur de recherche';
secUnknownMedia { 157} = 'Type de support inconnu';
secSectorNotFound { 158} = 'Secteur du disque introuvable';
secOutOfPaper { 159} = 'Plus de papier';
secDeviceWrite { 160} = 'Erreur d''écriture sur le périphérique';
secDeviceRead { 161} = 'Erreur de lecture sur le périphérique';
secHardwareFailure { 162} = 'Echec général';
{egGeneral}
secBadHandle {1001} = 'Mauvais handle passé à la fonction de communication';
secBadArgument {1002} = 'Mauvais argument passé à la fonction';
secGotQuitMsg {1003} = 'Reçu un message d''arrêt';
secBufferTooBig {1004} = 'Tampon du terminal buffer supérieur à 65521';
secPortNotAssigned {1005} = 'Composant ComPort non assigné';
secInternal {1006} = 'Erreur interne lors de la création de la classe de fenêtre';
secModemNotAssigned {1007} = 'Composant Modem non assigné';
secPhonebookNotAssigned {1008} = 'Composant répertoire non assigné';
secCannotUseWithWinSock {1009} = 'Composant incompatible avec WinSock';
{egOpenComm}
secBadId {2001} = 'ie_BadId - le port Com spécifié n''existe pas';
secBaudRate {2002} = 'ie_Baudrate - vitesse en baud non supportée';
secByteSize {2003} = 'ie_Bytesize - taille en octets incorrecte';
secDefault {2004} = 'ie_Default - erreur dans les paramètres par défaut';
secHardware {2005} = 'ie_Hardware - le port Com spécifié est en cours d''utilisation';
secMemory {2006} = 'ie_Memory - impossible d''allouer des files';
secCommNotOpen {2007} = 'ie_NOpen - périphérique non ouvert';
secAlreadyOpen {2008} = 'ie_Open - périphérique déjà open';
secNoHandles {2009} = 'Plus de handles, impossible d''ouvrir le port';
secNoTimers {2010} = 'Aucun timer disponible';
secNoPortSelected {2011} = 'La propriété ComNumber de TApdComPort n''a pas été initialisée';
secNotOpenedByTapi {2012} = 'Comport was not opened by Tapi';
{egSerialIO}
secNullApi {3001} = 'Aucune couche de périphérique spécifiée';
secNotSupported {3002} = 'Fonction non supporté par le pilote';
secRegisterHandlerFailed {3003} = 'Echec de EnableCommNotification';
secPutBlockFail {3004} = 'Echec d''écriture du bloc entier';
secGetBlockFail {3005} = 'Echec de lecture du bloc entier';
secOutputBufferTooSmall {3006} = 'Tampon de sortie trop petit pour le bloc';
secBufferIsEmpty {3007} = 'Le tampon est vide';
secTracingNotEnabled {3008} = 'Mode trace non activé';
secLoggingNotEnabled {3009} = 'Journalisation non activée';
secBaseAddressNotSet {3010} = 'Adresse de base non initialisée';
{Modem/Pager}
secModemNotStarted {4001} = 'StartModem n''a pas été appelée';
secModemBusy {4002} = 'Le modem est occupé ailleurs';
secModemNotDialing {4003} = 'Le modem ne compose pas le numéro';
secNotDialing {4004} = 'Le numéroteur ne numérote pas';
secAlreadyDialing {4005} = 'Le numéroteur numérote déjà';
secModemNotResponding {4006} = 'Le modem ne répond pas';
secModemRejectedCommand {4007} = 'Commande incorrecte envoyée au modem';
secModemStatusMismatch {4008} = 'Le statut de modem demandé est erroné';
secDeviceNotSelected {4009} = 'Device not selected';
secModemDetectedBusy {4010} = 'Called number is busy';
secModemNoDialtone {4011} = 'No dialtone';
secModemNoCarrier {4012} = 'No carrier';
secModemNoAnswer {4013} = 'No answer';
{ Pager }
secInitFail {4014} = 'Modem Initialization Failure';
secLoginFail {4015} = 'Failed to Login';
secMinorSrvErr {4016} = 'Minor Server Error';
secFatalSrvErr {4017} = 'Fatal Server Error';
{LibModem}
secModemNotFound {4020} = 'Modem not found';
secInvalidFile {4021} = 'Invalid modemcap file';
{deprecated, duplicate values different names}
{TApdPhoneBookEditor}
spbeDeleteQuery {4101} = 'Etes-vous sûr(e) de vouloir supprimer cette entrée ?';
{TApdSModem}
sdsmMsgBase {4200} = '';
sdsmMsgReady {4201} = 'Prêt';
sdsmMsgInitialize {4202} = 'Initialisation du modem';
sdsmMsgInitializeTimeout {4203} = 'Initialisation hors délais';
sdsmMsgAutoAnswerBackground {4204} = 'AutoAnswer en arrière-plan';
sdsmMsgAutoAnswerWait {4205} = 'Attente d''appel entrant';
sdsmMsgAnswerWait {4206} = 'Réponse à l''appel';
sdsmMsgDialWait {4207} = 'Numérotation';
sdsmMsgDialCycle {4208} = 'Attente de renumérotation';
sdsmMsgNoDialtone {4209} = 'Pas de tonalité';
sdsmMsgConnectWait {4210} = 'Connecté en attente';
sdsmMsgConnected {4211} = 'Connecté';
sdsmMsgHangup {4212} = 'Déconnection';
sdsmMsgCancel {4213} = 'Annulation';
{TApdDialerDialog}
sdddCycling {4301} = 'Tentative de numérotation répétée . . .';
sdddRetryWaiting {4302} = 'Attente . . .';
sdddRetryWaitOver {4303} = 'Attente terminée, renumérotation . . .';
sdddDialing {4304} = 'Numérotation . . .';
sdddModemConnect {4305} = 'Modem connecté !';
sdddModemConnectAt {4306} = 'Connecté à %d bauds';
sdddModemVoice {4307} = 'Résultat de la connection : liaison ''voix''';
sdddModemError {4308} = 'Résultat de la connection : le modem retourne une erreur';
sdddModemNoCarrier {4309} = 'Résultat de la connection : pas de porteuse, échec de la connection';
sdddModemBusy {4310} = 'Résultat de la connection : correspondant occupé';
sdddModemNoDialTone {4311} = 'Résultat de la connection : pas de porteuse, vérifiez les connections';
sdddDialTimedOut {4312} = 'Tentative de numérotation hors délais';
{TPhoneBookEntryForm}
sdpeMustEnterName {4401} = 'Vous devez saisir un nom d''entrée';
sdpeMustEnterNumber {4402} = 'Vous devez saisir un numéro de téléphone';
sdpeNameExists {4403} = 'Une entrée de répertoire existe déjà sous ce nom';
{RAS connection status codes}
scsOpenPort {4500} = 'OpenPort';
scsPortOpened {4501} = 'PortOpened';
scsConnectDevice {4502} = 'ConnectDevice';
scsDeviceConnected {4503} = 'DeviceConnected';
scsAllDevicesConnected {4504} = 'AllDevicesConnected';
scsAuthenticate {4505} = 'Authenticate';
scsAuthNotify {4506} = 'AuthNotify';
scsAuthRetry {4507} = 'AuthRetry';
scsAuthCallback {4508} = 'AuthCallback';
scsAuthChangePassword {4509} = 'AuthChangePassword';
scsAuthProject {4510} = 'AuthProject';
scsAuthLinkSpeed {4511} = 'AuthLinkSpeed';
scsAuthAck {4512} = 'AuthAck';
scsReAuthenticate {4513} = 'ReAuthenticate';
scsAuthenticated {4514} = 'Authenticated';
scsPrepareForCallback {4515} = 'PrepareForCallback';
scsWaitForModemReset {4516} = 'WaitForModemReset';
scsWaitForCallback {4517} = 'WaitForCallback';
scsProjected {4518} = 'Projected';
scsStartAuthentication {4519} = 'StartAuthentication';
scsCallbackComplete {4520} = 'CallbackComplete';
scsLogonNetwork {4521} = 'LogonNetwork';
scsSubEntryConnected {4522} = 'SubEntryConnected';
scsSubEntryDisconnected {4523} = 'SubEntryDisconnected';
scsRasInteractive {4550} = 'Interactive';
scsRasRetryAuthentication {4551} = 'RetryAuthentication';
scsRasCallbackSetByCaller {4552} = 'CallbackSetByCaller';
scsRasPasswordExpired {4553} = 'PasswordExpired';
scsRasDeviceConnected {4599} = 'DeviceConnected';
{ Pager TDialingStatus }
sPDS_NONE {4600} = '';
sPDS_OFFHOOK {4601} = 'Off Hook';
sPDS_DIALING {4602} = 'Dialing';
sPDS_RINGING {4603} = 'Ringing';
sPDS_WAITFORCONNECT {4604} = 'Wait For Connect';
sPDS_CONNECTED {4605} = 'Connected';
sPDS_WAITINGTOREDIAL {4606} = 'Waiting To Redial';
sPDS_REDIALING {4607} = 'Redialing';
sPDS_MSGNOTSENT {4608} = 'Message Not Sent';
sPDS_CANCELLING {4609} = 'Cancelling';
sPDS_DISCONNECT {4610} = 'Disconnect';
sPDS_CLEANUP {4611} = 'Cleanup';
{ PDialingError }
sPDE_NONE {4630} = '';
sPDE_NODIALTONE {4631} = 'No Dial Tone';
sPDE_LINEBUSY {4632} = 'Busy';
sPDE_NOCONNECTION {4633} = 'No Connection';
{ TTapStatus }
sTAPS_NONE {4660} = '';
sTAPS_LOGINPROMPT {4661} = 'Login Prompt';
sTAPS_LOGGEDIN {4662} = 'Logged In';
sTAPS_LOGINERR {4663} = 'Login Error';
sTAPS_LOGINFAIL {4664} = 'Login Fail';
sTAPS_MSGOKTOSEND {4665} = 'Message Ok To Send';
sTAPS_SENDINGMSG {4666} = 'Sending Message';
sTAPS_MSGACK {4667} = 'Message Acknowledged';
sTAPS_MSGNAK {4668} = 'Message Not Acknowledged';
sTAPS_MSGRS {4669} = 'Message Error';
sTAPS_MSGCOMPLETED {4670} = 'Message Completed';
sTAPS_DONE {4671} = 'Done';
{ Protocol status }
spsOK {4700} = 'OK';
spsProtocolHandshake {4701} = 'Protocole de transfert en cours';
spsInvalidDate {4702} = 'Mauvais horodatage reçu et ignoré';
spsFileRejected {4703} = 'Fichier refusé';
spsFileRenamed {4704} = 'Fichier renommé';
spsSkipFile {4705} = 'Fichier ignoré';
spsFileDoesntExist {4706} = 'Le fichier n''existe pas localement, ignoré';
spsCantWriteFile {4707} = 'Fichier ignoré';
spsTimeout {4708} = 'Dépassement de délai dans le protocole';
spsBlockCheckError {4709} = 'Somme de contrôle ou CRC erroné';
spsLongPacket {4710} = 'Bloc trop long';
spsDuplicateBlock {4711} = 'Bloc reçu en double et ignoré ';
spsProtocolError {4712} = 'Erreur dans le protocole';
spsCancelRequested {4713} = 'Annulation demandée';
spsEndFile {4714} = 'En fin de fichier';
spsResumeBad {4715} = 'L''hôte B+ a refusé la demande de reprise';
spsSequenceError {4716} = 'Bloc hors séquence';
spsAbortNoCarrier {4717} = 'Abandon sur perte de porteuse';
{Specific to certain protocols}
spsGotCrcE {4718} = 'Reçu paquet CrcE (Zmodem)';
spsGotCrcG {4719} = 'Reçu paquet CrcG (Zmodem)';
spsGotCrcW {4720} = 'Reçu paquet CrcW (Zmodem)';
spsGotCrcQ {4721} = 'Reçu paquet CrcQ (Zmodem)';
spsTryResume {4722} = 'B+ tente de reprendre le téléchargement';
spsHostResume {4723} = 'L''hôte B+ reprend';
spsWaitAck {4724} = 'Waiting for B+ ACK';
{Internal protocol codes}
spsNoHeader {4725} = '';
spsGotHeader {4726} = '';
spsGotData {4727} = '';
spsNoData {4728} = '';
spsAbort {4730} = '';
{Fax progress codes, sending}
sfpInitModem {4801} = 'Initialisation du modem pour l''envoi de fax';
sfpDialing {4802} = 'Numérotation';
sfpBusyWait {4803} = 'Occupé, attente de renumérotation...';
sfpSendPage {4804} = 'Envoi des données de la page';
sfpSendPageStatus {4805} = 'Envoi de EOP';
sfpPageError {4806} = 'Erreur d''envoi de la page';
sfpPageOK {4807} = 'Page acceptée par le correspondant';
sfpConnecting {4808} = 'Connection...';
{Fax progress codes, receiving}
sfpWaiting {4820} = 'Attente d''appel entrant';
sfpNoConnect {4821} = 'Pas de connection sur cet appel';
sfpAnswer {4822} = 'Réponse à l''appel entrant';
sfpIncoming {4823} = 'Appel entrant reconnu comme fax';
sfpGetPage {4824} = 'Réception des données de la page';
sfpGetPageResult {4825} = 'Réception du signal de fin de page';
sfpCheckMorePages {4826} = 'Réception du statut de fin de document';
sfpGetHangup {4827} = 'Réception de commande de raccrochage';
sfpGotHangup {4828} = 'Reçu code de classe 2 FHNG';
{Fax server codes }
sfpSwitchModes {4830} = 'Switching modes';
sfpMonitorEnabled {4831} = 'Monitoring for incoming faxes';
sfpMonitorDisabled {4832} = 'Not monitoring for incoming faxes';
{Fax progress codes, common}
sfpSessionParams {4840} = 'Réception des paramètres de connection';
sfpGotRemoteID {4841} = 'Reçu l''ID de l''appelé';
sfpCancel {4842} = 'Abandonné par l''utilisateur';
sfpFinished {4843} = 'Terminé';
{Trigger errors}
secNoMoreTriggers {5001} = 'Plus trigger slots';
secTriggerTooLong {5002} = 'Data trigger trop long';
secBadTriggerHandle {5003} = 'Bad trigger handle';
{Packet errors}
secStartStringEmpty {5501} = 'La chaîne de start est vide';
secPacketTooSmall {5502} = 'La taille de paquet ne peut pas être plus petite que la chaîne de start';
secNoEndCharCount {5503} = 'Les paquets CharCount doivent avoir une condition de fin';
secEmptyEndString {5504} = 'La chaîne de fin est vide';
secZeroSizePacket {5505} = 'Le taille de paquet ne peut pas être nulle';
secPacketTooLong {5506} = 'Paquet trop long';
{Protocol errors}
secBadFileList {6001} = 'Mauvais format dans la liste de fichiers';
secNoSearchMask {6002} = 'Aucun masque de recherche spécifié pendant la transmission';
secNoMatchingFiles {6003} = 'Aucun fichier ne correspond au masque de recherche';
secDirNotFound {6004} = 'Le répertoire dans le masque de recherche n''existe pas';
secCancelRequested {6005} = 'Annulation demandée';
secTimeout {6006} = 'Dépassement de délai fatal';
secProtocolError {6007} = 'Evènement irrécupérable pendant le protocole';
secTooManyErrors {6008} = 'Trop d''erreurs pendant le protocole';
secSequenceError {6009} = 'Erreur de séquence de blocs dans Xmodem';
secNoFilename {6010} = 'Nom de fichier non spécifié dans le protocole reçu';
secFileRejected {6011} = 'Le fichier a été refusé';
secCantWriteFile {6012} = 'Impossible d''écrire le fichier';
secTableFull {6013} = 'La table de fenêtre Kermit est pleine, erreur fatale';
secAbortNoCarrier {6014} = 'Abandon par perte de porteuse';
secBadProtocolFunction {6015} = 'Fonction non supportée par le protocole';
secProtocolAbort {6016} = 'Protocol aborted';
{INI database}
secKeyTooLong {7001} = 'Chaîne clé trop longue';
secDataTooLarge {7002} = 'Chaîne de données trop longue';
secNoFieldsDefined {7003} = 'Aucun champ dans la base de données';
secIniWrite {7004} = 'Erreur d''écriture dans le fichier INI générique';
secIniRead {7005} = 'Erreur de lecture dans le fichier INI générique';
secNoIndexKey {7006} = 'Aucun index dans la base de données';
secRecordExists {7007} = 'L''enregistrement existe déjà';
secRecordNotFound {7008} = 'Enregistrement introuvable dans la base de données';
secMustHaveIdxVal {7009} = 'Nom de clé d''index incorrect';
secDatabaseFull {7010} = 'Nombre maximum (999) d''enregistrements de base de données atteint';
secDatabaseEmpty {7011} = 'Pas d''enregistrements dans la base de données';
secDatabaseNotPrepared {7012} = 'iPrepareIniDatabase non appelé';
secBadFieldList {7013} = 'Mauvaise liste de champs dans le composant INI';
secBadFieldForIndex {7014} = 'Mauvais index de champ dans le composant INI';
{State Machine}
secNoStateMachine {7500} = 'No state machine specified';
secNoStartState {7501} = 'StartState not set';
secNoSapiEngine {7502} = 'No SAPI engine specified';
{ fax codes }
secFaxBadFormat {8001} = 'Le fichier n''est pas du type APF';
secBadGraphicsFormat {8002} = 'Format de fichier graphique non supporté';
secConvertAbort {8003} = 'Conversion de fax abandonnée par l''utilisateur';
secUnpackAbort {8004} = 'Décompactage de fax abandonné par l''utilisateur';
secCantMakeBitmap {8005} = 'Echec de l''API CreateBitmapIndirect';
secNoImageLoaded {8050} = 'Aucune image chargée dans le visualisateur';
secNoImageBlockMarked {8051} = 'Aucun bloc de l''image marqué';
secFontFileNotFound {8052} = 'APFAX.FNT introuvable ou mauvaise ressource';
secInvalidPageNumber {8053} = 'Le numéro de page de fax spécifié est incorrect';
secBmpTooBig {8054} = 'La taille du BMP dépasse la hauteur maximale Windows'' de 32767';
secEnhFontTooBig {8055} = 'La police sélectionnée pour le convertisseur de texte est trop grande';
secFaxBadMachine {8060} = 'Fax incompatible avec celui du correspondant';
secFaxBadModemResult {8061} = 'Mauvaise réponse du modem';
secFaxTrainError {8062} = 'Echec de formation des modems';
secFaxInitError {8063} = 'Erreurpendant l''initialisation du modem';
secFaxBusy {8064} = 'Le numéro de fax appelé est occupé';
secFaxVoiceCall {8065} = 'Le numéro appelé est un numéro vocal';
secFaxDataCall {8066} = 'Appel données entrant';
secFaxNoDialTone {8067} = 'Pas de tonalité';
secFaxNoCarrier {8068} = 'Echec de la conection au fax distant';
secFaxSessionError {8069} = 'Echec du fax en cours de session';
secFaxPageError {8070} = 'Echec du fax en fin de page';
secFaxGDIPrintError {8071} = 'Erreur NextBand GDI dans le pilote d''impression fax';
secFaxMixedResolution {8072} = 'Résolutions multiples dans une même session non supportées';
secFaxConverterInitFail {8073} = 'Echec de l''initialisation du convertisseur de fax';
secNoAnswer {8074} = 'Le fax distant ne répond pas';
secAlreadyMonitored {8075} = 'Directory already being monitored';
{ Printer driver installation codes }
secUniAlreadyInstalled {8080} = 'Support des fichiers Unidrv déjà installé';
secUniCannotGetSysDir {8081} = 'Répertoire système Windows indéterminé';
secUniCannotGetWinDir {8082} = 'Répertoire Windows indéterminé';
secUniUnknownLayout {8083} = 'Environnement de fichier d''installation indéterminé';
secUniCannotInstallFile {8085} = 'Impossible d''installer les fichiers Unidrv dans le répertoire système';
secDrvCopyError {8087} = 'Erreur pendant la copie du pilote d''imprimante';
secCannotAddPrinter {8088} = 'Echec de l''appel 32-bit à AddPrinter';
secDrvBadResources {8089} = 'Ressources défectueuses ou manquantes dans le pilote';
secDrvDriverNotFound {8090} = 'Fichier du pilote introuvable';
secUniCannotGetPrinterDriverDir {8091} = 'Répertoire du pilote d''impression Win NT indéterminé';
secInstallDriverFailed {8092} = 'Echec de l''API AddPrinterDriver';
{ TApdGSMPhone error codes }
secSMSBusy {8100} = 'Busy with another command';
secSMSTimedOut {8101} = 'Timed out, no response back';
secSMSTooLong {8102} = 'SMS message too long';
secSMSUnknownStatus {8103} = 'Status unknown';
secMEFailure {8300} = 'Mobile equipment failure';
secServiceRes {8301} = 'SMS service of ME reserved';
secBadOperation {8302} = 'Operation not allowed';
secUnsupported {8303} = 'Operation not supported';
secInvalidPDU {8304} = 'Invalid PDU mode parameter';
secInvalidText {8305} = 'Invalid Text mode parameter';
secSIMInsert {8310} = 'SIM card not inserted';
secSIMPin {8311} = 'SIM PIN required';
secSIMPH {8312} = 'PH-SIM PIN required';
secSIMFailure {8313} = 'SIM failure';
secSIMBusy {8314} = 'SIM busy';
secSIMWrong {8315} = 'SIM wrong';
secSIMPUK {8316} = 'SIM PUK required';
secSIMPIN2 {8317} = 'SIM PIN2 required';
secSIMPUK2 {8318} = 'SIM PUK2 required';
secMemFail {8320} = 'Memory failure';
secInvalidMemIndex {8321} = 'Invalid memory index';
secMemFull {8322} = 'Memory is full';
secSMSCAddUnknown {8330} = 'SMS Center Address unknown';
secNoNetwork {8331} = 'No network service';
secNetworkTimeout {8332} = 'Network timeout';
secCNMAAck {8340} = 'No +CNMA acknowledgement expected';
secUnknown {8500} = 'Unknown error';
{ Winsock codes }
secADWSERROR {9001} = 'Erreur Async Professional';
secADWSLOADERROR {9002} = 'Erreur au chargement de la DLL Winsock';
secADWSVERSIONERROR {9003} = 'Version de Winsock incorrecte';
secADWSNOTINIT {9004} = 'Winsock non initialisé - %s';
secADWSINVPORT {9005} = 'Le port spécifié n''est pas valide';
secADWSCANTCHANGE {9006} = 'Impossible de changer le paramètre pendant que le socket est connecté';
secADWSCANTRESOLVE {9007} = 'Impossible de résoudre l''adresse de destination';
{ All Windows Sockets error constants are biased by 10000 from the ';normal'; }
swsaBaseErr {10000} = '';
{ Windows Sockets definitions of regular Microsoft C error constants }
swsaEIntr {10004} = 'Interrupted function call';
swsaEBadF {10009} = 'Bad file number';
swsaEAcces {10013} = 'Permission denied';
swsaEFault {10014} = 'Unknown error';
swsaEInVal {10022} = 'Invalid argument';
swsaEMFile {10024} = 'Too many open files';
{ Windows Sockets definitions of regular Berkeley error constants }
swsaEWouldBlock {10035} = 'Warning : the socket would block on this call';
swsaEInProgress {10036} = 'A blocking call is in progress';
swsaEAlReady {10037} = 'WSAEALREADY: watch out, Al is ready';
swsaENotSock {10038} = 'Socket descriptor is (1) not a socket, or (2) is of wrong type';
swsaEDestAddrReq {10039} = 'The destination address is required for this operation';
swsaEMsgSize {10040} = 'The datagram was too large to fit into the buffer and was truncated';
swsaEPrototype {10041} = 'WSAEPROTOTYPE';
swsaENoProtoOpt {10042} = 'The option is unknown or not supported';
swsaEProtoNoSupport {10043} = 'Either (1) not enough buffer space to create socket (2) protocol not supported';
swsaESocktNoSupport {10044} = 'Specified socket type not supported in this address family';
swsaEOpNotSupp {10045} = 'Operation is not supported by this socket';
swsaEPfNoSupport {10046} = 'Specified protocol family is not supported';
swsaEAfNoSupport {10047} = 'Specified address family is not supported by this protocol';
swsaEAddrInUse {10048} = 'The address is already in use for this operation';
swsaEAddrNotAvail {10049} = 'The address is not available from this machine';
swsaENetDown {10050} = 'The network subsystem has failed';
swsaENetUnreach {10051} = 'The network is unreachable from this machine at this time';
swsaENetReset {10052} = 'The network has been reset';
swsaEConnAborted {10053} = 'The virtual circuit has been aborted due to timeout, etc';
swsaEConnReset {10054} = 'The virtual circuit has been reset by the partner';
swsaENoBufs {10055} = 'The descriptor is not a socket, or no buffer space is available';
swsaEIsConn {10056} = 'The socket is already connected';
swsaENotConn {10057} = 'The socket is not connected';
swsaEShutDown {10058} = 'The socket has been shutdown';
swsaETooManyRefs {10059} = 'WSAETOOMANYREFS';
swsaETimedOut {10060} = 'The operation timed out';
swsaEConnRefused {10061} = 'The attempt to connect was forcibly refused';
swsaELoop {10062} = 'WSAELOOP: see WSAELOOP';
swsaENameTooLong {10063} = 'The name is too long';
swsaEHostDown {10064} = 'The host machine is down';
swsaEHostUnreach {10065} = 'The host machine is unreachable';
swsaENotEmpty {10066} = 'WSAENOTEMPTY';
swsaEProcLim {10067} = 'WSAEPROCLIM';
swsaEUsers {10068} = 'WSAEUSERS';
swsaEDQuot {10069} = 'WSAEDQUOT';
swsaEStale {10070} = 'WSAESTALE';
swsaERemote {10071} = 'WSAEREMOTE';
{ Extended Windows Sockets error constant definitions }
swsaSysNotReady {10091} = 'Network subsystem unusable';
swsaVerNotSupported {10092} = 'Version requested by WSAStartUp not supported by loaded Winsock DLL';
swsaNotInitialised {10093} = 'WSAStartUp not yet called';
swsaEDiscOn {10101} = 'WSAEDISCON';
swsaHost_Not_Found {11001} = 'Host not found';
swsaTry_Again {11002} = 'Host not found, or SERVERFAIL, can try again';
swsaNo_Recovery {11003} = 'Non recoverable errors, FORMERR, REFUSED, NOTIMP';
swsaNo_Data {11004} = 'Valid name, but no data record of requested type';
{ The string resource range 13500 - 13800 is used for TAPI }
{ status messages, which do not require constants here }
{TAPI CallState}
stcs_Idle {13501} = 'Line is idle';
stcs_Offering {13502} = 'Offering line...';
stcs_Accepted {13503} = 'Accepting call...';
stcs_Dialtone {13504} = 'Dialtone detected';
stcs_Dialing {13505} = 'Dialing...';
stcs_Ringback {13506} = 'Ringback detected';
stcs_Busy {13507} = 'Called number is busy';
stcs_SpecialInfo {13508} = 'Special info';
stcs_Connected {13509} = 'Connected!';
stcs_Proceeding {13510} = 'Proceeding...';
stcs_OnHold {13511} = 'On hold...';
stcs_Conferenced {13512} = 'Call conferenced';
stcs_OnHoldPendConf {13513} = 'On hold pending conference...';
stcs_OnHoldPendTransfer {13514} = 'On hold pending transfer...';
stcs_Disconnected {13515} = 'Call disconnected (%s)';
stcs_Unknown {13516} = 'Unknown state';
{TAPI DevState}
stds_Other {13533} = 'Other';
stds_Ringing {13534} = 'Ringing';
stds_Connected {13535} = 'Connected';
stds_Disconnected {13536} = 'Disconnected';
stds_MsgWaitOn {13537} = 'Message wait on';
stds_MsgWaitOff {13538} = 'Message wait off';
stds_InService {13539} = 'In service';
stds_OutOfService {13540} = 'Out of service';
stds_Maintenance {13541} = 'Maintenance change';
stds_Open {13542} = 'Ppen change';
stds_Close {13543} = 'Closed';
stds_NumCalls {13544} = 'Number of calls changed';
stds_NumCompletions {13545} = 'Number of completions changed';
stds_Terminals {13546} = 'Terminals changed';
stds_RoamMode {13547} = 'Roam mode changed';
stds_Battery {13548} = 'Battery changed';
stds_Signal {13549} = 'Signal changed';
stds_DevSpecific {13550} = 'Device specific change';
stds_ReInit {13551} = 'Re-initialized';
stds_Lock {13552} = 'Lock change';
stds_CapsChange {13553} = 'Caps change';
stds_ConfigChange {13554} = 'Configuration change';
stds_TranslateChange {13555} = 'Translate change';
stds_ComplCancel {13556} = 'Compltion cancel';
stds_Removed {13557} = 'Removed';
{ TAPI APRO-specific }
sTAPILineReply {13565} = 'TAPI line reply';
sTAPIStateChange {13597} = 'TAPI state change';
sTAPICalledBusy {13598} = 'Called number is busy';
sTAPIDialFail {13599} = 'Dial failed/no connection';
sTAPIRetryWait {13600} = 'Waiting for retry in %d seconds';
sTAPIDeviceInUse {13601} = 'Device is in use by another application';
{ TAPI Disconnect Reasons }
sTAPIDisconnect_Unspecified {13650} = 'Reason Unspecified';
sTAPIDisconnect_Normal {13651} = 'Normal Hangup by Remote';
sTAPIDisconnect_Unknown {13652} = 'Reason Unknown';
sTAPIDisconnect_Reject {13653} = 'Remote Rejected Call';
sTAPIDisconnect_PickUp {13654} = 'Call Picked Up Elsewhere';
sTAPIDisconnect_Forwarded {13655} = 'Call was Forwarded';
sTAPIDisconnect_Busy {13656} = 'Line was Busy';
sTAPIDisconnect_NoAnswer {13657} = 'No Answer by Remote';
sTAPIDisconnect_BadAddress {13658} = 'Invalid Destination Address';
sTAPIDisconnect_Unreachable {13659} = 'Remote Unreachable';
sTAPIDisconnect_Congestion {13660} = 'Network Congestion';
sTAPIDisconnect_Incompatible {13661} = 'Remote Equipment Incompatible';
sTAPIDisconnect_Unavail {13662} = 'Reason Unavailable';
sTAPIDisconnect_NoDialtone {13663} = 'No Dialtone';
sTAPIDisconnect_NumberChanged {13664} = 'Number Changed';
sTAPIDisconnect_OutOfOrder {13665} = 'Out of Order';
sTAPIDisconnect_TempFailure {13666} = 'Temporary Failure';
sTAPIDisconnect_QOSUnavail {13667} = 'Quality of Service Unavail';
sTAPIDisconnect_Blocked {13668} = 'Blocked';
sTAPIDisconnect_DoNotDisturb {13669} = 'Do Not Disturb';
sTAPIDisconnect_Cancelled {13670} = 'Cancelled';
{Adjusted TAPI error codes}
secAllocated {13801} = 'Already allocated';
secBadDeviceID {13802} = 'Bad device ID';
secBearerModeUnavail {13803} = 'Bearer mode unavailable';
secCallUnavail {13805} = 'Call unavailable';
secCompletionOverrun {13806} = 'Completion overrun';
secConferenceFull {13807} = 'Conference full';
secDialBilling {13808} = 'Dial failed';
secDialDialtone {13809} = 'Dial failed, no dialtone';
secDialPrompt {13810} = 'Dial failed';
secDialQuiet {13811} = 'Dial failed';
secIncompatibleApiVersion {13812} = 'Incompatible API version';
secIncompatibleExtVersion {13813} = 'Incompatible EXT version';
secIniFileCorrupt {13814} = 'INI file corrupt';
secInUse {13815} = 'Resource in use';
secInvalAddress {13816} = 'Invalid address';
secInvalAddressID {13817} = 'Invalid address ID';
secInvalAddressMode {13818} = 'Invalid address mode';
secInvalAddressState {13819} = 'Invalid address state';
secInvalAppHandle {13820} = 'Invalid application handle';
secInvalAppName {13821} = 'Invalid Application name';
secInvalBearerMode {13822} = 'Invalid bearer mode';
secInvalCallComplMode {13823} = 'Invalid call completion mode';
secInvalCallHandle {13824} = 'Invalid call handle';
secInvalCallParams {13825} = 'Invalid call parameters';
secInvalCallPrivilege {13826} = 'Invalid call privilege';
secInvalCallSelect {13827} = 'Invalid call select';
secInvalCallState {13828} = 'Invalid call state';
secInvalCallStatelist {13829} = 'Invalid call state list';
secInvalCard {13830} = 'Invalid card';
secInvalCompletionID {13831} = 'Invalid completion ID';
secInvalConfCallHandle {13832} = 'Invalid conference call handle';
secInvalConsultCallHandle {13833} = 'Invalid consultation call handle';
secInvalCountryCode {13834} = 'Invalid country code';
secInvalDeviceClass {13835} = 'Invalid device class';
secInvalDeviceHandle {13836} = 'Invalid device handle';
secInvalDialParams {13837} = 'Invalid dial params';
secInvalDigitList {13838} = 'Invalid digit list';
secInvalDigitMode {13839} = 'Invalid digit mode';
secInvalDigits {13840} = 'Invalid digits';
secInvalExtVersion {13841} = 'Invalid ext version';
secInvalGroupID {13842} = 'Invalid group ID';
secInvalLineHandle {13843} = 'Invalid line handle';
secInvalLineState {13844} = 'Invalid line state';
secInvalLocation {13845} = 'Invalid location';
secInvalMediaList {13846} = 'Invalid media list';
secInvalMediaMode {13847} = 'Invalid media mode';
secInvalMessageID {13848} = 'Invalid message ID';
secInvalParam {13850} = 'Invalid parameter';
secInvalParkID {13851} = 'Invalid park ID';
secInvalParkMode {13852} = 'Invalid park mode';
secInvalPointer {13853} = 'Invalid pointer';
secInvalPrivSelect {13854} = 'Invalid privilege select';
secInvalRate {13855} = 'Invalid rate';
secInvalRequestMode {13856} = 'Invalid request mode';
secInvalTerminalID {13857} = 'Invalid terminal ID';
secInvalTerminalMode {13858} = 'Invalid terminal mode';
secInvalTimeout {13859} = 'Invalid timeout';
secInvalTone {13860} = 'Invalid tone';
secInvalToneList {13861} = 'Invalid tone list';
secInvalToneMode {13862} = 'Invalid tone mode';
secInvalTransferMode {13863} = 'Invalid transfer mode';
secLineMapperFailed {13864} = 'Line mapper failed';
secNoConference {13865} = 'No conference';
secNoDevice {13866} = 'No device';
secNoDriver {13867} = 'No driver';
secNoMem {13868} = 'No memory';
secNoRequest {13869} = 'No request';
secNotOwner {13870} = 'Not owner';
secNotRegistered {13871} = 'Not registered';
secOperationFailed {13872} = 'Operation failed';
secOperationUnavail {13873} = 'Operation unavailable';
secRateUnavail {13874} = 'Rate unavailable';
secResourceUnavail {13875} = 'Resource unavailable';
secRequestOverrun {13876} = 'Request overrun';
secStructureTooSmall {13877} = 'Structure too small';
secTargetNotFound {13878} = 'Target not found';
secTargetSelf {13879} = 'Target is self';
secUninitialized {13880} = 'Uninitialized';
secUserUserInfoTooBig {13881} = 'User info too big';
secReinit {13882} = 'Reinit failed';
secAddressBlocked {13883} = 'Address blocked';
secBillingRejected {13884} = 'Billing rejected';
secInvalFeature {13885} = 'Invalid feature';
secNoMultipleInstance {13886} = 'No multiple instance';
{Apro encounters a few of its own TAPI errors, place these error
codes after the native TAPI error codes, but leave a little bit
of room for expansion of the TAPI error codes.}
secTapiBusy {13928} = 'TAPI already open, dialing or answering';
secTapiNotSet {13929} = 'TapiMode not set in TApdComPort';
secTapiNoSelect {13930} = 'No TAPI device selected';
secTapiLoadFail {13931} = 'Failed to find/load TAPI.DLL';
secTapiGetAddrFail {13932} = 'Failed to get TAPI address';
sTAPIdisabled16bit {13933} = 'TAPI disabled for 16-bit environments';
secTapiUnexpected {13934} = 'Unexpected TAPI error';
secTapiVoiceNotSupported {13935} = 'TAPI device does not support voice extensions';
secTapiWaveFail {13936} = 'TAPI wave file error';
secTapiCIDBlocked {13937} = 'Caller ID Blocked';
secTapiCIDOutOfArea {13938} = 'Out of Area Call';
secTapiWaveFormatError {13939} = 'The selected file is not a wave file';
secTapiWaveReadError {13940} = 'Unable to read wave file data';
secTapiWaveBadFormat {13941} = 'Unsupported wave format';
secTapiTranslateFail {13942} = 'Unable to translate address';
secTapiWaveDeviceInUse {13943} = 'Wave device in use';
secTapiWaveFileExists {13944} = 'Wave file already exists';
secTapiWaveNoData {13945} = 'No wave data available';
secVoIPNotSupported {13950} = 'Voice over IP not available (requires Windows 2000 and above)';
secVoIPCallBusy {13951} = 'Remote was busy';
secVoIPBadAddress {13952} = 'Destination address bad';
secVoIPNoAnswer {13953} = 'Remote did not answer';
secVoIPCancelled {13954} = 'Cancelled';
secVoIPRejected {13955} = 'Remote rejected the call';
secVoIPFailed {13956} = 'General failure';
secVoIPTapi3NotInstalled {13957} = 'ITTapi interface failure';
secVoIPH323NotFound {13958} = 'H.323 line not found';
secVoIPTapi3EventFailure {13959} = 'Event notify failure';
{RAS error codes}
secRasLoadFail {13980} = 'Failed to find/load RASAPI32.DLL';
{ Logging - It is unlikely that these should change, these strings are }
{ used in the dispatcher log. Translating them into another language }
{ could make it difficult for TurboPower Tech Support to decipher it. }
{ Dispatch type. Instead of duplicating the strings in the different }
{ language include files, we'll just include a common file here. }
{$I AdDispLog.inc}
{XML strings}
sIENotInstalled = 'Cannot open WININET, Microsoft IE required';
sOpenFileFailed = 'Impossible d''ouvrir le fichier ';
sFileNotFound = 'File %s could not be found';
sAllocSrcMemFailed = 'Impossible d''allouer la mémoire pour la source XML';
sHttpReadReqFailed = 'Impossible de lire la requête HTTP';
sHttpDataNotAvail = 'Données Http non disponibles';
sHttpReqSendFailed = 'Impossible d''envoyer la requête HTTP';
sHttpReqOpenFailed = 'Impossible d''ouvrir la requête HTTP';
sInetConnectFailed = 'Impossible d''établir la connexion Internet';
sInetOpenFailed = 'Impossible d''accéder à Internet';
sInvalidFtpLoc = 'Localisation FTP incorrecte';
sInvalidFtpDir = 'Répertoire FTP incorrect';
sFtpReadReqFailed = 'Impossible de lire la requête FTP';
sFtpDataNotAvail = 'Données FTP non disponibles';
sFtpOpenFileFailed = 'Impossible d''ouvrir le fichier FTP';
sFtpPutFileFailed = 'Could not save file via ftp to %s';
sSrcLoadFailed = 'Impossible de charger la source ';
sInvalidMemPtr = 'Pointeur incorrect';
sFmtErrorMsg = 'Ligne: %d Colonne: %d Erreur: %s';
sIndexOutOfBounds = 'ERREUR - INDEX HORS BORNES';
sExpMarkupDecl = 'Markup de déclaration attendu';
sIllAttrType = 'Type d''attribut invalide';
sIllAttrDefKeyw = 'Valeur par défaut incorrecte';
sSysIdMissing = 'Identificateur système manquant ';
sExtModifMissing = 'Modificateur externe manquant ';
sIllCondSectStart = 'Une section conditionnelle doit débuter par INCLUDE ou IGNORE';
sBadSepInModel = 'Mauvais séparateur dans un modèle de contenu';
sExpCommentOrCDATA = 'Commentaire ou section CDATA attendu ';
sUnexpectedEof = 'Fin de fichier inattendue';
sMismatchEndTag = 'Tag de fin sans correspondance ';
sIllCharInRef = 'Caractère illegal dans la référence';
sUndeclaredEntity = 'Référence à une entité non déclarée ';
sExpectedString = 'Chaîne attendue ';
sSpaceExpectedAt = 'Espace attendu en position ';
sUnexpEndOfInput = 'Fin de données pendant la recherche du délimiteur ';
sQuoteExpected = '" ou '' attendu';
sInvalidXMLVersion = 'XMLPartner does not support XML specification greater than %s';
sUnableCreateStr = 'Unable to create stream for input.';
sInvalidName = 'Invalid XML name';
sInvalidCommentText = 'Invalid comment text';
sCommentBeforeXMLDecl = 'Document cannot start with a comment if it also contains an XML declaration';
sInvalidCDataSection = 'Invalid characters in CDATA section';
sRedefinedAttr = 'Attributes cannot be redefined in a start tag';
sCircularEntRef = 'Circular reference to: ';
sInvAttrChar = 'Invalid character in attribute value: ';
sInvPCData = 'Invalid characters in element''s character data: ';
sDataAfterValDoc = 'There is invalid data after valid XML document';
sNoIntConditional = 'Conditional sections not allowed in internal subset of document type declaration';
sNotationNotDeclared = 'Notation not declared: ';
sInvPubIDChar = 'Invalid PublicID character: ';
sNoNDATAInPeDecl = 'NDATA not allowed in parameter entity declaration.';
sInvStandAloneVal = 'Standalone value must equal ''yes'' or ''no''';
sInvEncName = 'Invalid encoding declaration: ';
sInvVerNum = 'Invalid XML version number: ';
sInvEntityValue = 'Invalid character in entity value: ';
sNoCommentInMarkup = 'Comments can not be placed within other markup';
sNoPEInIntDTD = 'Parameter entities not allowed in DTD internal subset';
sXMLDecNotAtBeg = 'The XML declaration must appear before the first element';
sInvalidElementName = 'Invalid element name: ';
sBadParamEntNesting = 'Parameter-entity text must be properly nested: ';
sInvalidCharEncoding = 'Invalid character encoding specified.';
sAttrNotNum = 'Attribute %s of element %s does not have an integer value.';
{xpchrstm related errors}
sInvalidXMLChar = 'Invalid XML Character found';
sInvalidBEChar = 'Invalid (big-endian) UTF-16 character encoding';
sInvalidLEChar = 'Invalid (little-endian) UTF-16 character encoding';
sBadUTF8Char = 'Badly formed UTF-8 character in stream';
sErrEndOfDocument = 'Unexpected end of document stream';
sUCS_ISOConvertErr = 'Cannot convert UCS-4 character to ISO-8859-1';
sUCS_U16ConvertErr = 'Cannot convert UCS-4 character to UTF-16';
sUCS_U8ConverErr = 'Cannot convert UCS-4 character to UTF-8';
{EModem error string resource}
sModemDetectedBusy = 'Line is Busy';
sModemNoDialtone = 'No Dialtone';
sModemNoCarrier = 'No Carrier';
{TApdPager string resource}
sInitFail = 'Modem Initialization Failure';
sLoginFail = 'Failed to Login';
sMinorSrvErr = 'Minor Server Error';
sFatalSrvErr = 'Fatal Server Error';
sConnected = 'Modem Connected';
sCancelled = 'Cancel Requested';
sLineBusy = 'Line Busy';
sDisconnect = 'Disconnecing';
sNoDialtone = 'No Dialtone';
sMsgNotSent = 'Message not sent';
sWaitingToRedial = 'Waiting to Redial';
sLoginPrompt = 'Received Prompt for Login';
sLoggedIn = 'Successful Login';
sDialing = 'Now Dialing';
sRedialing = 'Now Redialing';
sLoginRetry = 'Retry Password for Login';
sMsgOkToSend = 'Ready to Send Message';
sSendingMsg = 'Now sending Message';
sMsgAck = 'Received, Send next block or end';
sMsgNak = 'Received Error, Resend Message';
sMsgRs = 'Unable to Send Page';
sMsgCompleted = 'Page Complete - Logging out if done';
sSendTimedOut = 'Timed Out - No Response';
sLoggingOut = 'Logging Out';
sDone = 'Done with Page';
{TApdVoIP error string resource}
sVoIPNotAvailable = 'Voice over IP not available (requires Windows 2000 and above)';
{TFaxLogCode description strings, used by TApdAbstractFax.LogMsg method}
slfaxNone = 'none';
slfaxTransmitStart = 'transmit started';
slfaxTransmitOk = 'transmit finished okay';
slfaxTransmitFail = 'transmit failed';
slfaxReceiveStart = 'receive started';
slfaxReceiveOk = 'receive finished okay';
slfaxReceiveSkip = 'receive skipped on request';
slfaxReceiveFail = 'receive failed';
+760
View File
@@ -0,0 +1,760 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Sulaiman Mah
* Sean B. Durkin
* Sebastian Zierer
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ADEXCEPT.PAS 5.00 *}
{*********************************************************}
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
{Options required for this unit}
{$G+,X+,F-,V-,P-,T-,B-}
unit AdExcept;
{-Apro exceptions}
interface
uses
Messages,
Windows,
SysUtils,
Classes,
OoMisc;
{ The design of the string resources has changed for APRO 4.04. We no longer }
{ use the string resource manager (AdSrmgr.pas), we now use resourcestrings. }
{ To use a different language, specify the language below. Only select one }
{ language when compiling. Selecting multiple languages will result in }
{ duplicate identifiers. If you need to support multiple langauages, use the }
{ separate string resource units to create your own language DLLs or other }
{ techniques. See the comments in the applicable language include file for }
{ more details (in English). }
{Select English by default, only one can be enabled at any given time }
{*** English ***}
{.$I AdExcept.inc}
{*** French ***}
{$I AdExcept.fra}
{*** German ***}
{.$I AdExcept.deu}
{*** Spanish ***}
{.$I AdExcept.esp}
{*** Swedish ***}
{.$I AdExcept.sw}
{*** Norwegian ***}
{.$I AdExcept.nor}
{*** Danish ***}
{.$I AdExcept.dk}
type
{General Apro exception class}
EAPDException = class(Exception)
private
FErrorCode : Integer;
public
constructor Create(const EC : Integer; PassThru : Boolean);
constructor CreateUnknown(const Msg : String; Dummy : Byte);
class function MapCodeToStringID(const Code : Integer) : Word;
{-Return a string table index for Code}
property ErrorCode : Integer
read FErrorCode write FErrorCode;
end;
{Apro exception groups}
EGeneral = class(EAPDException);
EOpenComm = class(EAPDException);
ESerialIO = class(EAPDException);
EModem = class(EAPDException);
ETrigger = class(EAPDException);
EPacket = class(EAPDException);
EProtocol = class(EAPDException);
EINI = class(EAPDException);
EFax = class(EAPDException);
ETapi = class(EAPDException);
ERas = class(EAPDException);
EAdTerminal = class(EAPDException);
EXML = class(EAPDException);
EStateMachine = class(EAPDException);
{Specific general exceptions}
EBadArgument = class(EGeneral);
EGotQuitMsg = class(EGeneral);
EBufferTooBig = class(EGeneral);
EPortNotAssigned = class(EGeneral);
EInternal = class(EGeneral);
EModemNotAssigned = class(EGeneral);
EPhonebookNotAssigned = class(EGeneral);
ECannotUseWithWinSock = class(EGeneral);
{Specific OpenComm exceptions}
EBadId = class(EOpenComm);
EBaudRate = class(EOpenComm);
EByteSize = class(EOpenComm);
EDefault = class(EOpenComm);
EHardware = class(EOpenComm);
EMemory = class(EOpenComm);
ECommNotOpen = class(EOpenComm);
EAlreadyOpen = class(EOpenComm);
ENoHandles = class(EOpenComm);
ENoTimers = class(EOpenComm);
ENoPortSelected = class(EOpenComm);
ENotOpenedByTapi = class(EOpenComm);
{Specific serial I/O exceptions}
ENullApi = class(ESerialIO);
ERegisterHandlerFailed= class(ESerialIO);
EPutBlockFail = class(ESerialIO);
EGetBlockFail = class(ESerialIO);
EOutputBufferTooSmall = class(ESerialIO);
EBufferIsEmpty = class(ESerialIO);
ETracingNotEnabled = class(ESerialIO);
ELoggingNotEnabled = class(ESerialIO);
EBaseAddressNotSet = class(ESerialIO);
{Specific modem exceptions}
EModemNotStarted = class(EModem);
EModemBusy = class(EModem);
EModemNotDialing = class(EModem);
EModemNotResponding = class(EModem);
EModemRejectedCommand = class(EModem);
EModemStatusMismatch = class(EModem);
{Specific dialer exceptions}
EAlreadyDialing = class(EModem);
ENotDialing = class(EModem);
EDeviceNotSelected = class(EModem);
EModemDetectedBusy = class(EModem);
ENoDialtone = class(EModem);
ENoCarrier = class(EModem);
ENoAnswer = class(EModem);
{Specific trigger exceptions}
ENoMoreTriggers = class(ETrigger);
ETriggerTooLong = class(ETrigger);
EBadTriggerHandle = class(ETrigger);
{Specific packet exceptions}
EInvalidProperty = class(EPacket);
EStringSizeError = class(EPacket);
{Specific protocol exceptions}
ETimeout = class(EProtocol);
ETooManyErrors = class(EProtocol);
ESequenceError = class(EProtocol);
{Specific INI database exceptions}
EKeyTooLong = class(EINI);
EDataTooLarge = class(EINI);
EIniWrite = class(EINI);
EIniRead = class(EINI);
ERecordExists = class(EINI);
ERecordNotFound = class(EINI);
EDatabaseFull = class(EINI);
EDatabaseEmpty = class(EINI);
EBadFieldList = class(EINI);
EBadFieldForIndex = class(EINI);
{.Z+}
{Specific FAX exceptions}
EFaxBadFormat = class(EFax);
EBadGraphicsFormat = class(EFax);
EConvertAbort = class(EFax);
EUnpackAbort = class(EFax);
ECantMakeBitmap = class(EFax);
ENoImageLoaded = class(EFax);
ENoImageBlockMarked = class(EFax);
EInvalidPageNumber = class(EFax);
EFaxBadMachine = class(EFax);
EFaxBadModemResult = class(EFax);
EFaxTrainError = class(EFax);
EFaxInitError = class(EFax);
EFaxBusy = class(EFax);
EFaxVoiceCall = class(EFax);
EFaxDataCall = class(EFax);
EFaxNoDialTone = class(EFax);
EFaxNoCarrier = class(EFax);
EFaxSessionError = class(EFax);
EFaxPageError = class(EFax);
EAlreadyMonitored = class(EFax);
ETapiAllocated = class(ETapi);
ETapiBadDeviceID = class(ETapi);
ETapiBearerModeUnavail = class(ETapi);
ETapiCallUnavail = class(ETapi);
ETapiCompletionOverrun = class(ETapi);
ETapiConferenceFull = class(ETapi);
ETapiDialBilling = class(ETapi);
ETapiDialDialtone = class(ETapi);
ETapiDialPrompt = class(ETapi);
ETapiDialQuiet = class(ETapi);
ETapiIncompatibleApiVersion = class(ETapi);
ETapiIncompatibleExtVersion = class(ETapi);
ETapiIniFileCorrupt = class(ETapi);
ETapiInUse = class(ETapi);
ETapiInvalAddress = class(ETapi);
ETapiInvalAddressID = class(ETapi);
ETapiInvalAddressMode = class(ETapi);
ETapiInvalAddressState = class(ETapi);
ETapiInvalAppHandle = class(ETapi);
ETapiInvalAppName = class(ETapi);
ETapiInvalBearerMode = class(ETapi);
ETapiInvalCallComplMode = class(ETapi);
ETapiInvalCallHandle = class(ETapi);
ETapiInvalCallParams = class(ETapi);
ETapiInvalCallPrivilege = class(ETapi);
ETapiInvalCallSelect = class(ETapi);
ETapiInvalCallState = class(ETapi);
ETapiInvalCallStatelist = class(ETapi);
ETapiInvalCard = class(ETapi);
ETapiInvalCompletionID = class(ETapi);
ETapiInvalConfCallHandle = class(ETapi);
ETapiInvalConsultCallHandle = class(ETapi);
ETapiInvalCountryCode = class(ETapi);
ETapiInvalDeviceClass = class(ETapi);
ETapiInvalDeviceHandle = class(ETapi);
ETapiInvalDialParams = class(ETapi);
ETapiInvalDigitList = class(ETapi);
ETapiInvalDigitMode = class(ETapi);
ETapiInvalDigits = class(ETapi);
ETapiInvalExtVersion = class(ETapi);
ETapiInvalGroupID = class(ETapi);
ETapiInvalLineHandle = class(ETapi);
ETapiInvalLineState = class(ETapi);
ETapiInvalLocation = class(ETapi);
ETapiInvalMediaList = class(ETapi);
ETapiInvalMediaMode = class(ETapi);
ETapiInvalMessageID = class(ETapi);
ETapiInvalParam = class(ETapi);
ETapiInvalParkID = class(ETapi);
ETapiInvalParkMode = class(ETapi);
ETapiInvalPointer = class(ETapi);
ETapiInvalPrivSelect = class(ETapi);
ETapiInvalRate = class(ETapi);
ETapiInvalRequestMode = class(ETapi);
ETapiInvalTerminalID = class(ETapi);
ETapiInvalTerminalMode = class(ETapi);
ETapiInvalTimeout = class(ETapi);
ETapiInvalTone = class(ETapi);
ETapiInvalToneList = class(ETapi);
ETapiInvalToneMode = class(ETapi);
ETapiInvalTransferMode = class(ETapi);
ETapiLineMapperFailed = class(ETapi);
ETapiNoConference = class(ETapi);
ETapiNoDevice = class(ETapi);
ETapiNoDriver = class(ETapi);
ETapiNoMem = class(ETapi);
ETapiNoRequest = class(ETapi);
ETapiNotOwner = class(ETapi);
ETapiNotRegistered = class(ETapi);
ETapiOperationFailed = class(ETapi);
ETapiOperationUnavail = class(ETapi);
ETapiRateUnavail = class(ETapi);
ETapiResourceUnavail = class(ETapi);
ETapiRequestOverrun = class(ETapi);
ETapiStructureTooSmall = class(ETapi);
ETapiTargetNotFound = class(ETapi);
ETapiTargetSelf = class(ETapi);
ETapiUninitialized = class(ETapi);
ETapiUserUserInfoTooBig = class(ETapi);
ETapiReinit = class(ETapi);
ETapiAddressBlocked = class(ETapi);
ETapiBillingRejected = class(ETapi);
ETapiInvalFeature = class(ETapi);
ETapiNoMultipleInstance = class(ETapi);
{Tapi exceptions that don't simply mirror TAPI error codes}
ETapiBusy = class(ETapi);
ETapiNotSet = class(ETapi);
ETapiNoSelect = class(ETapi);
ETapiLoadFail = class(ETapi);
ETapiGetAddrFail = class(ETapi);
ETapiUnexpected = class(ETapi);
ETapiVoiceNotSupported = class(ETapi);
ETapiWaveFail = class(ETapi);
ETapiTranslateFail = class(ETapi);
{VoIP specific errors}
EVoIPNotSupported = class(ETapi);
{Ras exceptions}
ERasLoadFail = class(ERas);
{Terminal exceptions}
EAdTerminalClass = class of EAdTerminal;
EAdTermRangeError = class(EAdTerminal);
EAdTermInvalidParameter = class(EAdTerminal);
EAdTermTooLarge = class(EAdTerminal);
{TApdPager Exceptions}
{$M+}
EApdPagerException = class (Exception)
private
FErrorCode : Integer;
public
{ Parameters to the construtor are reversed to prevent problems with
C++ Builder }
constructor Create (const ErrCode : Integer; const Msg : string);
published
property ErrorCode : Integer read FErrorCode;
end;
{$M-}
{TApdGSMPhone Exceptions}
{$M+}
EApdGSMPhoneException = class (Exception)
private
FErrorCode : Integer;
public
{ Parameters to the construtor are reversed to prevent problems with
C++ Builder }
constructor Create (const ErrCode : Integer; const Msg : string);
published
property ErrorCode : Integer read FErrorCode;
end;
{$M-}
{ XML exceptions }
{$M+}
EAdStreamError = class(EXML)
private
seFilePos : Integer;
public
constructor CreateError(const FilePos : Integer;
const Reason : DOMString);
property FilePos : Integer
read seFilePos;
end;
{$M-}
EAdFilterError = class(EAdStreamError)
private
feReason : DOMString;
feLine : Integer;
feLinePos : Integer;
public
constructor CreateError(const FilePos, Line, LinePos : Integer;
const Reason : DOMString);
property Reason : DOMString
read feReason;
property Line : Integer
read feLine;
property LinePos : Integer
read feLinePos;
end;
EAdParserError = class(EAdFilterError)
protected
public
constructor CreateError(Line, LinePos : Integer;
const Reason : DOMString);
end;
function CheckException(const Ctl : TComponent;
const Res : Integer) : Integer;
function XlatException(const E : Exception) : Integer;
{-Translate an exception into an error code}
function AproLoadStr(const ErrorCode : SmallInt) : string;
function AproLoadAnsiStr(const ErrorCode : SmallInt) : AnsiString;
function AproLoadZ(P : PAnsiChar; Code : Integer) : PAnsiChar; // --sm ansi
function ErrorMsg(const ErrorCode : SmallInt) : string;
function MessageNumberToString(MessageNumber : SmallInt) : string;
{.Z-}
implementation
{ include AdStrMap here to prevent circular references in AdStrMap }
uses
AnsiStrings, AdStrMap;
function AproLoadZ(P : PAnsiChar; Code : Integer) : PAnsiChar;
begin
Result := AnsiStrings.StrPCopy(P, AproLoadAnsiStr(Code));
end;
function AproLoadStr(const ErrorCode : SmallInt) : string;
{-Return an error message for ErrorCode}
begin
Result := MessageNumberToString(ErrorCode);
if Result = '' then
Result := SysErrorMessage(ErrorCode);
end;
function AproLoadAnsiStr(const ErrorCode : SmallInt) : AnsiString;
begin
Result := AnsiString(AproLoadStr(ErrorCode));
end;
{Alias for function above}
function ErrorMsg(const ErrorCode : SmallInt) : string;
{-Return an error message for ErrorCode}
begin
Result := AproLoadStr(ErrorCode);
end;
function MessageNumberToString(MessageNumber : SmallInt) : string;
var
Middle : integer;
Min : integer;
Max : integer;
begin
Result := '';
Min := 0;
Max := AdMaxMessages;
MessageNumber := abs(MessageNumber);
while (Min <= Max) do begin
Middle := Round ((Min + Max) / 2);
if abs(AdMessageNumberLookup[Middle].MessageNumber) = abs(MessageNumber) then begin
{ found it }
Result := AdMessageNumberLookup[Middle].MessageString;
Exit;
end else if abs(MessageNumber) < abs(AdMessageNumberLookup[Middle].MessageNumber) then
Max := Middle - 1
else
Min := Middle + 1;
end;
end;
constructor EAPDException.Create(const EC : Integer; PassThru : Boolean);
begin
FErrorCode := EC;
inherited Create(AproLoadStr(Abs(EC)));
end;
constructor EAPDException.CreateUnknown(const Msg : String; Dummy : Byte);
begin
ErrorCode := 0;
inherited Create(Msg);
end;
class function EAPDException.MapCodeToStringID(const Code : Integer) : Word;
begin
Result := Abs(Code);
end;
function CheckException(const Ctl : TComponent; const Res : Integer) : Integer;
{-Check Res, raise appropriate exception if non-zero}
var
ErrorMsg : String;
FileIO : EInOutError;
begin
Result := Res;
if (Res < ecOk) then
if not (csLoading in Ctl.ComponentState) then begin
case Res of
ecHardwareFailure..ecFileNotFound:
begin
{find the error message for the error}
ErrorMsg := AproLoadStr(Abs(Res));
{if we've run out of memory, raise that exception}
if (Res = ecOutOfMemory) then
OutOfMemoryError
{otherwise, raise a file I/O exception}
else begin
FileIO := EInOutError.Create(ErrorMsg);
FileIO.ErrorCode := Abs(Res);
raise FileIO;
end;
end;
{EGeneral}
ecBadArgument : raise EBadArgument.Create(Res, False);
ecGotQuitMsg : raise EGotQuitMsg.Create(Res, False);
ecBufferTooBig : raise EBufferTooBig.Create(Res, False);
ecPortNotAssigned : raise EPortNotAssigned.Create(Res, False);
ecInternal,
ecNoFieldsDefined,
ecNoIndexKey,
ecDatabaseNotPrepared : raise EInternal.Create(Res, False);
ecModemNotAssigned : raise EModemNotAssigned.Create(Res, False);
ecPhonebookNotAssigned : raise EPhonebookNotAssigned.Create(Res, False);
ecCannotUseWithWinSock : raise ECannotUseWithWinsock.Create(Res, False);
{EOpenComm}
ecBadId : raise EBadId.Create(Res, False);
ecBaudRate : raise EBaudRate.Create(Res, False);
ecByteSize : raise EByteSize.Create(Res, False);
ecDefault : raise EDefault.Create(Res, False);
ecHardware : raise EHardware.Create(Res, False);
ecMemory : raise EMemory.Create(Res, False);
ecCommNotOpen : raise ECommNotOpen.Create(Res, False);
ecAlreadyOpen : raise EAlreadyOpen.Create(Res, False);
ecNoHandles : raise ENoHandles.Create(Res, False);
ecNoTimers : raise ENoTimers.Create(Res, False);
ecNoPortSelected : raise ENoPortSelected.Create(Res, False);
ecNotOpenedByTapi : raise ENotOpenedByTapi.Create(Res, False);
{ESerialIO}
ecNullApi : raise ENullApi.Create(Res, False);
ecRegisterHandlerFailed : raise ERegisterHandlerFailed.Create(Res, False);
ecPutBlockFail : raise EPutBlockFail.Create(Res, False);
ecGetBlockFail : raise EGetBlockFail.Create(Res, False);
ecOutputBufferTooSmall : raise EOutputBufferTooSmall.Create(Res, False);
ecBufferIsEmpty : raise EBufferIsEmpty.Create(Res, False);
ecTracingNotEnabled : raise ETracingNotEnabled.Create(Res, False);
ecLoggingNotEnabled : raise ELoggingNotEnabled.Create(Res, False);
ecBaseAddressNotSet : raise EBaseAddressNotSet.Create(Res, False);
{EModem}
ecModemNotStarted : raise EModemNotStarted.Create(Res, False);
ecModemBusy : raise EModemBusy.Create(Res, False);
ecModemNotDialing : raise EModemNotDialing.Create(Res, False);
ecNotDialing : raise ENotDialing.Create(Res, False);
ecAlreadyDialing : raise EAlreadyDialing.Create(Res, False);
ecModemNotResponding : raise EModemNotResponding.Create(Res, False);
ecModemRejectedCommand : raise EModemRejectedCommand.Create(Res, False);
ecModemStatusMismatch : raise EModemStatusMismatch.Create(Res, False);
{ETrigger}
ecNoMoreTriggers : raise ENoMoreTriggers.Create(Res, False);
ecTriggerTooLong : raise ETriggerTooLong.Create(Res, False);
ecBadTriggerHandle : raise EBadTriggerHandle.Create(Res, False);
{EProtocol}
ecTimeout : raise EProtocol.Create(Res, False);
ecTooManyErrors : raise EProtocol.Create(Res, False);
ecSequenceError : raise EProtocol.Create(Res, False);
{EIni}
ecKeyTooLong : raise EKeyTooLong.Create(Res, False);
ecDataTooLarge : raise EDataTooLarge.Create(Res, False);
ecIniWrite : raise EIniWrite.Create(Res, False);
ecIniRead : raise EIniRead.Create(Res, False);
ecRecordExists : raise ERecordExists.Create(Res, False);
ecRecordNotFound : raise ERecordNotFound.Create(Res, False);
ecDatabaseFull : raise EDatabaseFull.Create(Res, False);
ecDatabaseEmpty : raise EDatabaseEmpty.Create(Res, False);
ecBadFieldList : raise EBadFieldList.Create(Res, False);
ecBadFieldForIndex : raise EBadFieldForIndex.Create(Res, False);
{EFax}
ecFaxBadFormat : raise EFaxBadFormat.Create(Res, False);
ecBadGraphicsFormat : raise EBadGraphicsFormat.Create(Res, False);
ecConvertAbort : raise EConvertAbort.Create(Res, False);
ecUnpackAbort : raise EUnpackAbort.Create(Res, False);
ecCantMakeBitmap : raise ECantMakeBitmap.Create(Res, False);
ecInvalidPageNumber : raise EInvalidPageNumber.Create(Res, False);
ecFaxBadMachine : raise EFaxBadMachine.Create(Res, False);
ecFaxBadModemResult : raise EFaxBadModemResult.Create(Res, False);
ecFaxTrainError : raise EFaxTrainError.Create(Res, False);
ecFaxInitError : raise EFaxInitError.Create(Res, False);
ecFaxBusy : raise EFaxBusy.Create(Res, False);
ecFaxVoiceCall : raise EFaxVoiceCall.Create(Res, False);
ecFaxDataCall : raise EFaxDataCall.Create(Res, False);
ecFaxNoDialTone : raise EFaxNoDialTone.Create(Res, False);
ecFaxNoCarrier : raise EFaxNoCarrier.Create(Res, False);
ecFaxSessionError : raise EFaxSessionError.Create(Res, False);
ecFaxPageError : raise EFaxPageError.Create(Res, False);
ecAllocated : raise ETapiAllocated.Create(Res, False);
ecBadDeviceID : raise ETapiBadDeviceID.Create(Res, False);
ecBearerModeUnavail : raise ETapiBearerModeUnavail.Create(Res, False);
ecCallUnavail : raise ETapiCallUnavail.Create(Res, False);
ecCompletionOverrun : raise ETapiCompletionOverrun.Create(Res, False);
ecConferenceFull : raise ETapiConferenceFull.Create(Res, False);
ecDialBilling : raise ETapiDialBilling.Create(Res, False);
ecDialDialtone : raise ETapiDialDialtone.Create(Res, False);
ecDialPrompt : raise ETapiDialPrompt.Create(Res, False);
ecDialQuiet : raise ETapiDialQuiet.Create(Res, False);
ecIncompatibleApiVersion: raise ETapiIncompatibleApiVersion.Create(Res, False);
ecIncompatibleExtVersion: raise ETapiIncompatibleExtVersion.Create(Res, False);
ecIniFileCorrupt : raise ETapiIniFileCorrupt.Create(Res, False);
ecInUse : raise ETapiInUse.Create(Res, False);
ecInvalAddress : raise ETapiInvalAddress.Create(Res, False);
ecInvalAddressID : raise ETapiInvalAddressID.Create(Res, False);
ecInvalAddressMode : raise ETapiInvalAddressMode.Create(Res, False);
ecInvalAddressState : raise ETapiInvalAddressState.Create(Res, False);
ecInvalAppHandle : raise ETapiInvalAppHandle.Create(Res, False);
ecInvalAppName : raise ETapiInvalAppName.Create(Res, False);
ecInvalBearerMode : raise ETapiInvalBearerMode.Create(Res, False);
ecInvalCallComplMode : raise ETapiInvalCallComplMode.Create(Res, False);
ecInvalCallHandle : raise ETapiInvalCallHandle.Create(Res, False);
ecInvalCallParams : raise ETapiInvalCallParams.Create(Res, False);
ecInvalCallPrivilege : raise ETapiInvalCallPrivilege.Create(Res, False);
ecInvalCallSelect : raise ETapiInvalCallSelect.Create(Res, False);
ecInvalCallState : raise ETapiInvalCallState.Create(Res, False);
ecInvalCallStatelist : raise ETapiInvalCallStatelist.Create(Res, False);
ecInvalCard : raise ETapiInvalCard.Create(Res, False);
ecInvalCompletionID : raise ETapiInvalCompletionID.Create(Res, False);
ecInvalConfCallHandle : raise ETapiInvalConfCallHandle.Create(Res, False);
ecInvalConsultCallHandle: raise ETapiInvalConsultCallHandle.Create(Res, False);
ecInvalCountryCode : raise ETapiInvalCountryCode.Create(Res, False);
ecInvalDeviceClass : raise ETapiInvalDeviceClass.Create(Res, False);
ecInvalDeviceHandle : raise ETapiInvalDeviceHandle.Create(Res, False);
ecInvalDialParams : raise ETapiInvalDialParams.Create(Res, False);
ecInvalDigitList : raise ETapiInvalDigitList.Create(Res, False);
ecInvalDigitMode : raise ETapiInvalDigitMode.Create(Res, False);
ecInvalDigits : raise ETapiInvalDigits.Create(Res, False);
ecInvalExtVersion : raise ETapiInvalExtVersion.Create(Res, False);
ecInvalGroupID : raise ETapiInvalGroupID.Create(Res, False);
ecInvalLineHandle : raise ETapiInvalLineHandle.Create(Res, False);
ecInvalLineState : raise ETapiInvalLineState.Create(Res, False);
ecInvalLocation : raise ETapiInvalLocation.Create(Res, False);
ecInvalMediaList : raise ETapiInvalMediaList.Create(Res, False);
ecInvalMediaMode : raise ETapiInvalMediaMode.Create(Res, False);
ecInvalMessageID : raise ETapiInvalMessageID.Create(Res, False);
ecInvalParam : raise ETapiInvalParam.Create(Res, False);
ecInvalParkID : raise ETapiInvalParkID.Create(Res, False);
ecInvalParkMode : raise ETapiInvalParkMode.Create(Res, False);
ecInvalPointer : raise ETapiInvalPointer.Create(Res, False);
ecInvalPrivSelect : raise ETapiInvalPrivSelect.Create(Res, False);
ecInvalRate : raise ETapiInvalRate.Create(Res, False);
ecInvalRequestMode : raise ETapiInvalRequestMode.Create(Res, False);
ecInvalTerminalID : raise ETapiInvalTerminalID.Create(Res, False);
ecInvalTerminalMode : raise ETapiInvalTerminalMode.Create(Res, False);
ecInvalTimeout : raise ETapiInvalTimeout.Create(Res, False);
ecInvalTone : raise ETapiInvalTone.Create(Res, False);
ecInvalToneList : raise ETapiInvalToneList.Create(Res, False);
ecInvalToneMode : raise ETapiInvalToneMode.Create(Res, False);
ecInvalTransferMode : raise ETapiInvalTransferMode.Create(Res, False);
ecLineMapperFailed : raise ETapiLineMapperFailed.Create(Res, False);
ecNoConference : raise ETapiNoConference.Create(Res, False);
ecNoDevice : raise ETapiNoDevice.Create(Res, False);
ecNoDriver : raise ETapiNoDriver.Create(Res, False);
ecNoMem : raise ETapiNoMem.Create(Res, False);
ecNoRequest : raise ETapiNoRequest.Create(Res, False);
ecNotOwner : raise ETapiNotOwner.Create(Res, False);
ecNotRegistered : raise ETapiNotRegistered.Create(Res, False);
ecOperationFailed : raise ETapiOperationFailed.Create(Res, False);
ecOperationUnavail : raise ETapiOperationUnavail.Create(Res, False);
ecRateUnavail : raise ETapiRateUnavail.Create(Res, False);
ecResourceUnavail : raise ETapiResourceUnavail.Create(Res, False);
ecRequestOverrun : raise ETapiRequestOverrun.Create(Res, False);
ecStructureTooSmall : raise ETapiStructureTooSmall.Create(Res, False);
ecTargetNotFound : raise ETapiTargetNotFound.Create(Res, False);
ecTargetSelf : raise ETapiTargetSelf.Create(Res, False);
ecUninitialized : raise ETapiUninitialized.Create(Res, False);
ecUserUserInfoTooBig : raise ETapiUserUserInfoTooBig.Create(Res, False);
ecReinit : raise ETapiReinit.Create(Res, False);
ecAddressBlocked : raise ETapiAddressBlocked.Create(Res, False);
ecBillingRejected : raise ETapiBillingRejected.Create(Res, False);
ecInvalFeature : raise ETapiInvalFeature.Create(Res, False);
ecNoMultipleInstance : raise ETapiNoMultipleInstance.Create(Res, False);
ecTapiBusy : raise ETapiBusy.Create(Res, False);
ecTapiNotSet : raise ETapiNotSet.Create(Res, False);
ecTapiNoSelect : raise ETapiNoSelect.Create(Res, False);
ecTapiLoadFail : raise ETapiLoadFail.Create(Res, False);
ecTapiGetAddrFail : raise ETapiGetAddrFail.Create(Res, False);
ecTapiVoiceNotSupported : raise ETapiVoiceNotSupported.Create(Res, False);
ecTapiWaveFail : raise ETapiWaveFail.Create(Res, False);
ecTapiTranslateFail : raise ETapiTranslateFail.Create(Res, False);
{ERas}
ecRasLoadFail : raise ERasLoadFail.Create(Res, False);
{Couldn't find error message}
else raise EAPDException.CreateUnknown('Apro exception', 0);
end;
end;
end;
function XlatException(const E : Exception) : Integer;
{-Translate an exception into an error code}
begin
if (E is EApdException) then
Result := EApdException(E).ErrorCode
else if (E is EInOutError) then
Result := -EInOutError(E).ErrorCode
else if (E is EOutOfMemory) then
Result := ecOutOfMemory
else
Result := -9999;
end;
{ EAdStreamError }
constructor EAdStreamError.CreateError(const FilePos: Integer;
const Reason: DOMString);
begin
inherited CreateUnknown(Reason, 0);
seFilePos := FilePos;
end;
{ EAdFilterError }
constructor EAdFilterError.CreateError(const FilePos, Line,
LinePos: Integer; const Reason: DOMString);
begin
inherited CreateError(FilePos, Reason);
feLine := Line;
feLinePos := LinePos;
feReason := Reason;
end;
{ EAdParserError }
constructor EAdParserError.CreateError(Line, LinePos: Integer;
const Reason: DOMString);
begin
inherited CreateError(FilePos, Line, LinePos, Reason);
end;
{ EApdGSMPhoneException }
constructor EApdGSMPhoneException.Create(const ErrCode: Integer;
const Msg: string);
begin
inherited Create (Msg);
FErrorCode := ErrCode;
end;
{ EApdPagerException }
constructor EApdPagerException.Create(const ErrCode: Integer;
const Msg: string);
begin
inherited Create (Msg);
FErrorCode := ErrCode;
end;
end.
+3016
View File
File diff suppressed because it is too large Load Diff
+74
View File
@@ -0,0 +1,74 @@
object ComSelectForm: TComSelectForm
Left = 336
Top = 234
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'Select Port'
ClientHeight = 131
ClientWidth = 220
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
Position = poScreenCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 18
Top = 14
Width = 176
Height = 13
Caption = 'The configured serial port is not valid.'
end
object Label2: TLabel
Left = 18
Top = 30
Width = 133
Height = 13
Caption = 'Please choose another port.'
end
object Bevel1: TBevel
Left = 8
Top = 8
Width = 201
Height = 42
end
object OkBtn: TBitBtn
Left = 8
Top = 95
Width = 85
Height = 27
Caption = 'OK'
Default = True
DoubleBuffered = True
ModalResult = 1
NumGlyphs = 2
ParentDoubleBuffered = False
TabOrder = 0
end
object AbortBtn: TBitBtn
Left = 124
Top = 95
Width = 85
Height = 27
Caption = 'Cancel'
DoubleBuffered = True
ModalResult = 3
NumGlyphs = 2
ParentDoubleBuffered = False
TabOrder = 1
end
object PortsComboBox: TComboBox
Left = 8
Top = 64
Width = 201
Height = 21
Style = csDropDownList
ItemHeight = 0
TabOrder = 2
end
end
+198
View File
@@ -0,0 +1,198 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Sebastian Zierer
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ADSELCOM.PAS 5.00 *}
{*********************************************************}
{* Port selection dialog, IsPortAvailable method *}
{*********************************************************}
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
{Options required for this unit}
{$G+,X+,F+,J+}
{$C MOVEABLE,DEMANDLOAD,DISCARDABLE}
unit AdSelCom;
{-Com port selection dialog}
interface
uses
Windows,
SysUtils,
Classes,
Messages,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
ExtCtrls,
Buttons,
OoMisc,
AwUser,
{$IFNDEF UseAwWin32}
LnsWin32;
{$ELSE}
AwWin32;
{$ENDIF}
type
TComSelectForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
OkBtn: TBitBtn;
AbortBtn: TBitBtn;
Bevel1: TBevel;
PortsComboBox: TComboBox;
procedure FormCreate(Sender: TObject);
private
public
function SelectedCom : String;
function SelectedComNum : Word;
end;
function IsPortAvailable(ComNum : Cardinal) : Boolean;
const
{True to create a dispatcher to validate the port; false to open the
port using direct API calls}
UseDispatcherForAvail : Boolean = True;
{True to return True even if the port is in use; False to return False
if the port is in use}
ShowPortsInUse : Boolean = True;
implementation
{$R *.DFM}
function IsPortAvailable(ComNum : Cardinal) : Boolean;
function MakeComName(const Dest : PChar; const ComNum : Cardinal) : PChar;
{-Return a string like 'COMXX'}
begin
StrFmt(Dest,'\\.\COM%d',[ComNum]);
MakeComName := Dest;
end;
var
ComName : array[0..12] of Char;
Res : Integer;
DeviceLayer : TApdBaseDispatcher;
CC: TCommConfig;
Len: Cardinal;
begin
DeviceLayer := nil;
try
if (ComNum = 0) then
Result := False
else begin
if UseDispatcherForAvail then
begin
DeviceLayer := TApdWin32Dispatcher.Create(nil);
if ShowPortsInUse then
begin
Result := DeviceLayer.CheckPort(MakeComName(ComName,ComNum));
end
else
begin
Res := DeviceLayer.OpenCom(MakeComName(ComName,ComNum), 64, 64);
if (Res < 0) then
if ShowPortsInUse then
Result := GetLastError = DWORD(Abs(ecAccessDenied))
else
Result := False
else begin
Result := True;
DeviceLayer.CloseCom;
end;
end;
end else
begin
if ShowPortsInUse then //SZ: optimize this one - otherwise bluetooth devices may request confirmation
begin
FillChar(CC, SizeOf(CC), 0);
CC.dwSize := SizeOf(CC);
Len := SizeOf(CC);
Result := GetDefaultCommConfig(MakeComName(ComName, ComNum) + 4, CC, Len);
end
else
begin
Res := CreateFile(MakeComName(ComName, ComNum),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or
FILE_FLAG_OVERLAPPED,
0);
if Res > 0 then begin
CloseHandle(Res);
Result := True;
end else begin
if ShowPortsInUse then
Result := GetLastError = DWORD(Abs(ecAccessDenied))
else
Result := False;
end;
end;
end;
end;
finally
if UseDispatcherForAvail then
DeviceLayer.Free;
end;
end;
procedure TComSelectForm.FormCreate(Sender: TObject);
var
I : Integer;
S : string;
begin
for I := 1 to MaxComHandles do
if IsPortAvailable(I) then begin
S := Format('COM%d', [I]);
PortsComboBox.Items.Add(S);
end;
PortsComboBox.ItemIndex := 0;
end;
function TComSelectForm.SelectedCom : String;
begin
Result := PortsComboBox.Items[PortsComboBox.ItemIndex];
end;
function TComSelectForm.SelectedComNum : Word;
var
S : String;
begin
S := PortsComboBox.Items[PortsComboBox.ItemIndex];
S := Copy(S, 4, 255);
Result := StrToInt(S);
end;
end.
+959
View File
@@ -0,0 +1,959 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* ADSTRMAP.PAS 4.06 *}
{*********************************************************}
(* Defines the string mapping tables *)
{*********************************************************}
{
This replaces the string resource manager. Disable the
UseResourceStrings define in AwDefine.inc to use the string
resource manager instead if desired.
}
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
unit AdStrMap;
interface
uses
OOMisc, AdExcept;
const
AdMaxMessages = 896; { the number of messages in the message map array } // SWB
type
AdMessageNumberLookupRecord = record
MessageNumber : integer;
MessageString : string;
end;
const
AdMessageNumberLookup : array [0..AdMaxMessages] of AdMessageNumberLookupRecord =(
{ # } {Error mnemonic or code} {Error string}
{ 0}(MessageNumber : ecOK; MessageString : secOK),
{ 2}(MessageNumber : ecFileNotFound; MessageString : secFileNotFound),
{ 3}(MessageNumber : ecPathNotFound; MessageString : secPathNotFound),
{ 4}(MessageNumber : ecTooManyFiles; MessageString : secTooManyFiles),
{ 5}(MessageNumber : ecAccessDenied; MessageString : secAccessDenied),
{ 6}(MessageNumber : ecInvalidHandle; MessageString : secInvalidHandle),
{ 8}(MessageNumber : ecOutOfMemory; MessageString : secOutOfMemory),
{ 15}(MessageNumber : ecInvalidDrive; MessageString : secInvalidDrive),
{ 18}(MessageNumber : ecNoMoreFiles; MessageString : secNoMoreFiles),
{ 100}(MessageNumber : ecDiskRead; MessageString : secDiskRead),
{ 101}(MessageNumber : ecDiskFull; MessageString : secDiskFull),
{ 102}(MessageNumber : ecNotAssigned; MessageString : secNotAssigned),
{ 103}(MessageNumber : ecNotOpen; MessageString : secNotOpen),
{ 104}(MessageNumber : ecNotOpenInput; MessageString : secNotOpenInput),
{ 105}(MessageNumber : ecNotOpenOutput; MessageString : secNotOpenOutput),
{ 150}(MessageNumber : ecWriteProtected; MessageString : secWriteProtected),
{ 151}(MessageNumber : ecUnknownUnit; MessageString : secUnknownUnit),
{ 152}(MessageNumber : ecDriveNotReady; MessageString : secDriveNotReady),
{ 153}(MessageNumber : ecUnknownCommand; MessageString : secUnknownCommand),
{ 154}(MessageNumber : ecCrcError; MessageString : secCrcError),
{ 155}(MessageNumber : ecBadStructLen; MessageString : secBadStructLen),
{ 156}(MessageNumber : ecSeekError; MessageString : secSeekError),
{ 157}(MessageNumber : ecUnknownMedia; MessageString : secUnknownMedia),
{ 158}(MessageNumber : ecSectorNotFound; MessageString : secSectorNotFound),
{ 159}(MessageNumber : ecOutOfPaper; MessageString : secOutOfPaper),
{ 160}(MessageNumber : ecDeviceWrite; MessageString : secDeviceWrite),
{ 161}(MessageNumber : ecDeviceRead; MessageString : secDeviceRead),
{ 162}(MessageNumber : ecHardwareFailure; MessageString : secHardwareFailure),
{ 1001}(MessageNumber : ecBadHandle; MessageString : secBadHandle),
{ 1002}(MessageNumber : ecBadArgument; MessageString : secBadArgument),
{ 1003}(MessageNumber : ecGotQuitMsg; MessageString : secGotQuitMsg),
{ 1004}(MessageNumber : ecBufferTooBig; MessageString : secBufferTooBig),
{ 1005}(MessageNumber : ecPortNotAssigned; MessageString : secPortNotAssigned),
{ 1006}(MessageNumber : ecInternal; MessageString : secInternal),
{ 1007}(MessageNumber : ecModemNotAssigned; MessageString : secModemNotAssigned),
{ 1008}(MessageNumber : ecPhonebookNotAssigned; MessageString : secPhonebookNotAssigned),
{ 1009}(MessageNumber : ecCannotUseWithWinSock; MessageString : secCannotUseWithWinSock),
{ 2001}(MessageNumber : ecBadId; MessageString : secBadId),
{ 2002}(MessageNumber : ecBaudRate; MessageString : secBaudRate),
{ 2003}(MessageNumber : ecByteSize; MessageString : secByteSize),
{ 2004}(MessageNumber : ecDefault; MessageString : secDefault),
{ 2005}(MessageNumber : ecHardware; MessageString : secHardware),
{ 2006}(MessageNumber : ecMemory; MessageString : secMemory),
{ 2007}(MessageNumber : ecCommNotOpen; MessageString : secCommNotOpen),
{ 2008}(MessageNumber : ecAlreadyOpen; MessageString : secAlreadyOpen),
{ 2009}(MessageNumber : ecNoHandles; MessageString : secNoHandles),
{ 2010}(MessageNumber : ecNoTimers; MessageString : secNoTimers),
{ 2011}(MessageNumber : ecNoPortSelected; MessageString : secNoPortSelected),
{ 2012}(MessageNumber : ecNotOpenedByTapi; MessageString : secNotOpenedByTapi),
{ 3001}(MessageNumber : ecNullApi; MessageString : secNullApi),
{ 3002}(MessageNumber : ecNotSupported; MessageString : secNotSupported),
{ 3003}(MessageNumber : ecRegisterHandlerFailed; MessageString : secRegisterHandlerFailed),
{ 3004}(MessageNumber : ecPutBlockFail; MessageString : secPutBlockFail),
{ 3005}(MessageNumber : ecGetBlockFail; MessageString : secGetBlockFail),
{ 3006}(MessageNumber : ecOutputBufferTooSmall; MessageString : secOutputBufferTooSmall),
{ 3007}(MessageNumber : ecBufferIsEmpty; MessageString : secBufferIsEmpty),
{ 3008}(MessageNumber : ecTracingNotEnabled; MessageString : secTracingNotEnabled),
{ 3009}(MessageNumber : ecLoggingNotEnabled; MessageString : secLoggingNotEnabled),
{ 3010}(MessageNumber : ecBaseAddressNotSet; MessageString : secBaseAddressNotSet),
{ 4001}(MessageNumber : ecModemNotStarted; MessageString : secModemNotStarted),
{ 4002}(MessageNumber : ecModemBusy; MessageString : secModemBusy),
{ 4003}(MessageNumber : ecModemNotDialing; MessageString : secModemNotDialing),
{ 4004}(MessageNumber : ecNotDialing; MessageString : secNotDialing),
{ 4005}(MessageNumber : ecAlreadyDialing; MessageString : secAlreadyDialing),
{ 4006}(MessageNumber : ecModemNotResponding; MessageString : secModemNotResponding),
{ 4007}(MessageNumber : ecModemRejectedCommand; MessageString : secModemRejectedCommand),
{ 4008}(MessageNumber : ecModemStatusMismatch; MessageString : secModemStatusMismatch),
{ 4009}(MessageNumber : ecDeviceNotSelected; MessageString : secDeviceNotSelected),
{ 4010}(MessageNumber : ecModemDetectedBusy; MessageString : secModemDetectedBusy),
{ 4011}(MessageNumber : ecModemNoDialtone; MessageString : secModemNoDialtone),
{ 4012}(MessageNumber : ecModemNoCarrier; MessageString : secModemNoCarrier),
{ 4013}(MessageNumber : ecModemNoAnswer; MessageString : secModemNoAnswer),
{ 4014}(MessageNumber : ecInitFail; MessageString : secInitFail),
{ 4015}(MessageNumber : ecLoginFail; MessageString : secLoginFail),
{ 4016}(MessageNumber : ecMinorSrvErr; MessageString : secMinorSrvErr),
{ 4017}(MessageNumber : ecFatalSrvErr; MessageString : secFatalSrvErr),
{ 4020}(MessageNumber : ecModemNotFound; MessageString : secModemNotFound),
{ 4021}(MessageNumber : ecInvalidFile; MessageString : secInvalidFile),
{ 4101}(MessageNumber : 4101; MessageString : spbeDeleteQuery),
{ 4200}(MessageNumber : 4200; MessageString : sdsmMsgBase),
{ 4201}(MessageNumber : 4201; MessageString : sdsmMsgReady),
{ 4202}(MessageNumber : 4202; MessageString : sdsmMsgInitialize),
{ 4203}(MessageNumber : 4203; MessageString : sdsmMsgInitializeTimeout),
{ 4204}(MessageNumber : 4204; MessageString : sdsmMsgAutoAnswerBackground),
{ 4205}(MessageNumber : 4205; MessageString : sdsmMsgAutoAnswerWait),
{ 4206}(MessageNumber : 4206; MessageString : sdsmMsgAnswerWait),
{ 4207}(MessageNumber : 4207; MessageString : sdsmMsgDialWait),
{ 4208}(MessageNumber : 4208; MessageString : sdsmMsgDialCycle),
{ 4209}(MessageNumber : 4209; MessageString : sdsmMsgNoDialtone),
{ 4210}(MessageNumber : 4210; MessageString : sdsmMsgConnectWait),
{ 4211}(MessageNumber : 4211; MessageString : sdsmMsgConnected),
{ 4212}(MessageNumber : 4212; MessageString : sdsmMsgHangup),
{ 4213}(MessageNumber : 4213; MessageString : sdsmMsgCancel),
{ 4301}(MessageNumber : 4301; MessageString : sdddCycling),
{ 4302}(MessageNumber : 4302; MessageString : sdddRetryWaiting),
{ 4303}(MessageNumber : 4303; MessageString : sdddRetryWaitOver),
{ 4304}(MessageNumber : 4304; MessageString : sdddDialing),
{ 4305}(MessageNumber : 4305; MessageString : sdddModemConnect),
{ 4306}(MessageNumber : 4306; MessageString : sdddModemConnectAt),
{ 4307}(MessageNumber : 4307; MessageString : sdddModemVoice),
{ 4308}(MessageNumber : 4308; MessageString : sdddModemError),
{ 4309}(MessageNumber : 4309; MessageString : sdddModemNoCarrier),
{ 4310}(MessageNumber : 4310; MessageString : sdddModemBusy),
{ 4311}(MessageNumber : 4311; MessageString : sdddModemNoDialTone),
{ 4312}(MessageNumber : 4312; MessageString : sdddDialTimedOut),
{ 4401}(MessageNumber : 4401; MessageString : sdpeMustEnterName),
{ 4402}(MessageNumber : 4402; MessageString : sdpeMustEnterNumber),
{ 4403}(MessageNumber : 4403; MessageString : sdpeNameExists),
{ 4500}(MessageNumber : csOpenPort; MessageString : scsOpenPort),
{ 4501}(MessageNumber : csPortOpened; MessageString : scsPortOpened),
{ 4502}(MessageNumber : csConnectDevice; MessageString : scsConnectDevice),
{ 4503}(MessageNumber : csDeviceConnected; MessageString : scsDeviceConnected),
{ 4504}(MessageNumber : csAllDevicesConnected; MessageString : scsAllDevicesConnected),
{ 4505}(MessageNumber : csAuthenticate; MessageString : scsAuthenticate),
{ 4506}(MessageNumber : csAuthNotify; MessageString : scsAuthNotify),
{ 4507}(MessageNumber : csAuthRetry; MessageString : scsAuthRetry),
{ 4508}(MessageNumber : csAuthCallback; MessageString : scsAuthCallback),
{ 4509}(MessageNumber : csAuthChangePassword; MessageString : scsAuthChangePassword),
{ 4510}(MessageNumber : csAuthProject; MessageString : scsAuthProject),
{ 4511}(MessageNumber : csAuthLinkSpeed; MessageString : scsAuthLinkSpeed),
{ 4512}(MessageNumber : csAuthAck; MessageString : scsAuthAck),
{ 4513}(MessageNumber : csReAuthenticate; MessageString : scsReAuthenticate),
{ 4514}(MessageNumber : csAuthenticated; MessageString : scsAuthenticated),
{ 4515}(MessageNumber : csPrepareForCallback; MessageString : scsPrepareForCallback),
{ 4516}(MessageNumber : csWaitForModemReset; MessageString : scsWaitForModemReset),
{ 4517}(MessageNumber : csWaitForCallback; MessageString : scsWaitForCallback),
{ 4518}(MessageNumber : csProjected; MessageString : scsProjected),
{ 4519}(MessageNumber : csStartAuthentication; MessageString : scsStartAuthentication),
{ 4520}(MessageNumber : csCallbackComplete; MessageString : scsCallbackComplete),
{ 4521}(MessageNumber : csLogonNetwork; MessageString : scsLogonNetwork),
{ 4522}(MessageNumber : csSubEntryConnected; MessageString : scsSubEntryConnected),
{ 4523}(MessageNumber : csSubEntryDisconnected; MessageString : scsSubEntryDisconnected),
{ 4550}(MessageNumber : csRasInteractive; MessageString : scsRasInteractive),
{ 4551}(MessageNumber : csRasRetryAuthentication; MessageString : scsRasRetryAuthentication),
{ 4552}(MessageNumber : csRasCallbackSetByCaller; MessageString : scsRasCallbackSetByCaller),
{ 4553}(MessageNumber : csRasPasswordExpired; MessageString : scsRasPasswordExpired),
{ 4599}(MessageNumber : csRasDeviceConnected; MessageString : scsRasDeviceConnected),
{ 4600}(MessageNumber : 4600; MessageString : sPDS_NONE),
{ 4601}(MessageNumber : 4601; MessageString : sPDS_OFFHOOK),
{ 4602}(MessageNumber : 4602; MessageString : sPDS_DIALING),
{ 4603}(MessageNumber : 4603; MessageString : sPDS_RINGING),
{ 4604}(MessageNumber : 4604; MessageString : sPDS_WAITFORCONNECT),
{ 4605}(MessageNumber : 4605; MessageString : sPDS_CONNECTED),
{ 4606}(MessageNumber : 4606; MessageString : sPDS_WAITINGTOREDIAL),
{ 4607}(MessageNumber : 4607; MessageString : sPDS_REDIALING),
{ 4608}(MessageNumber : 4608; MessageString : sPDS_MSGNOTSENT),
{ 4609}(MessageNumber : 4609; MessageString : sPDS_CANCELLING),
{ 4610}(MessageNumber : 4610; MessageString : sPDS_DISCONNECT),
{ 4611}(MessageNumber : 4611; MessageString : sPDS_CLEANUP),
{ 4630}(MessageNumber : 4630; MessageString : sPDE_NONE),
{ 4631}(MessageNumber : 4631; MessageString : sPDE_NODIALTONE),
{ 4632}(MessageNumber : 4632; MessageString : sPDE_LINEBUSY),
{ 4633}(MessageNumber : 4633; MessageString : sPDE_NOCONNECTION),
{ 4660}(MessageNumber : 4660; MessageString : sTAPS_NONE),
{ 4661}(MessageNumber : 4661; MessageString : sTAPS_LOGINPROMPT),
{ 4662}(MessageNumber : 4662; MessageString : sTAPS_LOGGEDIN),
{ 4663}(MessageNumber : 4663; MessageString : sTAPS_LOGINERR),
{ 4664}(MessageNumber : 4664; MessageString : sTAPS_LOGINFAIL),
{ 4665}(MessageNumber : 4665; MessageString : sTAPS_MSGOKTOSEND),
{ 4666}(MessageNumber : 4666; MessageString : sTAPS_SENDINGMSG),
{ 4667}(MessageNumber : 4667; MessageString : sTAPS_MSGACK),
{ 4668}(MessageNumber : 4668; MessageString : sTAPS_MSGNAK),
{ 4669}(MessageNumber : 4669; MessageString : sTAPS_MSGRS),
{ 4670}(MessageNumber : 4670; MessageString : sTAPS_MSGCOMPLETED),
{ 4671}(MessageNumber : 4671; MessageString : sTAPS_DONE),
{ 4700}(MessageNumber : psOK; MessageString : spsOK),
{ 4701}(MessageNumber : psProtocolHandshake; MessageString : spsProtocolHandshake),
{ 4702}(MessageNumber : psInvalidDate; MessageString : spsInvalidDate),
{ 4703}(MessageNumber : psFileRejected; MessageString : spsFileRejected),
{ 4704}(MessageNumber : psFileRenamed; MessageString : spsFileRenamed),
{ 4705}(MessageNumber : psSkipFile; MessageString : spsSkipFile),
{ 4706}(MessageNumber : psFileDoesntExist; MessageString : spsFileDoesntExist),
{ 4707}(MessageNumber : psCantWriteFile; MessageString : spsCantWriteFile),
{ 4708}(MessageNumber : psTimeout; MessageString : spsTimeout),
{ 4709}(MessageNumber : psBlockCheckError; MessageString : spsBlockCheckError),
{ 4710}(MessageNumber : psLongPacket; MessageString : spsLongPacket),
{ 4711}(MessageNumber : psDuplicateBlock; MessageString : spsDuplicateBlock),
{ 4712}(MessageNumber : psProtocolError; MessageString : spsProtocolError),
{ 4713}(MessageNumber : psCancelRequested; MessageString : spsCancelRequested),
{ 4714}(MessageNumber : psEndFile; MessageString : spsEndFile),
{ 4715}(MessageNumber : psResumeBad; MessageString : spsResumeBad),
{ 4716}(MessageNumber : psSequenceError; MessageString : spsSequenceError),
{ 4717}(MessageNumber : psAbortNoCarrier; MessageString : spsAbortNoCarrier),
{ 4718}(MessageNumber : psGotCrcE; MessageString : spsGotCrcE),
{ 4719}(MessageNumber : psGotCrcG; MessageString : spsGotCrcG),
{ 4720}(MessageNumber : psGotCrcW; MessageString : spsGotCrcW),
{ 4721}(MessageNumber : psGotCrcQ; MessageString : spsGotCrcQ),
{ 4722}(MessageNumber : psTryResume; MessageString : spsTryResume),
{ 4723}(MessageNumber : psHostResume; MessageString : spsHostResume),
{ 4724}(MessageNumber : psWaitAck; MessageString : spsWaitAck),
{ 4725}(MessageNumber : psNoHeader; MessageString : spsNoHeader),
{ 4726}(MessageNumber : psGotHeader; MessageString : spsGotHeader),
{ 4727}(MessageNumber : psGotData; MessageString : spsGotData),
{ 4728}(MessageNumber : psNoData; MessageString : spsNoData),
{ 4730}(MessageNumber : psAbort; MessageString : spsAbort),
{ 4801}(MessageNumber : fpInitModem; MessageString : sfpInitModem),
{ 4802}(MessageNumber : fpDialing; MessageString : sfpDialing),
{ 4803}(MessageNumber : fpBusyWait; MessageString : sfpBusyWait),
{ 4804}(MessageNumber : fpSendPage; MessageString : sfpSendPage),
{ 4805}(MessageNumber : fpSendPageStatus; MessageString : sfpSendPageStatus),
{ 4806}(MessageNumber : fpPageError; MessageString : sfpPageError),
{ 4807}(MessageNumber : fpPageOK; MessageString : sfpPageOK),
{ 4808}(MessageNumber : fpConnecting; MessageString : sfpConnecting),
{ 4820}(MessageNumber : fpWaiting; MessageString : sfpWaiting),
{ 4821}(MessageNumber : fpNoConnect; MessageString : sfpNoConnect),
{ 4822}(MessageNumber : fpAnswer; MessageString : sfpAnswer),
{ 4823}(MessageNumber : fpIncoming; MessageString : sfpIncoming),
{ 4824}(MessageNumber : fpGetPage; MessageString : sfpGetPage),
{ 4825}(MessageNumber : fpGetPageResult; MessageString : sfpGetPageResult),
{ 4826}(MessageNumber : fpCheckMorePages; MessageString : sfpCheckMorePages),
{ 4827}(MessageNumber : fpGetHangup; MessageString : sfpGetHangup),
{ 4828}(MessageNumber : fpGotHangup; MessageString : sfpGotHangup),
{ 4830}(MessageNumber : fpSwitchModes; MessageString : sfpSwitchModes),
{ 4831}(MessageNumber : fpMonitorEnabled; MessageString : sfpMonitorEnabled),
{ 4832}(MessageNumber : fpMonitorDisabled; MessageString : sfpMonitorDisabled),
{ 4840}(MessageNumber : fpSessionParams; MessageString : sfpSessionParams),
{ 4841}(MessageNumber : fpGotRemoteID; MessageString : sfpGotRemoteID),
{ 4842}(MessageNumber : fpCancel; MessageString : sfpCancel),
{ 4843}(MessageNumber : fpFinished; MessageString : sfpFinished),
{ 5001}(MessageNumber : ecNoMoreTriggers; MessageString : secNoMoreTriggers),
{ 5002}(MessageNumber : ecTriggerTooLong; MessageString : secTriggerTooLong),
{ 5003}(MessageNumber : ecBadTriggerHandle; MessageString : secBadTriggerHandle),
{ 5501}(MessageNumber : ecStartStringEmpty; MessageString : secStartStringEmpty),
{ 5502}(MessageNumber : ecPacketTooSmall; MessageString : secPacketTooSmall),
{ 5503}(MessageNumber : ecNoEndCharCount; MessageString : secNoEndCharCount),
{ 5504}(MessageNumber : ecEmptyEndString; MessageString : secEmptyEndString),
{ 5505}(MessageNumber : ecZeroSizePacket; MessageString : secZeroSizePacket),
{ 5506}(MessageNumber : ecPacketTooLong; MessageString : secPacketTooLong),
{ 6001}(MessageNumber : ecBadFileList; MessageString : secBadFileList),
{ 6002}(MessageNumber : ecNoSearchMask; MessageString : secNoSearchMask),
{ 6003}(MessageNumber : ecNoMatchingFiles; MessageString : secNoMatchingFiles),
{ 6004}(MessageNumber : ecDirNotFound; MessageString : secDirNotFound),
{ 6005}(MessageNumber : ecCancelRequested; MessageString : secCancelRequested),
{ 6006}(MessageNumber : ecTimeout; MessageString : secTimeout),
{ 6007}(MessageNumber : ecProtocolError; MessageString : secProtocolError),
{ 6008}(MessageNumber : ecTooManyErrors; MessageString : secTooManyErrors),
{ 6009}(MessageNumber : ecSequenceError; MessageString : secSequenceError),
{ 6010}(MessageNumber : ecNoFilename; MessageString : secNoFilename),
{ 6011}(MessageNumber : ecFileRejected; MessageString : secFileRejected),
{ 6012}(MessageNumber : ecCantWriteFile; MessageString : secCantWriteFile),
{ 6013}(MessageNumber : ecTableFull; MessageString : secTableFull),
{ 6014}(MessageNumber : ecAbortNoCarrier; MessageString : secAbortNoCarrier),
{ 6015}(MessageNumber : ecBadProtocolFunction; MessageString : secBadProtocolFunction),
{ 6016}(MessageNumber : ecProtocolAbort; MessageString : secProtocolAbort),
{ 7001}(MessageNumber : ecKeyTooLong; MessageString : secKeyTooLong),
{ 7002}(MessageNumber : ecDataTooLarge; MessageString : secDataTooLarge),
{ 7003}(MessageNumber : ecNoFieldsDefined; MessageString : secNoFieldsDefined),
{ 7004}(MessageNumber : ecIniWrite; MessageString : secIniWrite),
{ 7005}(MessageNumber : ecIniRead; MessageString : secIniRead),
{ 7006}(MessageNumber : ecNoIndexKey; MessageString : secNoIndexKey),
{ 7007}(MessageNumber : ecRecordExists; MessageString : secRecordExists),
{ 7008}(MessageNumber : ecRecordNotFound; MessageString : secRecordNotFound),
{ 7009}(MessageNumber : ecMustHaveIdxVal; MessageString : secMustHaveIdxVal),
{ 7010}(MessageNumber : ecDatabaseFull; MessageString : secDatabaseFull),
{ 7011}(MessageNumber : ecDatabaseEmpty; MessageString : secDatabaseEmpty),
{ 7012}(MessageNumber : ecDatabaseNotPrepared; MessageString : secDatabaseNotPrepared),
{ 7013}(MessageNumber : ecBadFieldList; MessageString : secBadFieldList),
{ 7014}(MessageNumber : ecBadFieldForIndex; MessageString : secBadFieldForIndex),
{ 7500}(MessageNumber : ecNoStateMachine; MessageString : secNoStateMachine),
{ 7501}(MessageNumber : ecNoStartState; MessageString : secNoStartState),
{ 7502}(MessageNumber : ecNoSapiEngine; MessageString : secNoSapiEngine),
{ 8001}(MessageNumber : ecFaxBadFormat; MessageString : secFaxBadFormat),
{ 8002}(MessageNumber : ecBadGraphicsFormat; MessageString : secBadGraphicsFormat),
{ 8003}(MessageNumber : ecConvertAbort; MessageString : secConvertAbort),
{ 8004}(MessageNumber : ecUnpackAbort; MessageString : secUnpackAbort),
{ 8005}(MessageNumber : ecCantMakeBitmap; MessageString : secCantMakeBitmap),
{ 8050}(MessageNumber : ecNoImageLoaded; MessageString : secNoImageLoaded),
{ 8051}(MessageNumber : ecNoImageBlockMarked; MessageString : secNoImageBlockMarked),
{ 8052}(MessageNumber : ecFontFileNotFound; MessageString : secFontFileNotFound),
{ 8053}(MessageNumber : ecInvalidPageNumber; MessageString : secInvalidPageNumber),
{ 8054}(MessageNumber : ecBmpTooBig; MessageString : secBmpTooBig),
{ 8055}(MessageNumber : ecEnhFontTooBig; MessageString : secEnhFontTooBig),
{ 8060}(MessageNumber : ecFaxBadMachine; MessageString : secFaxBadMachine),
{ 8061}(MessageNumber : ecFaxBadModemResult; MessageString : secFaxBadModemResult),
{ 8062}(MessageNumber : ecFaxTrainError; MessageString : secFaxTrainError),
{ 8063}(MessageNumber : ecFaxInitError; MessageString : secFaxInitError),
{ 8064}(MessageNumber : ecFaxBusy; MessageString : secFaxBusy),
{ 8065}(MessageNumber : ecFaxVoiceCall; MessageString : secFaxVoiceCall),
{ 8066}(MessageNumber : ecFaxDataCall; MessageString : secFaxDataCall),
{ 8067}(MessageNumber : ecFaxNoDialTone; MessageString : secFaxNoDialTone),
{ 8068}(MessageNumber : ecFaxNoCarrier; MessageString : secFaxNoCarrier),
{ 8069}(MessageNumber : ecFaxSessionError; MessageString : secFaxSessionError),
{ 8070}(MessageNumber : ecFaxPageError; MessageString : secFaxPageError),
{ 8071}(MessageNumber : ecFaxGDIPrintError; MessageString : secFaxGDIPrintError),
{ 8072}(MessageNumber : ecFaxMixedResolution; MessageString : secFaxMixedResolution),
{ 8073}(MessageNumber : ecFaxConverterInitFail; MessageString : secFaxConverterInitFail),
{ 8074}(MessageNumber : ecNoAnswer; MessageString : secNoAnswer),
{ 8075}(MessageNumber : ecAlreadyMonitored; MessageString : secAlreadyMonitored),
{ 8080}(MessageNumber : ecUniAlreadyInstalled; MessageString : secUniAlreadyInstalled),
{ 8081}(MessageNumber : ecUniCannotGetSysDir; MessageString : secUniCannotGetSysDir),
{ 8082}(MessageNumber : ecUniCannotGetWinDir; MessageString : secUniCannotGetWinDir),
{ 8083}(MessageNumber : ecUniUnknownLayout; MessageString : secUniUnknownLayout),
{ 8085}(MessageNumber : ecUniCannotInstallFile; MessageString : secUniCannotInstallFile),
{ 8087}(MessageNumber : ecDrvCopyError; MessageString : secDrvCopyError),
{ 8088}(MessageNumber : ecCannotAddPrinter; MessageString : secCannotAddPrinter),
{ 8089}(MessageNumber : ecDrvBadResources; MessageString : secDrvBadResources),
{ 8090}(MessageNumber : ecDrvDriverNotFound; MessageString : secDrvDriverNotFound),
{ 8091}(MessageNumber : ecUniCannotGetPrinterDriverDir;MessageString : secUniCannotGetPrinterDriverDir),
{ 8092}(MessageNumber : ecInstallDriverFailed; MessageString : secInstallDriverFailed),
{ 8100}(MessageNumber : ecSMSBusy; MessageString : secSMSBusy),
{ 8101}(MessageNumber : ecSMSTimedOut; MessageString : secSMSTimedOut),
{ 8102}(MessageNumber : ecSMSTooLong; MessageString : secSMSTooLong),
{ 8103}(MessageNumber : ecSMSUnknownStatus; MessageString : secSMSUnknownStatus),
{ 8300}(MessageNumber : ecMEFailure; MessageString : secMEFailure),
{ 8301}(MessageNumber : ecServiceRes; MessageString : secServiceRes),
{ 8302}(MessageNumber : ecBadOperation; MessageString : secBadOperation),
{ 8303}(MessageNumber : ecUnsupported; MessageString : secUnsupported),
{ 8304}(MessageNumber : ecInvalidPDU; MessageString : secInvalidPDU),
{ 8305}(MessageNumber : ecInvalidText; MessageString : secInvalidText),
{ 8310}(MessageNumber : ecSIMInsert; MessageString : secSIMInsert),
{ 8311}(MessageNumber : ecSIMPin; MessageString : secSIMPin),
{ 8312}(MessageNumber : ecSIMPH; MessageString : secSIMPH),
{ 8313}(MessageNumber : ecSIMFailure; MessageString : secSIMFailure),
{ 8314}(MessageNumber : ecSIMBusy; MessageString : secSIMBusy),
{ 8315}(MessageNumber : ecSIMWrong; MessageString : secSIMWrong),
{ 8316}(MessageNumber : ecSIMPUK; MessageString : secSIMPUK),
{ 8317}(MessageNumber : ecSIMPIN2; MessageString : secSIMPIN2),
{ 8318}(MessageNumber : ecSIMPUK2; MessageString : secSIMPUK2),
{ 8320}(MessageNumber : ecMemFail; MessageString : secMemFail),
{ 8321}(MessageNumber : ecInvalidMemIndex; MessageString : secInvalidMemIndex),
{ 8322}(MessageNumber : ecMemFull; MessageString : secMemFull),
{ 8330}(MessageNumber : ecSMSCAddUnknown; MessageString : secSMSCAddUnknown),
{ 8331}(MessageNumber : ecNoNetwork; MessageString : secNoNetwork),
{ 8332}(MessageNumber : ecNetworkTimeout; MessageString : secNetworkTimeout),
{ 8340}(MessageNumber : ecCNMAAck; MessageString : secCNMAAck),
{ 8500}(MessageNumber : ecUnknown; MessageString : secUnknown),
{ 9001}(MessageNumber : ecADWSERROR; MessageString : secADWSERROR),
{ 9002}(MessageNumber : ecADWSLOADERROR; MessageString : secADWSLOADERROR),
{ 9003}(MessageNumber : ecADWSVERSIONERROR; MessageString : secADWSVERSIONERROR),
{ 9004}(MessageNumber : ecADWSNOTINIT; MessageString : secADWSNOTINIT),
{ 9005}(MessageNumber : ecADWSINVPORT; MessageString : secADWSINVPORT),
{ 9006}(MessageNumber : ecADWSCANTCHANGE; MessageString : secADWSCANTCHANGE),
{ 9007}(MessageNumber : ecADWSCANTRESOLVE; MessageString : secADWSCANTRESOLVE),
{10000}(MessageNumber : wsaBaseErr; MessageString : swsaBaseErr),
{10004}(MessageNumber : wsaEIntr; MessageString : swsaEIntr),
{10009}(MessageNumber : wsaEBadF; MessageString : swsaEBadF),
{10013}(MessageNumber : wsaEAcces; MessageString : swsaEAcces),
{10014}(MessageNumber : wsaEFault; MessageString : swsaEFault),
{10022}(MessageNumber : wsaEInVal; MessageString : swsaEInVal),
{10024}(MessageNumber : wsaEMFile; MessageString : swsaEMFile),
{10035}(MessageNumber : wsaEWouldBlock; MessageString : swsaEWouldBlock),
{10036}(MessageNumber : wsaEInProgress; MessageString : swsaEInProgress),
{10037}(MessageNumber : wsaEAlReady; MessageString : swsaEAlReady),
{10038}(MessageNumber : wsaENotSock; MessageString : swsaENotSock),
{10039}(MessageNumber : wsaEDestAddrReq; MessageString : swsaEDestAddrReq),
{10040}(MessageNumber : wsaEMsgSize; MessageString : swsaEMsgSize),
{10041}(MessageNumber : wsaEPrototype; MessageString : swsaEPrototype),
{10042}(MessageNumber : wsaENoProtoOpt; MessageString : swsaENoProtoOpt),
{10043}(MessageNumber : wsaEProtoNoSupport; MessageString : swsaEProtoNoSupport),
{10044}(MessageNumber : wsaESocktNoSupport; MessageString : swsaESocktNoSupport),
{10045}(MessageNumber : wsaEOpNotSupp; MessageString : swsaEOpNotSupp),
{10046}(MessageNumber : wsaEPfNoSupport; MessageString : swsaEPfNoSupport),
{10047}(MessageNumber : wsaEAfNoSupport; MessageString : swsaEAfNoSupport),
{10048}(MessageNumber : wsaEAddrInUse; MessageString : swsaEAddrInUse),
{10049}(MessageNumber : wsaEAddrNotAvail; MessageString : swsaEAddrNotAvail),
{10050}(MessageNumber : wsaENetDown; MessageString : swsaENetDown),
{10051}(MessageNumber : wsaENetUnreach; MessageString : swsaENetUnreach),
{10052}(MessageNumber : wsaENetReset; MessageString : swsaENetReset),
{10053}(MessageNumber : wsaEConnAborted; MessageString : swsaEConnAborted),
{10054}(MessageNumber : wsaEConnReset; MessageString : swsaEConnReset),
{10055}(MessageNumber : wsaENoBufs; MessageString : swsaENoBufs),
{10056}(MessageNumber : wsaEIsConn; MessageString : swsaEIsConn),
{10057}(MessageNumber : wsaENotConn; MessageString : swsaENotConn),
{10058}(MessageNumber : wsaEShutDown; MessageString : swsaEShutDown),
{10059}(MessageNumber : wsaETooManyRefs; MessageString : swsaETooManyRefs),
{10060}(MessageNumber : wsaETimedOut; MessageString : swsaETimedOut),
{10061}(MessageNumber : wsaEConnRefused; MessageString : swsaEConnRefused),
{10062}(MessageNumber : wsaELoop; MessageString : swsaELoop),
{10063}(MessageNumber : wsaENameTooLong; MessageString : swsaENameTooLong),
{10064}(MessageNumber : wsaEHostDown; MessageString : swsaEHostDown),
{10065}(MessageNumber : wsaEHostUnreach; MessageString : swsaEHostUnreach),
{10066}(MessageNumber : wsaENotEmpty; MessageString : swsaENotEmpty),
{10067}(MessageNumber : wsaEProcLim; MessageString : swsaEProcLim),
{10068}(MessageNumber : wsaEUsers; MessageString : swsaEUsers),
{10069}(MessageNumber : wsaEDQuot; MessageString : swsaEDQuot),
{10070}(MessageNumber : wsaEStale; MessageString : swsaEStale),
{10071}(MessageNumber : wsaERemote; MessageString : swsaERemote),
{10091}(MessageNumber : wsaSysNotReady; MessageString : swsaSysNotReady),
{10092}(MessageNumber : wsaVerNotSupported; MessageString : swsaVerNotSupported),
{10093}(MessageNumber : wsaNotInitialised; MessageString : swsaNotInitialised),
{10101}(MessageNumber : wsaEDiscOn; MessageString : swsaEDiscOn),
{11001}(MessageNumber : wsaHost_Not_Found; MessageString : swsaHost_Not_Found),
{11002}(MessageNumber : wsaTry_Again; MessageString : swsaTry_Again),
{11003}(MessageNumber : wsaNo_Recovery; MessageString : swsaNo_Recovery),
{11004}(MessageNumber : wsaNo_Data; MessageString : swsaNo_Data),
{13501}(MessageNumber : 13501; MessageString : stcs_Idle),
{13502}(MessageNumber : 13502; MessageString : stcs_Offering),
{13503}(MessageNumber : 13503; MessageString : stcs_Accepted),
{13504}(MessageNumber : 13504; MessageString : stcs_Dialtone),
{13505}(MessageNumber : 13505; MessageString : stcs_Dialing),
{13506}(MessageNumber : 13506; MessageString : stcs_Ringback),
{13507}(MessageNumber : 13507; MessageString : stcs_Busy),
{13508}(MessageNumber : 13508; MessageString : stcs_SpecialInfo),
{13509}(MessageNumber : 13509; MessageString : stcs_Connected),
{13510}(MessageNumber : 13510; MessageString : stcs_Proceeding),
{13511}(MessageNumber : 13511; MessageString : stcs_OnHold),
{13512}(MessageNumber : 13512; MessageString : stcs_Conferenced),
{13513}(MessageNumber : 13513; MessageString : stcs_OnHoldPendConf),
{13514}(MessageNumber : 13514; MessageString : stcs_OnHoldPendTransfer),
{13515}(MessageNumber : 13515; MessageString : stcs_Disconnected),
{13516}(MessageNumber : 13516; MessageString : stcs_Unknown),
{13533}(MessageNumber : 13533; MessageString : stds_Other),
{13534}(MessageNumber : 13534; MessageString : stds_Ringing),
{13535}(MessageNumber : 13535; MessageString : stds_Connected),
{13536}(MessageNumber : 13536; MessageString : stds_Disconnected),
{13537}(MessageNumber : 13537; MessageString : stds_MsgWaitOn),
{13538}(MessageNumber : 13538; MessageString : stds_MsgWaitOff),
{13539}(MessageNumber : 13539; MessageString : stds_InService),
{13540}(MessageNumber : 13540; MessageString : stds_OutOfService),
{13541}(MessageNumber : 13541; MessageString : stds_Maintenance),
{13542}(MessageNumber : 13542; MessageString : stds_Open),
{13543}(MessageNumber : 13543; MessageString : stds_Close),
{13544}(MessageNumber : 13544; MessageString : stds_NumCalls),
{13545}(MessageNumber : 13545; MessageString : stds_NumCompletions),
{13546}(MessageNumber : 13546; MessageString : stds_Terminals),
{13547}(MessageNumber : 13547; MessageString : stds_RoamMode),
{13548}(MessageNumber : 13548; MessageString : stds_Battery),
{13549}(MessageNumber : 13549; MessageString : stds_Signal),
{13550}(MessageNumber : 13550; MessageString : stds_DevSpecific),
{13551}(MessageNumber : 13551; MessageString : stds_ReInit),
{13552}(MessageNumber : 13552; MessageString : stds_Lock),
{13553}(MessageNumber : 13553; MessageString : stds_CapsChange),
{13554}(MessageNumber : 13554; MessageString : stds_ConfigChange),
{13555}(MessageNumber : 13555; MessageString : stds_TranslateChange),
{13556}(MessageNumber : 13556; MessageString : stds_ComplCancel),
{13557}(MessageNumber : 13557; MessageString : stds_Removed),
{13565}(MessageNumber : 13565; MessageString : sTAPILineReply),
{13597}(MessageNumber : 13597; MessageString : sTAPIStateChange),
{13598}(MessageNumber : 13598; MessageString : sTAPICalledBusy),
{13599}(MessageNumber : 13599; MessageString : sTAPIDialFail),
{13600}(MessageNumber : 13600; MessageString : sTAPIRetryWait),
{13601}(MessageNumber : 13601; MessageString : sTAPIDeviceInUse),
{13650}(MessageNumber : 13650; MessageString : sTAPIDisconnect_Unspecified),
{13651}(MessageNumber : 13651; MessageString : sTAPIDisconnect_Normal),
{13652}(MessageNumber : 13652; MessageString : sTAPIDisconnect_Unknown),
{13653}(MessageNumber : 13653; MessageString : sTAPIDisconnect_Reject),
{13654}(MessageNumber : 13654; MessageString : sTAPIDisconnect_PickUp),
{13655}(MessageNumber : 13655; MessageString : sTAPIDisconnect_Forwarded),
{13656}(MessageNumber : 13656; MessageString : sTAPIDisconnect_Busy),
{13657}(MessageNumber : 13657; MessageString : sTAPIDisconnect_NoAnswer),
{13658}(MessageNumber : 13658; MessageString : sTAPIDisconnect_BadAddress),
{13659}(MessageNumber : 13659; MessageString : sTAPIDisconnect_Unreachable),
{13660}(MessageNumber : 13660; MessageString : sTAPIDisconnect_Congestion),
{13661}(MessageNumber : 13661; MessageString : sTAPIDisconnect_Incompatible),
{13662}(MessageNumber : 13662; MessageString : sTAPIDisconnect_Unavail),
{13663}(MessageNumber : 13663; MessageString : sTAPIDisconnect_NoDialtone),
{13664}(MessageNumber : 13664; MessageString : sTAPIDisconnect_NumberChanged),
{13665}(MessageNumber : 13665; MessageString : sTAPIDisconnect_OutOfOrder),
{13666}(MessageNumber : 13666; MessageString : sTAPIDisconnect_TempFailure),
{13667}(MessageNumber : 13667; MessageString : sTAPIDisconnect_QOSUnavail),
{13668}(MessageNumber : 13668; MessageString : sTAPIDisconnect_Blocked),
{13669}(MessageNumber : 13669; MessageString : sTAPIDisconnect_DoNotDisturb),
{13670}(MessageNumber : 13670; MessageString : sTAPIDisconnect_Cancelled),
{13801}(MessageNumber : ecAllocated; MessageString : secAllocated),
{13802}(MessageNumber : ecBadDeviceID; MessageString : secBadDeviceID),
{13803}(MessageNumber : ecBearerModeUnavail; MessageString : secBearerModeUnavail),
{13805}(MessageNumber : ecCallUnavail; MessageString : secCallUnavail),
{13806}(MessageNumber : ecCompletionOverrun; MessageString : secCompletionOverrun),
{13807}(MessageNumber : ecConferenceFull; MessageString : secConferenceFull),
{13808}(MessageNumber : ecDialBilling; MessageString : secDialBilling),
{13809}(MessageNumber : ecDialDialtone; MessageString : secDialDialtone),
{13810}(MessageNumber : ecDialPrompt; MessageString : secDialPrompt),
{13811}(MessageNumber : ecDialQuiet; MessageString : secDialQuiet),
{13812}(MessageNumber : ecIncompatibleApiVersion; MessageString : secIncompatibleApiVersion),
{13813}(MessageNumber : ecIncompatibleExtVersion; MessageString : secIncompatibleExtVersion),
{13814}(MessageNumber : ecIniFileCorrupt; MessageString : secIniFileCorrupt),
{13815}(MessageNumber : ecInUse; MessageString : secInUse),
{13816}(MessageNumber : ecInvalAddress; MessageString : secInvalAddress),
{13817}(MessageNumber : ecInvalAddressID; MessageString : secInvalAddressID),
{13818}(MessageNumber : ecInvalAddressMode; MessageString : secInvalAddressMode),
{13819}(MessageNumber : ecInvalAddressState; MessageString : secInvalAddressState),
{13820}(MessageNumber : ecInvalAppHandle; MessageString : secInvalAppHandle),
{13821}(MessageNumber : ecInvalAppName; MessageString : secInvalAppName),
{13822}(MessageNumber : ecInvalBearerMode; MessageString : secInvalBearerMode),
{13823}(MessageNumber : ecInvalCallComplMode; MessageString : secInvalCallComplMode),
{13824}(MessageNumber : ecInvalCallHandle; MessageString : secInvalCallHandle),
{13825}(MessageNumber : ecInvalCallParams; MessageString : secInvalCallParams),
{13826}(MessageNumber : ecInvalCallPrivilege; MessageString : secInvalCallPrivilege),
{13827}(MessageNumber : ecInvalCallSelect; MessageString : secInvalCallSelect),
{13828}(MessageNumber : ecInvalCallState; MessageString : secInvalCallState),
{13829}(MessageNumber : ecInvalCallStatelist; MessageString : secInvalCallStatelist),
{13830}(MessageNumber : ecInvalCard; MessageString : secInvalCard),
{13831}(MessageNumber : ecInvalCompletionID; MessageString : secInvalCompletionID),
{13832}(MessageNumber : ecInvalConfCallHandle; MessageString : secInvalConfCallHandle),
{13833}(MessageNumber : ecInvalConsultCallHandle; MessageString : secInvalConsultCallHandle),
{13834}(MessageNumber : ecInvalCountryCode; MessageString : secInvalCountryCode),
{13835}(MessageNumber : ecInvalDeviceClass; MessageString : secInvalDeviceClass),
{13836}(MessageNumber : ecInvalDeviceHandle; MessageString : secInvalDeviceHandle),
{13837}(MessageNumber : ecInvalDialParams; MessageString : secInvalDialParams),
{13838}(MessageNumber : ecInvalDigitList; MessageString : secInvalDigitList),
{13839}(MessageNumber : ecInvalDigitMode; MessageString : secInvalDigitMode),
{13840}(MessageNumber : ecInvalDigits; MessageString : secInvalDigits),
{13841}(MessageNumber : ecInvalExtVersion; MessageString : secInvalExtVersion),
{13842}(MessageNumber : ecInvalGroupID; MessageString : secInvalGroupID),
{13843}(MessageNumber : ecInvalLineHandle; MessageString : secInvalLineHandle),
{13844}(MessageNumber : ecInvalLineState; MessageString : secInvalLineState),
{13845}(MessageNumber : ecInvalLocation; MessageString : secInvalLocation),
{13846}(MessageNumber : ecInvalMediaList; MessageString : secInvalMediaList),
{13847}(MessageNumber : ecInvalMediaMode; MessageString : secInvalMediaMode),
{13848}(MessageNumber : ecInvalMessageID; MessageString : secInvalMessageID),
{13850}(MessageNumber : ecInvalParam; MessageString : secInvalParam),
{13851}(MessageNumber : ecInvalParkID; MessageString : secInvalParkID),
{13852}(MessageNumber : ecInvalParkMode; MessageString : secInvalParkMode),
{13853}(MessageNumber : ecInvalPointer; MessageString : secInvalPointer),
{13854}(MessageNumber : ecInvalPrivSelect; MessageString : secInvalPrivSelect),
{13855}(MessageNumber : ecInvalRate; MessageString : secInvalRate),
{13856}(MessageNumber : ecInvalRequestMode; MessageString : secInvalRequestMode),
{13857}(MessageNumber : ecInvalTerminalID; MessageString : secInvalTerminalID),
{13858}(MessageNumber : ecInvalTerminalMode; MessageString : secInvalTerminalMode),
{13859}(MessageNumber : ecInvalTimeout; MessageString : secInvalTimeout),
{13860}(MessageNumber : ecInvalTone; MessageString : secInvalTone),
{13861}(MessageNumber : ecInvalToneList; MessageString : secInvalToneList),
{13862}(MessageNumber : ecInvalToneMode; MessageString : secInvalToneMode),
{13863}(MessageNumber : ecInvalTransferMode; MessageString : secInvalTransferMode),
{13864}(MessageNumber : ecLineMapperFailed; MessageString : secLineMapperFailed),
{13865}(MessageNumber : ecNoConference; MessageString : secNoConference),
{13866}(MessageNumber : ecNoDevice; MessageString : secNoDevice),
{13867}(MessageNumber : ecNoDriver; MessageString : secNoDriver),
{13868}(MessageNumber : ecNoMem; MessageString : secNoMem),
{13869}(MessageNumber : ecNoRequest; MessageString : secNoRequest),
{13870}(MessageNumber : ecNotOwner; MessageString : secNotOwner),
{13871}(MessageNumber : ecNotRegistered; MessageString : secNotRegistered),
{13872}(MessageNumber : ecOperationFailed; MessageString : secOperationFailed),
{13873}(MessageNumber : ecOperationUnavail; MessageString : secOperationUnavail),
{13874}(MessageNumber : ecRateUnavail; MessageString : secRateUnavail),
{13875}(MessageNumber : ecResourceUnavail; MessageString : secResourceUnavail),
{13876}(MessageNumber : ecRequestOverrun; MessageString : secRequestOverrun),
{13877}(MessageNumber : ecStructureTooSmall; MessageString : secStructureTooSmall),
{13878}(MessageNumber : ecTargetNotFound; MessageString : secTargetNotFound),
{13879}(MessageNumber : ecTargetSelf; MessageString : secTargetSelf),
{13880}(MessageNumber : ecUninitialized; MessageString : secUninitialized),
{13881}(MessageNumber : ecUserUserInfoTooBig; MessageString : secUserUserInfoTooBig),
{13882}(MessageNumber : ecReinit; MessageString : secReinit),
{13883}(MessageNumber : ecAddressBlocked; MessageString : secAddressBlocked),
{13884}(MessageNumber : ecBillingRejected; MessageString : secBillingRejected),
{13885}(MessageNumber : ecInvalFeature; MessageString : secInvalFeature),
{13886}(MessageNumber : ecNoMultipleInstance; MessageString : secNoMultipleInstance),
{13928}(MessageNumber : ecTapiBusy; MessageString : secTapiBusy),
{13929}(MessageNumber : ecTapiNotSet; MessageString : secTapiNotSet),
{13930}(MessageNumber : ecTapiNoSelect; MessageString : secTapiNoSelect),
{13931}(MessageNumber : ecTapiLoadFail; MessageString : secTapiLoadFail),
{13932}(MessageNumber : ecTapiGetAddrFail; MessageString : secTapiGetAddrFail),
{13933}(MessageNumber : 13933; MessageString : sTAPIdisabled16bit),
{13934}(MessageNumber : ecTapiUnexpected; MessageString : secTapiUnexpected),
{13935}(MessageNumber : ecTapiVoiceNotSupported; MessageString : secTapiVoiceNotSupported),
{13936}(MessageNumber : ecTapiWaveFail; MessageString : secTapiWaveFail),
{13937}(MessageNumber : ecTapiCIDBlocked; MessageString : secTapiCIDBlocked),
{13938}(MessageNumber : ecTapiCIDOutOfArea; MessageString : secTapiCIDOutOfArea),
{13939}(MessageNumber : ecTapiWaveFormatError; MessageString : secTapiWaveFormatError),
{13940}(MessageNumber : ecTapiWaveReadError; MessageString : secTapiWaveReadError),
{13941}(MessageNumber : ecTapiWaveBadFormat; MessageString : secTapiWaveBadFormat),
{13942}(MessageNumber : ecTapiTranslateFail; MessageString : secTapiTranslateFail),
{13943}(MessageNumber : ecTapiWaveDeviceInUse; MessageString : secTapiWaveDeviceInUse),
{13944}(MessageNumber : ecTapiWaveFileExists; MessageString : secTapiWaveFileExists),
{13945}(MessageNumber : ecTapiWaveNoData; MessageString : secTapiWaveNoData),
{13950}(MessageNumber : ecVoIPNotSupported; MessageString : secVoIPNotSupported),
{13951}(MessageNumber : ecVoIPCallBusy; MessageString : secVoIPCallBusy),
{13952}(MessageNumber : ecVoIPBadAddress; MessageString : secVoIPBadAddress),
{13953}(MessageNumber : ecVoIPNoAnswer; MessageString : secVoIPNoAnswer),
{13954}(MessageNumber : ecVoIPCancelled; MessageString : secVoIPCancelled),
{13955}(MessageNumber : ecVoIPRejected; MessageString : secVoIPRejected),
{13956}(MessageNumber : ecVoIPFailed; MessageString : secVoIPFailed),
{13957}(MessageNumber : ecVoIPTapi3NotInstalled; MessageString : secVoIPTapi3NotInstalled),
{13958}(MessageNumber : ecVoIPH323NotFound; MessageString : secVoIPH323NotFound),
{13959}(MessageNumber : ecVoIPTapi3EventFailure; MessageString : secVoIPTapi3EventFailure),
{13980}(MessageNumber : ecRasLoadFail; MessageString : secRasLoadFail),
{15001}(MessageNumber : 15001; MessageString : sdtNone),
{15002}(MessageNumber : 15002; MessageString : sdtDispatch),
{15003}(MessageNumber : 15003; MessageString : sdtTrigger),
{15004}(MessageNumber : 15004; MessageString : sdtError),
{15005}(MessageNumber : 15005; MessageString : sdtThread),
{15006}(MessageNumber : 15006; MessageString : sdtTriggerAlloc),
{15007}(MessageNumber : 15007; MessageString : sdtTriggerDispose),
{15008}(MessageNumber : 15008; MessageString : sdtTriggerHandlerAlloc),
{15009}(MessageNumber : 15009; MessageString : sdtTriggerHandlerDispose),
{15010}(MessageNumber : 15010; MessageString : sdtTriggerDataChange),
{15011}(MessageNumber : 15011; MessageString : sdtTelnet),
{15012}(MessageNumber : 15012; MessageString : sdtFax),
{15013}(MessageNumber : 15013; MessageString : sdtXModem),
{15014}(MessageNumber : 15014; MessageString : sdtYModem),
{15015}(MessageNumber : 15015; MessageString : sdtZModem),
{15016}(MessageNumber : 15016; MessageString : sdtKermit),
{15017}(MessageNumber : 15017; MessageString : sdtAscii),
{15018}(MessageNumber : 15018; MessageString : sdtBPlus),
{15019}(MessageNumber : 15019; MessageString : sdtPacket),
{15020}(MessageNumber : 15020; MessageString : sdtUser),
{15021}(MessageNumber : 15021; MessageString : sdtScript),
{15100}(MessageNumber : 15100; MessageString : sdstNone),
{15101}(MessageNumber : 15101; MessageString : sdstReadCom),
{15102}(MessageNumber : 15102; MessageString : sdstWriteCom),
{15103}(MessageNumber : 15103; MessageString : sdstLineStatus),
{15104}(MessageNumber : 15104; MessageString : sdstModemStatus),
{15105}(MessageNumber : 15105; MessageString : sdstAvail),
{15106}(MessageNumber : 15106; MessageString : sdstTimer),
{15107}(MessageNumber : 15107; MessageString : sdstData),
{15108}(MessageNumber : 15108; MessageString : sdstStatus),
{15109}(MessageNumber : 15109; MessageString : sdstThreadStart),
{15110}(MessageNumber : 15110; MessageString : sdstThreadExit),
{15111}(MessageNumber : 15111; MessageString : sdstThreadSleep),
{15112}(MessageNumber : 15112; MessageString : sdstThreadWake),
{15113}(MessageNumber : 15113; MessageString : sdstDataTrigger),
{15114}(MessageNumber : 15114; MessageString : sdstTimerTrigger),
{15115}(MessageNumber : 15115; MessageString : sdstStatusTrigger),
{15116}(MessageNumber : 15116; MessageString : sdstAvailTrigger),
{15117}(MessageNumber : 15117; MessageString : sdstWndHandler),
{15118}(MessageNumber : 15118; MessageString : sdstProcHandler),
{15119}(MessageNumber : 15119; MessageString : sdstEventHandler),
{15120}(MessageNumber : 15120; MessageString : sdstSWill),
{15121}(MessageNumber : 15121; MessageString : sdstSWont),
{15122}(MessageNumber : 15122; MessageString : sdstSDo),
{15123}(MessageNumber : 15123; MessageString : sdstSDont),
{15124}(MessageNumber : 15124; MessageString : sdstRWill),
{15125}(MessageNumber : 15125; MessageString : sdstRWont),
{15126}(MessageNumber : 15126; MessageString : sdstRDo),
{15127}(MessageNumber : 15127; MessageString : sdstRDont),
{15128}(MessageNumber : 15128; MessageString : sdstCommand),
{15129}(MessageNumber : 15129; MessageString : sdstSTerm),
{15130}(MessageNumber : 15130; MessageString : sdsttfNone),
{15131}(MessageNumber : 15131; MessageString : sdsttfGetEntry),
{15132}(MessageNumber : 15132; MessageString : sdsttfInit),
{15133}(MessageNumber : 15133; MessageString : sdsttf1Init1),
{15134}(MessageNumber : 15134; MessageString : sdsttf2Init1),
{15135}(MessageNumber : 15135; MessageString : sdsttf2Init1A),
{15136}(MessageNumber : 15136; MessageString : sdsttf2Init1B),
{15137}(MessageNumber : 15137; MessageString : sdsttf2Init2),
{15138}(MessageNumber : 15138; MessageString : sdsttf2Init3),
{15139}(MessageNumber : 15139; MessageString : sdsttfDial),
{15140}(MessageNumber : 15140; MessageString : sdsttfRetryWait),
{15141}(MessageNumber : 15141; MessageString : sdsttf1Connect),
{15142}(MessageNumber : 15142; MessageString : sdsttf1SendTSI),
{15143}(MessageNumber : 15143; MessageString : sdsttf1TSIResponse),
{15144}(MessageNumber : 15144; MessageString : sdsttf1DCSResponse),
{15145}(MessageNumber : 15145; MessageString : sdsttf1TrainStart),
{15146}(MessageNumber : 15146; MessageString : sdsttf1TrainFinish),
{15147}(MessageNumber : 15147; MessageString : sdsttf1WaitCFR),
{15148}(MessageNumber : 15148; MessageString : sdsttf1WaitPageConnect),
{15149}(MessageNumber : 15149; MessageString : sdsttf2Connect),
{15150}(MessageNumber : 15150; MessageString : sdsttf2GetParams),
{15151}(MessageNumber : 15151; MessageString : sdsttfWaitXon),
{15152}(MessageNumber : 15152; MessageString : sdsttfWaitFreeHeader),
{15153}(MessageNumber : 15153; MessageString : sdsttfSendPageHeader),
{15154}(MessageNumber : 15154; MessageString : sdsttfOpenCover),
{15155}(MessageNumber : 15155; MessageString : sdsttfSendCover),
{15156}(MessageNumber : 15156; MessageString : sdsttfPrepPage),
{15157}(MessageNumber : 15157; MessageString : sdsttfSendPage),
{15158}(MessageNumber : 15158; MessageString : sdsttfDrainPage),
{15159}(MessageNumber : 15159; MessageString : sdsttf1PageEnd),
{15160}(MessageNumber : 15160; MessageString : sdsttf1PrepareEOP),
{15161}(MessageNumber : 15161; MessageString : sdsttf1SendEOP),
{15162}(MessageNumber : 15162; MessageString : sdsttf1WaitMPS),
{15163}(MessageNumber : 15163; MessageString : sdsttf1WaitEOP),
{15164}(MessageNumber : 15164; MessageString : sdsttf1WaitMCF),
{15165}(MessageNumber : 15165; MessageString : sdsttf1SendDCN),
{15166}(MessageNumber : 15166; MessageString : sdsttf1Hangup),
{15167}(MessageNumber : 15167; MessageString : sdsttf1WaitHangup),
{15168}(MessageNumber : 15168; MessageString : sdsttf2SendEOP),
{15169}(MessageNumber : 15169; MessageString : sdsttf2WaitFPTS),
{15170}(MessageNumber : 15170; MessageString : sdsttf2WaitFET),
{15171}(MessageNumber : 15171; MessageString : sdsttf2WaitPageOK),
{15172}(MessageNumber : 15172; MessageString : sdsttf2SendNewParams),
{15173}(MessageNumber : 15173; MessageString : sdsttf2NextPage),
{15174}(MessageNumber : 15174; MessageString : sdsttf20CheckPage),
{15175}(MessageNumber : 15175; MessageString : sdsttfClose),
{15176}(MessageNumber : 15176; MessageString : sdsttfCompleteOK),
{15177}(MessageNumber : 15177; MessageString : sdsttfAbort),
{15178}(MessageNumber : 15178; MessageString : sdsttfDone),
{15179}(MessageNumber : 15179; MessageString : sdstrfNone),
{15180}(MessageNumber : 15180; MessageString : sdstrfInit),
{15181}(MessageNumber : 15181; MessageString : sdstrf1Init1),
{15182}(MessageNumber : 15182; MessageString : sdstrf2Init1),
{15183}(MessageNumber : 15183; MessageString : sdstrf2Init1A),
{15184}(MessageNumber : 15184; MessageString : sdstrf2Init1B),
{15185}(MessageNumber : 15185; MessageString : sdstrf2Init2),
{15186}(MessageNumber : 15186; MessageString : sdstrf2Init3),
{15187}(MessageNumber : 15187; MessageString : sdstrfWaiting),
{15188}(MessageNumber : 15188; MessageString : sdstrfAnswer),
{15189}(MessageNumber : 15189; MessageString : sdstrf1SendCSI),
{15190}(MessageNumber : 15190; MessageString : sdstrf1SendDIS),
{15191}(MessageNumber : 15191; MessageString : sdstrf1CollectFrames),
{15192}(MessageNumber : 15192; MessageString : sdstrf1CollectRetry1),
{15193}(MessageNumber : 15193; MessageString : sdstrf1CollectRetry2),
{15194}(MessageNumber : 15194; MessageString : sdstrf1StartTrain),
{15195}(MessageNumber : 15195; MessageString : sdstrf1CollectTrain),
{15196}(MessageNumber : 15196; MessageString : sdstrf1Timeout),
{15197}(MessageNumber : 15197; MessageString : sdstrf1Retrain),
{15198}(MessageNumber : 15198; MessageString : sdstrf1FinishTrain),
{15199}(MessageNumber : 15199; MessageString : sdstrf1SendCFR),
{15200}(MessageNumber : 15200; MessageString : sdstrf1WaitPageConnect),
{15201}(MessageNumber : 15201; MessageString : sdstrf2ValidConnect),
{15202}(MessageNumber : 15202; MessageString : sdstrf2GetSenderID),
{15203}(MessageNumber : 15203; MessageString : sdstrf2GetConnect),
{15204}(MessageNumber : 15204; MessageString : sdstrfStartPage),
{15205}(MessageNumber : 15205; MessageString : sdstrfGetPageData),
{15206}(MessageNumber : 15206; MessageString : sdstrf1FinishPage),
{15207}(MessageNumber : 15207; MessageString : sdstrf1WaitEOP),
{15208}(MessageNumber : 15208; MessageString : sdstrf1WritePage),
{15209}(MessageNumber : 15209; MessageString : sdstrf1SendMCF),
{15210}(MessageNumber : 15210; MessageString : sdstrf1WaitDCN),
{15211}(MessageNumber : 15211; MessageString : sdstrf1WaitHangup),
{15212}(MessageNumber : 15212; MessageString : sdstrf2GetPageResult),
{15213}(MessageNumber : 15213; MessageString : sdstrf2GetFHNG),
{15214}(MessageNumber : 15214; MessageString : sdstrfComplete),
{15215}(MessageNumber : 15215; MessageString : sdstrfAbort),
{15216}(MessageNumber : 15216; MessageString : sdstrfDone),
{15217}(MessageNumber : 15217; MessageString : sdsttxInitial),
{15218}(MessageNumber : 15218; MessageString : sdsttxHandshake),
{15219}(MessageNumber : 15219; MessageString : sdsttxGetBlock),
{15220}(MessageNumber : 15220; MessageString : sdsttxWaitFreeSpace),
{15221}(MessageNumber : 15221; MessageString : sdsttxSendBlock),
{15222}(MessageNumber : 15222; MessageString : sdsttxDraining),
{15223}(MessageNumber : 15223; MessageString : sdsttxReplyPending),
{15224}(MessageNumber : 15224; MessageString : sdsttxEndDrain),
{15225}(MessageNumber : 15225; MessageString : sdsttxFirstEndOfTransmit),
{15226}(MessageNumber : 15226; MessageString : sdsttxRestEndOfTransmit),
{15227}(MessageNumber : 15227; MessageString : sdsttxEotReply),
{15228}(MessageNumber : 15228; MessageString : sdsttxFinished),
{15229}(MessageNumber : 15229; MessageString : sdsttxDone),
{15230}(MessageNumber : 15230; MessageString : sdstrxInitial),
{15231}(MessageNumber : 15231; MessageString : sdstrxWaitForHSReply),
{15232}(MessageNumber : 15232; MessageString : sdstrxWaitForBlockStart),
{15233}(MessageNumber : 15233; MessageString : sdstrxCollectBlock),
{15234}(MessageNumber : 15234; MessageString : sdstrxProcessBlock),
{15235}(MessageNumber : 15235; MessageString : sdstrxFinishedSkip),
{15236}(MessageNumber : 15236; MessageString : sdstrxFinished),
{15237}(MessageNumber : 15237; MessageString : sdstrxDone),
{15238}(MessageNumber : 15238; MessageString : sdsttyInitial),
{15239}(MessageNumber : 15239; MessageString : sdsttyHandshake),
{15240}(MessageNumber : 15240; MessageString : sdsttyGetFileName),
{15241}(MessageNumber : 15241; MessageString : sdsttySendFileName),
{15242}(MessageNumber : 15242; MessageString : sdsttyDraining),
{15243}(MessageNumber : 15243; MessageString : sdsttyReplyPending),
{15244}(MessageNumber : 15244; MessageString : sdsttyPrepXmodem),
{15245}(MessageNumber : 15245; MessageString : sdsttySendXmodem),
{15246}(MessageNumber : 15246; MessageString : sdsttyFinished),
{15247}(MessageNumber : 15247; MessageString : sdsttyFinishDrain),
{15248}(MessageNumber : 15248; MessageString : sdsttyDone),
{15249}(MessageNumber : 15249; MessageString : sdstryInitial),
{15250}(MessageNumber : 15250; MessageString : sdstryDelay),
{15251}(MessageNumber : 15251; MessageString : sdstryWaitForHSReply),
{15252}(MessageNumber : 15252; MessageString : sdstryWaitForBlockStart),
{15253}(MessageNumber : 15253; MessageString : sdstryCollectBlock),
{15254}(MessageNumber : 15254; MessageString : sdstryProcessBlock),
{15255}(MessageNumber : 15255; MessageString : sdstryOpenFile),
{15256}(MessageNumber : 15256; MessageString : sdstryPrepXmodem),
{15257}(MessageNumber : 15257; MessageString : sdstryReceiveXmodem),
{15258}(MessageNumber : 15258; MessageString : sdstryFinished),
{15259}(MessageNumber : 15259; MessageString : sdstryDone),
{15260}(MessageNumber : 15260; MessageString : sdsttzInitial),
{15261}(MessageNumber : 15261; MessageString : sdsttzHandshake),
{15262}(MessageNumber : 15262; MessageString : sdsttzGetFile),
{15263}(MessageNumber : 15263; MessageString : sdsttzSendFile),
{15264}(MessageNumber : 15264; MessageString : sdsttzCheckFile),
{15265}(MessageNumber : 15265; MessageString : sdsttzStartData),
{15266}(MessageNumber : 15266; MessageString : sdsttzEscapeData),
{15267}(MessageNumber : 15267; MessageString : sdsttzSendData),
{15268}(MessageNumber : 15268; MessageString : sdsttzWaitAck),
{15269}(MessageNumber : 15269; MessageString : sdsttzSendEof),
{15270}(MessageNumber : 15270; MessageString : sdsttzDrainEof),
{15271}(MessageNumber : 15271; MessageString : sdsttzCheckEof),
{15272}(MessageNumber : 15272; MessageString : sdsttzSendFinish),
{15273}(MessageNumber : 15273; MessageString : sdsttzCheckFinish),
{15274}(MessageNumber : 15274; MessageString : sdsttzError),
{15275}(MessageNumber : 15275; MessageString : sdsttzCleanup),
{15276}(MessageNumber : 15276; MessageString : sdsttzDone),
{15277}(MessageNumber : 15277; MessageString : sdstrzRqstFile),
{15278}(MessageNumber : 15278; MessageString : sdstrzDelay),
{15279}(MessageNumber : 15279; MessageString : sdstrzWaitFile),
{15280}(MessageNumber : 15280; MessageString : sdstrzCollectFile),
{15281}(MessageNumber : 15281; MessageString : sdstrzSendInit),
{15282}(MessageNumber : 15282; MessageString : sdstrzSendBlockPrep),
{15283}(MessageNumber : 15283; MessageString : sdstrzSendBlock),
{15284}(MessageNumber : 15284; MessageString : sdstrzSync),
{15285}(MessageNumber : 15285; MessageString : sdstrzStartFile),
{15286}(MessageNumber : 15286; MessageString : sdstrzStartData),
{15287}(MessageNumber : 15287; MessageString : sdstrzCollectData),
{15288}(MessageNumber : 15288; MessageString : sdstrzGotData),
{15289}(MessageNumber : 15289; MessageString : sdstrzWaitEof),
{15290}(MessageNumber : 15290; MessageString : sdstrzEndOfFile),
{15291}(MessageNumber : 15291; MessageString : sdstrzSendFinish),
{15292}(MessageNumber : 15292; MessageString : sdstrzCollectFinish),
{15293}(MessageNumber : 15293; MessageString : sdstrzError),
{15294}(MessageNumber : 15294; MessageString : sdstrzWaitCancel),
{15295}(MessageNumber : 15295; MessageString : sdstrzCleanup),
{15296}(MessageNumber : 15296; MessageString : sdstrzDone),
{15297}(MessageNumber : 15297; MessageString : sdsttkInit),
{15298}(MessageNumber : 15298; MessageString : sdsttkInitReply),
{15299}(MessageNumber : 15299; MessageString : sdsttkCollectInit),
{15300}(MessageNumber : 15300; MessageString : sdsttkOpenFile),
{15301}(MessageNumber : 15301; MessageString : sdsttkSendFile),
{15302}(MessageNumber : 15302; MessageString : sdsttkFileReply),
{15303}(MessageNumber : 15303; MessageString : sdsttkCollectFile),
{15304}(MessageNumber : 15304; MessageString : sdsttkCheckTable),
{15305}(MessageNumber : 15305; MessageString : sdsttkSendData),
{15306}(MessageNumber : 15306; MessageString : sdsttkBlockReply),
{15307}(MessageNumber : 15307; MessageString : sdsttkCollectBlock),
{15308}(MessageNumber : 15308; MessageString : sdsttkSendEof),
{15309}(MessageNumber : 15309; MessageString : sdsttkEofReply),
{15310}(MessageNumber : 15310; MessageString : sdsttkCollectEof),
{15311}(MessageNumber : 15311; MessageString : sdsttkSendBreak),
{15312}(MessageNumber : 15312; MessageString : sdsttkBreakReply),
{15313}(MessageNumber : 15313; MessageString : sdsttkCollectBreak),
{15314}(MessageNumber : 15314; MessageString : sdsttkComplete),
{15315}(MessageNumber : 15315; MessageString : sdsttkWaitCancel),
{15316}(MessageNumber : 15316; MessageString : sdsttkError),
{15317}(MessageNumber : 15317; MessageString : sdsttkDone),
{15318}(MessageNumber : 15318; MessageString : sdstrkInit),
{15319}(MessageNumber : 15319; MessageString : sdstrkGetInit),
{15320}(MessageNumber : 15320; MessageString : sdstrkCollectInit),
{15321}(MessageNumber : 15321; MessageString : sdstrkGetFile),
{15322}(MessageNumber : 15322; MessageString : sdstrkCollectFile),
{15323}(MessageNumber : 15323; MessageString : sdstrkGetData),
{15324}(MessageNumber : 15324; MessageString : sdstrkCollectData),
{15325}(MessageNumber : 15325; MessageString : sdstrkComplete),
{15326}(MessageNumber : 15326; MessageString : sdstrkWaitCancel),
{15327}(MessageNumber : 15327; MessageString : sdstrkError),
{15328}(MessageNumber : 15328; MessageString : sdstrkDone),
{15329}(MessageNumber : 15329; MessageString : sdsttaInitial),
{15330}(MessageNumber : 15330; MessageString : sdsttaGetBlock),
{15331}(MessageNumber : 15331; MessageString : sdsttaWaitFreeSpace),
{15332}(MessageNumber : 15332; MessageString : sdsttaSendBlock),
{15333}(MessageNumber : 15333; MessageString : sdsttaSendDelay),
{15334}(MessageNumber : 15334; MessageString : sdsttaFinishDrain),
{15335}(MessageNumber : 15335; MessageString : sdsttaFinished),
{15336}(MessageNumber : 15336; MessageString : sdsttaDone),
{15337}(MessageNumber : 15337; MessageString : sdstraInitial),
{15338}(MessageNumber : 15338; MessageString : sdstraCollectBlock),
{15339}(MessageNumber : 15339; MessageString : sdstraProcessBlock),
{15340}(MessageNumber : 15340; MessageString : sdstraFinished),
{15341}(MessageNumber : 15341; MessageString : sdstraDone),
{15342}(MessageNumber : 15342; MessageString : sdstEnable),
{15343}(MessageNumber : 15343; MessageString : sdstDisable),
{15344}(MessageNumber : 15344; MessageString : sdstStringPacket),
{15345}(MessageNumber : 15345; MessageString : sdstSizePacket),
{15346}(MessageNumber : 15346; MessageString : sdstPacketTimeout),
{15347}(MessageNumber : 15347; MessageString : sdstStartStr),
{15348}(MessageNumber : 15348; MessageString : sdstEndStr),
{15349}(MessageNumber : 15349; MessageString : sdstIdle),
{15350}(MessageNumber : 15350; MessageString : sdstWaiting),
{15351}(MessageNumber : 15351; MessageString : sdstCollecting),
{15352}(MessageNumber : 15352; MessageString : sdstThreadStatusQueued), // SWB
{15353}(MessageNumber : 15353; MessageString : sdstThreadDataQueued), // SWB
{15354}(MessageNumber : 15354; MessageString : sdstThreadDataWritten), // SWB
{15355}(MessageNumber : 15355; MessageString : sdsttzSInit), // SWB
{15356}(MessageNumber : 15356; MessageString : sdsttzCheckSInit), // SWB
{15501}(MessageNumber : 15501; MessageString : sdispHeader),
{15502}(MessageNumber : 15502; MessageString : sdispHeaderLine),
{15601}(MessageNumber : 15601; MessageString : sdispmdmtagDCTS),
{15602}(MessageNumber : 15602; MessageString : sdispmdmtagDDSR),
{15603}(MessageNumber : 15603; MessageString : sdispmdmtagTERI),
{15604}(MessageNumber : 15604; MessageString : sdispmdmtagDDCD),
{15605}(MessageNumber : 15605; MessageString : sdispmdmtagCTS),
{15606}(MessageNumber : 15606; MessageString : sdispmdmtagDSR),
{15607}(MessageNumber : 15607; MessageString : sdispmdmtagRI),
{15608}(MessageNumber : 15608; MessageString : sdispmdmtagDCD),
{15700}(MessageNumber : 15700; MessageString : sdispTelnetBinary),
{15701}(MessageNumber : 15701; MessageString : sdispTelnetEcho),
{15702}(MessageNumber : 15702; MessageString : sdispTelnetReconnection),
{15703}(MessageNumber : 15703; MessageString : sdispTelnetSupressGoAhead),
{15704}(MessageNumber : 15704; MessageString : sdispTelnetApproxMsgSize),
{15705}(MessageNumber : 15705; MessageString : sdispTelnetStatus),
{15706}(MessageNumber : 15706; MessageString : sdispTelnetTimingMark),
{15707}(MessageNumber : 15707; MessageString : sdispTelnetRemoteTransEcho),
{15708}(MessageNumber : 15708; MessageString : sdispTelnetOutputLineWidth),
{15709}(MessageNumber : 15709; MessageString : sdispTelnetOutputPageSize),
{15710}(MessageNumber : 15710; MessageString : sdispTelnetOutputCRDisp),
{15711}(MessageNumber : 15711; MessageString : sdispTelnetOutputHorzTabs),
{15712}(MessageNumber : 15712; MessageString : sdispTelnetOutputHorzTabDisp),
{15713}(MessageNumber : 15713; MessageString : sdispTelnetOutputFFDisp),
{15714}(MessageNumber : 15714; MessageString : sdispTelnetOutputVertTabs),
{15715}(MessageNumber : 15715; MessageString : sdispTelnetOutputVertTabDisp),
{15716}(MessageNumber : 15716; MessageString : sdispTelnetOutputLinefeedDisp),
{15717}(MessageNumber : 15717; MessageString : sdispTelnetExtendedASCII),
{15718}(MessageNumber : 15718; MessageString : sdispTelnetLogout),
{15719}(MessageNumber : 15719; MessageString : sdispTelnetByteMacro),
{15720}(MessageNumber : 15720; MessageString : sdispTelnetDataEntryTerminal),
{15721}(MessageNumber : 15721; MessageString : sdispTelnetSUPDUP),
{15722}(MessageNumber : 15722; MessageString : sdispTelnetSUPDUPOutput),
{15723}(MessageNumber : 15723; MessageString : sdispTelnetSendLocation),
{15724}(MessageNumber : 15724; MessageString : sdispTelnetTerminalType),
{15725}(MessageNumber : 15725; MessageString : sdispTelnetEndofRecord),
{15726}(MessageNumber : 15726; MessageString : sdispTelnetTACACSUserID),
{15727}(MessageNumber : 15727; MessageString : sdispTelnetOutputMarking),
{15728}(MessageNumber : 15728; MessageString : sdispTelnetTerminalLocNum),
{15729}(MessageNumber : 15729; MessageString : sdispTelnetTelnet3270Regime),
{15730}(MessageNumber : 15730; MessageString : sdispTelnetX3PAD),
{15731}(MessageNumber : 15731; MessageString : sdispTelnetNegWindowSize),
{15732}(MessageNumber : 15732; MessageString : sdispTelnetTerminalSpeed),
{15733}(MessageNumber : 15733; MessageString : sdispTelnetFlowControl),
{15734}(MessageNumber : 15734; MessageString : sdispTelnetLineMode),
{15735}(MessageNumber : 15735; MessageString : sdispTelnetXDisplayLocation),
{15736}(MessageNumber : 15736; MessageString : sdispTelnetEnvironment),
{15737}(MessageNumber : 15737; MessageString : sdispTelnetAuthentication),
{15738}(MessageNumber : 15738; MessageString : sdispTelnetTelnetcode38),
{15739}(MessageNumber : 15739; MessageString : sdispTelnetNewEnvironment),
{15740}(MessageNumber : 15740; MessageString : sdispTelnetTelnetcode40),
{15741}(MessageNumber : 15741; MessageString : sdispTelnetTelnetcode41),
{15742}(MessageNumber : 15742; MessageString : sdispTelnetCharacterSet)
);
implementation
end.
+54
View File
@@ -0,0 +1,54 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* AWDEFINE.INC 4.06 *}
{*********************************************************}
{* Compiler defines affecting all APRO units *}
{*********************************************************}
{Because AWDEFINE.INC is included in all APRO units, you can specify global
compiler options here. AWDEFINE is included *before* each units' required
compiler options, so options specified here might be overridden by hardcode
options in the source file.}
{$S- No stack overflow checking}
{$R- No range checking}
{$B- Incomplete boolean evaluation}
{$P- No open string parameters}
{$Q- No arithmetic overflow checking}
{$T- No type-checked pointers}
{$V- No var string checking}
{$X+ Extended syntax}
{$Z- Enumeration size is 256}
{$H+ Long string support}
{$J+ Writeable typed constants}
{.$DEFINE TapiDebug} { creates detailed TAPI debug log }
{.$DEFINE AdModemDebug} { adds debug info to dispatcher log }
{$WARN SYMBOL_PLATFORM OFF} {APRO only works under Windows}
{$WARN UNIT_PLATFORM OFF} {APRO only works under Windows}
+4886
View File
File diff suppressed because it is too large Load Diff
+563
View File
@@ -0,0 +1,563 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Sulaiman Mah
* Sean B. Durkin
* Sebastian Zierer
*
* ***** END LICENSE BLOCK ***** *)
{*********************************************************}
{* AWWIN32.PAS 5.00 *}
{*********************************************************}
{* Win32 serial device layer and dispatcher *}
{*********************************************************}
{
Along with AwUser.pas, this unit defines/implements the dreaded Windows
serial port dispatcher. This unit provides the interface to the Win32
serial port drivers, the threading code is in AwUser.pas.
Be extrememly cautious when making changes here or in AwUser. The multi-
threaded nature, and very strict timing requirements, can lead to very
unpredictable results. Things as simple as adding doing a writeln to a
console window can dramatically change the results.
}
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
{Options required for this unit}
{$X+,F+,K+,B-}
unit AwWin32;
{-Device layer for standard Win32 communications API}
interface
uses
Windows,
Classes,
SysUtils,
AdWUtil,
AdSocket,
OoMisc,
awUser;
type
TApdWin32Dispatcher = class(TApdBaseDispatcher)
protected
ReadOL : TOverLapped;
WriteOL : TOverLapped;
function EscapeComFunction(Func : Integer) : Integer; override;
function FlushCom(Queue : Integer) : Integer; override;
function GetComError(var Stat : TComStat) : Integer; override;
function GetComEventMask(EvtMask : Integer) : Cardinal; override;
function GetComState(var DCB: TDCB): Integer; override;
function SetComState(var DCB : TDCB) : Integer; override;
function ReadCom(Buf : PAnsiChar; Size: Integer) : Integer; override;
function WriteCom(Buf : PAnsiChar; Size: Integer) : Integer; override;
function SetupCom(InSize, OutSize : Integer) : Boolean; override;
procedure StartDispatcher; override;
procedure StopDispatcher; override;
function WaitComEvent(var EvtMask : DWORD;
lpOverlapped : POverlapped) : Boolean; override;
function OutBufUsed: Cardinal; override; // SWB
public
function CloseCom : Integer; override;
function OpenCom(ComName: PChar; InQueue,
OutQueue : Cardinal) : Integer; override;
function ProcessCommunications : Integer; override;
function CheckPort(ComName: PChar): Boolean; override;
end;
TApdTAPI32Dispatcher = class(TApdWin32Dispatcher)
public
constructor Create(Owner : TObject; InCid : Integer);
function OpenCom(ComName: PChar; InQueue,
OutQueue : Cardinal) : Integer; override;
end;
implementation
uses
StrUtils;
function TApdWin32Dispatcher.CheckPort(ComName: PChar): Boolean; //SZ
// Returns true if a port exists
var
Tmp: string;
CC: PCommConfig;
Len: Cardinal;
begin
Tmp := ComName;
if AnsiStartsText('\\.\', Tmp) then
Delete(Tmp, 1, 4);
New(CC);
try
FillChar(CC^, SizeOf(CC^), 0);
CC^.dwSize := SizeOf(CC^);
Len := SizeOf(CC^);
Result := GetDefaultCommConfig(PChar(Tmp), CC^, Len);
finally
Dispose(CC);
end;
if (not Result) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
begin
GetMem(CC, Len);
try
FillChar(CC^, SizeOf(CC^), 0);
CC^.dwSize := SizeOf(CC^);
Result := GetDefaultCommConfig(PChar(Tmp), CC^, Len);
finally
FreeMem(CC);
end;
end;
end;
function TApdWin32Dispatcher.CloseCom : Integer;
{-Close the comport and cleanup}
begin
// Under certain circumstances, it is possible that CloseCom can be called
// recursively. In that event, we don't want to be re-executing this code.
// So, set a flag to show that we are inside this method and check it
// every time we enter. If it is already set, just exit and do nothing.
// This used to be accomplished by acquiring the DataSection critical section
// but this lead to occasional deadlocks.
EnterCriticalSection(DataSection); // SWB
if (CloseComActive) then // SWB
begin // SWB
LeaveCriticalSection(DataSection); // SWB
Result := 0; // SWB
Exit; // SWB
end; // SWB
CloseComActive := True; // SWB
LeaveCriticalSection(DataSection); // SWB
try // SWB
{Release the events}
if ReadOL.hEvent <> 0 then begin
CloseHandle(ReadOL.hEvent);
ReadOL.hEvent := 0;
end;
if WriteOL.hEvent <> 0 then begin
CloseHandle(WriteOL.hEvent);
WriteOL.hEvent := 0;
end;
if DispActive then begin
KillThreads := True;
{Force the comm thread to wake...}
SetCommMask(CidEx, 0);
SetEvent(ReadyEvent);
ResetEvent(GeneralEvent);
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(ComKill));
{$ENDIF}
end;
{Close the comport}
if CloseHandle(CidEx) then begin
Result := 0;
CidEx := -1;
end else
Result := -1;
finally // SWB
CloseComActive := False; // SWB
end; // SWB
end;
function TApdWin32Dispatcher.EscapeComFunction(Func: Integer): Integer;
{-Perform the extended comm function Func}
begin
EscapeCommFunction(CidEx, Func);
Result := 0;
end;
function TApdWin32Dispatcher.FlushCom(Queue: Integer): Integer;
{-Flush the input or output buffer}
begin
if (Queue = 0) and (OutThread <> nil) then begin
{Flush our own output buffer...}
SetEvent(OutFlushEvent);
{ this can cause a hang when using an IR port that does not have a }
{ connection (the IR receiver is not in range), the port drivers }
{ will not flush the buffers, so we'd wait forever }
WaitForSingleObject(GeneralEvent, 5000);{INFINITE);} {!!.02}
{...XMit thread has acknowledged our request, so flush it}
EnterCriticalSection(OutputSection);
try
OBufFull := False;
OBufHead := 0;
OBufTail := 0;
Result := Integer(PurgeComm(CidEx,
PURGE_TXABORT or PURGE_TXCLEAR));
finally
LeaveCriticalSection(OutputSection);
end;
end else
Result := Integer(PurgeComm(CidEx, PURGE_RXABORT or PURGE_RXCLEAR));
if Result = 1 then
Result := 0
else
Result := -Integer(GetLastError);
end;
function TApdWin32Dispatcher.GetComError(var Stat: TComStat): Integer;
{-Get the current error and update Stat}
var
Errors : DWORD;
begin
if ClearCommError(CidEx, Errors, @Stat) then
Result := Errors
else
Result := 0;
{Replace information about Windows output buffer with our own}
Stat.cbOutQue := OutBufUsed; // SWB
end;
function TApdWin32Dispatcher.GetComEventMask(EvtMask: Integer): Cardinal;
{-Set the communications event mask}
begin
Result := 0;
end;
function TApdWin32Dispatcher.GetComState(var DCB: TDCB): Integer;
{-Fill in DCB with the current communications state}
begin
if Integer(GetCommState(CidEx, DCB)) = 1 then
Result := 0
else
Result := -1;
end;
function TApdWin32Dispatcher.OpenCom(ComName: PChar; InQueue, OutQueue: Cardinal): Integer;
{-Open the comport specified by ComName}
begin
{Open the device}
Result := CreateFile(ComName, {name}
GENERIC_READ or GENERIC_WRITE, {access attributes}
0, {no sharing}
nil, {no security}
OPEN_EXISTING, {creation action}
FILE_ATTRIBUTE_NORMAL or
FILE_FLAG_OVERLAPPED, {attributes}
0); {no template}
if Result <> Integer(INVALID_HANDLE_VALUE) then begin
CidEx := Result;
{Create port data structure}
ReadOL.hEvent := CreateEvent(nil, True, False, nil);
WriteOL.hEvent := CreateEvent(nil, True, False, nil);
if (ReadOL.hEvent = 0) or (WriteOL.hEvent = 0) then begin
{Failed to create events, get rid of everything}
CloseHandle(ReadOL.hEvent);
CloseHandle(WriteOL.hEvent);
CloseHandle(Result);
Result := ecOutOfMemory;
Exit;
end;
end else
{Failed to open port, just return error signal, caller will
call GetLastError to get actual error code}
Result := -1;
end;
function TApdWin32Dispatcher.ReadCom(Buf: PAnsiChar; Size: Integer): Integer;
{-Read Size bytes from the comport specified by Cid}
var
OK : Bool;
Temp : DWORD;
begin
{Post a read request...}
OK := ReadFile(CidEx, {handle}
Buf^, {buffer}
Size, {bytes to read}
Temp, {bytes read}
@ReadOL); {overlap record}
{...and see what happened}
if not OK then begin
if GetLastError = ERROR_IO_PENDING then begin
{Waiting for data}
if GetOverLappedResult(CidEx, {handle}
ReadOL, {overlapped structure}
Temp, {bytes written}
True) then begin {wait for completion}
{Read complete, reset event}
ResetEvent(ReadOL.hEvent);
end;
end;
end;
Result := Integer(Temp);
end;
function TApdWin32Dispatcher.SetComState(var DCB: TDCB): Integer;
{-Set the a new communications device state from DCB}
begin
if SetCommState(CidEx, DCB) then
Result := 0
else
Result := -Integer(GetLastError);
end;
function TApdWin32Dispatcher.WriteCom(Buf: PAnsiChar; Size: Integer): Integer;
{-Write data to the comport}
type
PBArray = ^TBArray;
TBArray = array[0..pred(High(Integer))] of Byte;
var
SizeAtEnd : Integer;
LeftOver : Integer;
begin
{Add the data to the output queue}
EnterCriticalSection(OutputSection);
try
{we already know at this point that there is enough room for the block}
SizeAtEnd := OutQue - OBufHead;
if SizeAtEnd >= Size then begin
{can move data to output queue in one block}
Move(Buf^, OBuffer^[OBufHead], Size);
if SizeAtEnd = Size then
OBufHead := 0
else
Inc(OBufHead, Size);
end else begin
{ need to use two moves }
Move(Buf^, OBuffer^[OBufHead], SizeAtEnd);
LeftOver := Size - SizeAtEnd;
Move(PBArray(Buf)^[SizeAtEnd], OBuffer^, LeftOver);
OBufHead := LeftOver;
end;
finally
LeaveCriticalSection(OutputSection);
end;
{...finally, wake up the output thread to send the data}
SetEvent(OutputEvent);
Result := Size; {report all was sent}
end;
function TApdWin32Dispatcher.SetupCom(InSize, OutSize : Integer) : Boolean;
{-Set new in/out buffer sizes}
begin
Result := SetupComm(CidEx, InSize, OutSize);
end;
function TApdWin32Dispatcher.WaitComEvent(var EvtMask : DWORD;
lpOverlapped : POverlapped) : Boolean;
begin
Result := WaitCommEvent(CidEx, EvtMask, lpOverlapped);
end;
procedure TApdWin32Dispatcher.StartDispatcher;
begin
EnterCriticalSection(DataSection);
try
{See if we're already active}
if DispActive then
raise Exception.Create('Dispatcher already started');
DispActive := True;
{Create the com events thread}
KillThreads := False;
ComThread := TComThread.Create(Self);
{Wait for it to start...}
WaitForSingleObject(GeneralEvent, ThreadStartWait);
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(ComStart));
{$ENDIF}
{Create the dispatcher thread}
fDispThread := TDispThread.Create(Self);
{Wait for it to start...}
WaitForSingleObject(GeneralEvent, ThreadStartWait);
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(DispStart));
{$ENDIF}
{Create the output thread}
OutThread := TOutThread.Create(Self);
{Wait for it to start...}
WaitForSingleObject(GeneralEvent, ThreadStartWait);
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(OutStart));
{$ENDIF}
finally
LeaveCriticalSection(DataSection);
end;
end;
procedure TApdWin32Dispatcher.StopDispatcher;
var
ET : EventTimer;
begin
if not DispActive then
Exit;
{ Set the flag to kill the threads next time they wake, or after }
{ their current processing }
KillThreads := True;
if Assigned(OutThread) then begin
{Force the output thread to wake...}
SetEvent(OutFlushEvent);
{...and wait for it to die}
while (OutThread <> nil) do
SafeYield;
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(OutKill));
{$ENDIF}
end;
if Assigned(ComThread) then begin
{Force the comm thread to wake...}
SetCommMask(CidEx, 0);
SetEvent(ReadyEvent);
{... and wait for it to die}
ResetEvent(GeneralEvent);
while (ComThread <> nil) do
SafeYield;
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(ComKill));
{$ENDIF}
end;
{Now kill the timer}
KillTimer(0, TimerID);
if Assigned(DispThread) then begin
KillThreads := True;
{Wait for it to die}
NewTimer(ET, 36); { start a 2-second timer to prevent blocks }
while (DispThread <> nil) and not(TimerExpired(ET)) do
SafeYield;
if DispThread <> nil then begin
{$IFDEF DebugThreadConsole}
WriteLn('DispThread<>nil');
{$ENDIF}
{ thread didn't die, reset the event }
SetEvent(ComEvent);
{Wait for it to die yet again}
NewTimer(ET, 36); { start a 2-second timer to prevent blocks }
while (DispThread <> nil) and not(TimerExpired(ET)) do
SafeYield;
if DispThread <> nil then
{ disp thread is not responding, brutally terminate it }
DispThread.Free;
end;
{$IFDEF DebugThreadConsole}
Writeln(ThreadStatus(DispKill));
{$ENDIF}
end;
if ComEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(ComEvent) then
ComEvent := INVALID_HANDLE_VALUE;
end;
if ReadyEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(ReadyEvent) then
ReadyEvent := INVALID_HANDLE_VALUE;
end;
if GeneralEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(GeneralEvent) then
GeneralEvent := INVALID_HANDLE_VALUE;
end;
if OutputEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(OutputEvent) then
OutputEvent := INVALID_HANDLE_VALUE;
end;
if SentEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(SentEvent) then
SentEvent := INVALID_HANDLE_VALUE;
end;
if OutFlushEvent <> INVALID_HANDLE_VALUE then begin
if CloseHandle(OutFlushEvent) then
OutFlushEvent := INVALID_HANDLE_VALUE;
end;
end;
function TApdWin32Dispatcher.ProcessCommunications : Integer;
{-Communications are running in separate threads -- give them a chance}
begin
Sleep(0);
Result := 0;
end;
constructor TApdTAPI32Dispatcher.Create(Owner : TObject; InCid : Integer);
begin
CidEx := InCid;
inherited Create(Owner);
end;
function TApdTAPI32Dispatcher.OpenCom(ComName: PChar; InQueue, OutQueue : Cardinal) : Integer;
begin
ReadOL.hEvent := CreateEvent(nil, True, False, nil);
WriteOL.hEvent := CreateEvent(nil, True, False, nil);
if (ReadOL.hEvent = 0) or (WriteOL.hEvent = 0) then begin
CloseCom;
Result := -1;
Exit;
end;
if CidEx <> 0 then
Result := CidEx
else begin
Result := ecCommNotOpen;
SetLastError(-Result);
end;
end;
// Added by SWB
function TApdWin32Dispatcher.OutBufUsed: Cardinal;
begin
EnterCriticalSection(OutputSection);
try
Result := 0;
if OBufFull then
Result := OutQue
else if OBufHead > OBufTail then
{Buffer is not wrapped}
Result := OBufHead - OBufTail
else if OBufHead < OBufTail then
{Buffer is wrapped}
Result := OBufHead + (OutQue - OBufTail);
finally
LeaveCriticalSection(OutputSection);
end;
end;
end.
BIN
View File
Binary file not shown.
+1278
View File
File diff suppressed because it is too large Load Diff
+283
View File
@@ -0,0 +1,283 @@
(***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Async Professional
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1991-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Stephen W. Boyd - Created this module to provide input queueing for
* serial port dispatcher.
* August 2005
* Sebastian Zierer
*
* ***** END LICENSE BLOCK ***** *)
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
unit LnsQueue;
interface
uses Windows, SysUtils, SyncObjs, Classes, OoMisc;
const
IO_BUFFER_SIZE = 256;
type
// An object to encapsulate an I/O buffer. There a 3 kinds of buffer. Data
// buffers trace (logging) buffers and status buffers.
TIOBuffer = class(TObject)
protected
FInUse : Boolean; // Set to true while processing events
// and triggers for this buffer.
FDataSize : Integer;
public
property InUse : Boolean read FInUse write FInUse;
property Size : Integer read FDataSize;
end;
TDataBuffer = class(TIOBuffer)
private
FData : PAnsiChar;
FDataUsed : Integer;
FDataRead : Integer;
public
constructor Create(size : Integer);
destructor Destroy; override;
property Data : PAnsiChar read FData write FData;
property BytesUsed : Integer read FDataUsed write FDataUsed;
property BytesRead : Integer read FDataRead write FDataRead;
end;
TStatusBuffer = class(TIOBuffer)
private
FStatus : DWORD;
public
property Status : DWORD read FStatus write FStatus;
end;
TLogBuffer = class(TIOBuffer)
private
FType : TDispatchType;
FSubType : TDispatchSubType;
FTime : DWord;
FData : Cardinal;
FBuffer : PAnsiChar;
function GetMoreData : Cardinal;
public
constructor Create(typ : TDispatchType;
styp : TDispatchSubType;
tim : DWORD;
data : Cardinal;
bfr : PAnsiChar;
bfrLen : Integer);
destructor Destroy; override;
property drType : TDispatchType read FType;
property drSubType : TDispatchSubType read FSubType;
property drTime : DWORD read FTime;
property drData : Cardinal read FData;
property drMoreData : Cardinal read GetMoreData;
property drBuffer : PAnsiChar read FBuffer;
end;
// A queue to hold serial port I/O buffers for delivery to / from the
// dispatcher thread. Also used to queue items to the dispatcher log.
TIOQueue = class(TList)
private
FLock : TCriticalSection;
FEvent : TEvent;
FBytesQueued: Integer;
public
constructor Create;
destructor Destroy; override;
procedure Clear; override;
function Peek : TIOBuffer;
function Pop : TIOBuffer;
procedure Push(item : TIOBuffer);
function WaitForBuffer(tmo : Integer) : TWaitResult;
property BytesQueued : Integer read FBytesQueued;
end;
implementation
{ TDataBuffer methods }
constructor TDataBuffer.Create(size : Integer);
begin
inherited Create;
FData := AllocMem(size);
if (not Assigned(FData)) then
raise Exception.Create('Insufficient memory to allocate I/O buffer.');
FDataSize := size;
FDataUsed := 0;
FDataRead := 0;
end;
destructor TDataBuffer.Destroy;
begin
if (Assigned(FData)) then
FreeMem(FData);
inherited Destroy;
end;
{ TLogBuffer methods }
constructor TLogBuffer.Create(typ : TDispatchType;
styp : TDispatchSubType;
tim : DWORD;
data : Cardinal;
bfr : PAnsiChar;
bfrLen : Integer);
begin
inherited Create;
FType := typ;
FSubType := styp;
FTime := tim;
FData := data;
FDataSize := bfrLen;
if (FDataSize > 0) then
begin
GetMem(FBuffer, FDataSize);
Move(bfr^, FBuffer^, FDataSize);
end;
end;
destructor TLogBuffer.Destroy;
begin
if (Assigned(FBuffer)) then
FreeMem(FBuffer);
inherited Destroy;
end;
function TLogBuffer.GetMoreData : Cardinal;
begin
Result := Cardinal(FDataSize);
end;
{ TIOQueue methods }
constructor TIOQueue.Create;
begin
inherited Create;
FLock := TCriticalSection.Create;
FEvent := TEvent.Create(nil, False, False, '');
end;
destructor TIOQueue.Destroy;
begin
Clear;
if (Assigned(FLock)) then
begin
FLock.Free;
// We must clear this pointer here so that Clear, which gets called
// by the inherited Destroy method, knows that the lock is no longer
// valid and won't try to acquire it.
FLock := nil;
end;
if (Assigned(FEvent)) then
FEvent.Free;
inherited Destroy;
end;
// Remove all non-InUse buffers from the queue. This used to purge the queue
// when the dispatcher is requested to flush the buffers.
procedure TIOQueue.Clear;
var
i: Integer;
begin
if (Assigned(FLock)) then
FLock.Acquire;
try
i := 0;
while (i < Count) do
with TIOBuffer(Items[i]) do
begin
if (InUse) then
Inc(i)
else
begin
Free;
Delete(i);
end;
end;
finally
if (Assigned(FLock)) then
FLock.Release
else
// If FLock is nil then we are Destroying so we should call the
// inherited clear method to make sure that all memory allocated
// by TList gets released.
inherited Clear;
end;
end;
// Return a pointer to the first buffer without removing it from the queue.
// Sets the FInUse flag to prevent the I/O threads from appending to the
// buffer while the dispatcher thread is reading it. Do not return a buffer
// pointer if the first buffer is being written to by the I/O thread.
function TIOQueue.Peek : TIOBuffer;
begin
FLock.Acquire;
try
if (Count > 0) then
begin
Result := TIOBuffer(Items[0]);
if (Result.InUse) then
Result := nil
else
Result.InUse := True;
end else
Result := nil;
finally
FLock.Release;
end;
end;
// Remove the first buffer from the queue and return a pointer to it.
function TIOQueue.Pop : TIOBuffer;
begin
FLock.Acquire;
try
if (Count > 0) then
begin
Result := TIOBuffer(Items[0]);
Dec(FBytesQueued, Result.Size);
Delete(0);
end else
Result := nil;
finally
FLock.Release;
end;
end;
// Add a new buffer to the end of the queue
procedure TIOQueue.Push(item : TIOBuffer);
begin
FLock.Acquire;
try
Add(item);
Inc(FBytesQueued, item.Size);
FEvent.SetEvent;
finally
FLock.Release;
end;
end;
// Wait for a buffer to appear on the queue. If there is a buffer available,
// we return immediately, otherwise we wait for FEvent to be set.
function TIOQueue.WaitForBuffer(tmo : Integer) : TWaitResult;
begin
if (Count > 0) then
Result := wrSignaled
else
Result := FEvent.WaitFor(tmo);
end;
end.
BIN
View File
Binary file not shown.
Binary file not shown.
+3894
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -14,8 +14,8 @@
-$N+
-$O-
-$P-
-$Q-
-$R-
-$Q+
-$R+
-$S-
-$T-
-$U-
+2 -2
View File
@@ -17,8 +17,8 @@ M=0
N=1
O=0
P=0
Q=0
R=0
Q=1
R=1
S=0
T=0
U=0
+112 -112
View File
@@ -1,8 +1,8 @@
Start Length Name Class
0001:00000000 001DD698H .text CODE
0002:00000000 00002F10H .data DATA
0002:00002F10 0698FB35H .bss BSS
0001:00000000 001F241CH .text CODE
0002:00000000 00002F18H .data DATA
0002:00002F18 06A55901H .bss BSS
Detailed map of segments
@@ -15,101 +15,101 @@ Detailed map of segments
0001:0000710C 00000338 C=CODE S=.text G=(none) M=SysConst ACBP=A9
0001:00007444 00006F90 C=CODE S=.text G=(none) M=SysUtils ACBP=A9
0001:0000E3D4 00000823 C=CODE S=.text G=(none) M=VarUtils ACBP=A9
0001:0000EBF8 0000873A C=CODE S=.text G=(none) M=Variants ACBP=A9
0001:00017334 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
0001:000174D4 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
0001:00017D10 00000368 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
0001:00018078 0000A7FE C=CODE S=.text G=(none) M=Classes ACBP=A9
0001:00022878 00000378 C=CODE S=.text G=(none) M=Consts ACBP=A9
0001:00022BF0 00009DC7 C=CODE S=.text G=(none) M=Graphics ACBP=A9
0001:0002C9B8 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
0001:0002CADC 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
0001:0002CD94 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
0001:0002CF2C 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
0001:0002D6B4 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
0001:0002D6EC 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
0001:0002E6E4 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
0001:0002E73C 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
0001:0002F804 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
0001:0002FB24 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
0001:0002FF14 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
0001:000308D0 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
0001:00030908 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
0001:00030940 00000040 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
0001:00030980 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
0001:000309B8 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
0001:00030A10 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
0001:00030A48 000000EC C=CODE S=.text G=(none) M=ShlObj ACBP=A9
0001:00030B34 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
0001:00030B94 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
0001:00030BCC 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
0001:000342A0 0000602A C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
0001:0003A2CC 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
0001:0003A35C 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
0001:0003AAFC 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
0001:0003AC24 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
0001:0003E448 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
0001:0003E480 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
0001:0003E4E8 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
0001:0003E550 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
0001:0003E5BC 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
0001:0003E614 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
0001:0003E64C 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
0001:00047F94 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
0001:00048E34 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
0001:000554CC 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
0001:00055634 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
0001:00056354 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
0001:00067758 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
0001:000689EC 00001C04 C=CODE S=.text G=(none) M=ImgList ACBP=A9
0001:0006A5F0 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
0001:00070CD4 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
0001:0007DC60 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
0001:0007DCB0 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
0001:0009109C 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
0001:000910FC 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
0001:00092358 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
0001:00092390 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
0001:00093B24 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
0001:00093B84 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
0001:000970A0 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
0001:000973B4 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
0001:000974DC 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
0001:0009AF54 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
0001:0009B840 000005A0 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
0001:0009BDE0 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
0001:0009BE20 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
0001:0009BE58 00000038 C=CODE S=.text G=(none) M=DateUtils ACBP=A9
0001:0009BE90 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
0001:0009C8A8 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
0001:0009E9B0 000092A4 C=CODE S=.text G=(none) M=Grids ACBP=A9
0001:000A7C54 00001BFC C=CODE S=.text G=(none) M=Spin ACBP=A9
0001:000A9850 00003762 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
0001:000ACFB4 0000057C C=CODE S=.text G=(none) M=Importation ACBP=A9
0001:000AD530 000196A8 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
0001:000C6BD8 00002E3F C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
0001:000C9A18 00000D84 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
0001:000CA79C 000011F4 C=CODE S=.text G=(none) M=UnitFicheHoraire ACBP=A9
0001:000CB990 00000038 C=CODE S=.text G=(none) M=ShellConsts ACBP=A9
0001:000CB9C8 000004E0 C=CODE S=.text G=(none) M=ShellCtrls ACBP=A9
0001:000CBEA8 00001A0C C=CODE S=.text G=(none) M=UnitRoute ACBP=A9
0001:000CD8B4 00002140 C=CODE S=.text G=(none) M=UnitRouteTrains ACBP=A9
0001:000CF9F4 00000298 C=CODE S=.text G=(none) M=UnitInfo ACBP=A9
0001:000CFC8C 00002DD4 C=CODE S=.text G=(none) M=selection_train ACBP=A9
0001:000D2A60 000062A8 C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000D8D08 00001908 C=CODE S=.text G=(none) M=UnitClock ACBP=A9
0001:000DA610 0005820C C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:0013281C 000039DC C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:001361F8 00002BF8 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:00138DF0 000088F8 C=CODE S=.text G=(none) M=UnitModifAction ACBP=A9
0001:001416E8 00000F64 C=CODE S=.text G=(none) M=UnitHorloge ACBP=A9
0001:0014264C 000025FB C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:00144C48 00001190 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:00145DD8 00000F6C C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:00146D44 00046E24 C=CODE S=.text G=(none) M=Unitprinc ACBP=A9
0001:0018DB68 0004C5F4 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:001DA15C 00002F78 C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:001DD0D4 000005C4 C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
0001:0000EBF8 0000878A C=CODE S=.text G=(none) M=Variants ACBP=A9
0001:00017384 000001A0 C=CODE S=.text G=(none) M=RTLConsts ACBP=A9
0001:00017524 0000083C C=CODE S=.text G=(none) M=TypInfo ACBP=A9
0001:00017D60 00000368 C=CODE S=.text G=(none) M=ActiveX ACBP=A9
0001:000180C8 0000A7FE C=CODE S=.text G=(none) M=Classes ACBP=A9
0001:000228C8 00000378 C=CODE S=.text G=(none) M=Consts ACBP=A9
0001:00022C40 00009DC7 C=CODE S=.text G=(none) M=Graphics ACBP=A9
0001:0002CA08 00000124 C=CODE S=.text G=(none) M=Math ACBP=A9
0001:0002CB2C 000002B8 C=CODE S=.text G=(none) M=Contnrs ACBP=A9
0001:0002CDE4 00000198 C=CODE S=.text G=(none) M=CommCtrl ACBP=A9
0001:0002CF7C 00000787 C=CODE S=.text G=(none) M=MultiMon ACBP=A9
0001:0002D704 00000038 C=CODE S=.text G=(none) M=Imm ACBP=A9
0001:0002D73C 00000FF8 C=CODE S=.text G=(none) M=HelpIntfs ACBP=A9
0001:0002E734 00000058 C=CODE S=.text G=(none) M=WinSpool ACBP=A9
0001:0002E78C 000010C8 C=CODE S=.text G=(none) M=Printers ACBP=A9
0001:0002F854 0000031F C=CODE S=.text G=(none) M=FlatSB ACBP=A9
0001:0002FB74 000003F0 C=CODE S=.text G=(none) M=SyncObjs ACBP=A9
0001:0002FF64 000009BB C=CODE S=.text G=(none) M=UxTheme ACBP=A9
0001:00030920 00000038 C=CODE S=.text G=(none) M=RichEdit ACBP=A9
0001:00030958 00000038 C=CODE S=.text G=(none) M=ToolWin ACBP=A9
0001:00030990 00000040 C=CODE S=.text G=(none) M=ShellAPI ACBP=A9
0001:000309D0 00000038 C=CODE S=.text G=(none) M=RegStr ACBP=A9
0001:00030A08 00000058 C=CODE S=.text G=(none) M=WinInet ACBP=A9
0001:00030A60 00000038 C=CODE S=.text G=(none) M=UrlMon ACBP=A9
0001:00030A98 000000EC C=CODE S=.text G=(none) M=ShlObj ACBP=A9
0001:00030B84 00000060 C=CODE S=.text G=(none) M=CommDlg ACBP=A9
0001:00030BE4 00000038 C=CODE S=.text G=(none) M=Dlgs ACBP=A9
0001:00030C1C 000036D1 C=CODE S=.text G=(none) M=Dialogs ACBP=A9
0001:000342F0 0000602A C=CODE S=.text G=(none) M=ExtCtrls ACBP=A9
0001:0003A31C 00000090 C=CODE S=.text G=(none) M=ComStrs ACBP=A9
0001:0003A3AC 000007A0 C=CODE S=.text G=(none) M=Clipbrd ACBP=A9
0001:0003AB4C 00000128 C=CODE S=.text G=(none) M=StrUtils ACBP=A9
0001:0003AC74 00003821 C=CODE S=.text G=(none) M=Buttons ACBP=A9
0001:0003E498 00000038 C=CODE S=.text G=(none) M=ExtDlgs ACBP=A9
0001:0003E4D0 00000068 C=CODE S=.text G=(none) M=IniFiles ACBP=A9
0001:0003E538 00000068 C=CODE S=.text G=(none) M=Registry ACBP=A9
0001:0003E5A0 0000006C C=CODE S=.text G=(none) M=Mapi ACBP=A9
0001:0003E60C 00000058 C=CODE S=.text G=(none) M=ExtActns ACBP=A9
0001:0003E664 00000038 C=CODE S=.text G=(none) M=ListActns ACBP=A9
0001:0003E69C 00009948 C=CODE S=.text G=(none) M=ComCtrls ACBP=A9
0001:00047FE4 00000EA0 C=CODE S=.text G=(none) M=Themes ACBP=A9
0001:00048E84 0000C698 C=CODE S=.text G=(none) M=StdCtrls ACBP=A9
0001:0005551C 00000168 C=CODE S=.text G=(none) M=StdActns ACBP=A9
0001:00055684 00000D1F C=CODE S=.text G=(none) M=WinHelpViewer ACBP=A9
0001:000563A4 00011403 C=CODE S=.text G=(none) M=Controls ACBP=A9
0001:000677A8 00001292 C=CODE S=.text G=(none) M=ActnList ACBP=A9
0001:00068A3C 00001C04 C=CODE S=.text G=(none) M=ImgList ACBP=A9
0001:0006A640 000066E1 C=CODE S=.text G=(none) M=Menus ACBP=A9
0001:00070D24 0000CF8C C=CODE S=.text G=(none) M=Forms ACBP=A9
0001:0007DCB0 00000050 C=CODE S=.text G=(none) M=JConsts ACBP=A9
0001:0007DD00 000133EC C=CODE S=.text G=(none) M=jpeg ACBP=A9
0001:000910EC 00000060 C=CODE S=.text G=(none) M=ComConst ACBP=A9
0001:0009114C 00001259 C=CODE S=.text G=(none) M=ComObj ACBP=A9
0001:000923A8 00000038 C=CODE S=.text G=(none) M=StdVCL ACBP=A9
0001:000923E0 00001793 C=CODE S=.text G=(none) M=AxCtrls ACBP=A9
0001:00093B74 00000060 C=CODE S=.text G=(none) M=OleConst ACBP=A9
0001:00093BD4 00003519 C=CODE S=.text G=(none) M=OleCtrls ACBP=A9
0001:000970F0 00000314 C=CODE S=.text G=(none) M=TlHelp32 ACBP=A9
0001:00097404 00000128 C=CODE S=.text G=(none) M=WinSock ACBP=A9
0001:0009752C 00003A78 C=CODE S=.text G=(none) M=ScktComp ACBP=A9
0001:0009AFA4 00000040 C=CODE S=.text G=(none) M=MMSystem ACBP=A9
0001:0009AFE4 00000038 C=CODE S=.text G=(none) M=Nb30 ACBP=A9
0001:0009B01C 00000038 C=CODE S=.text G=(none) M=DateUtils ACBP=A9
0001:0009B054 000008EA C=CODE S=.text G=(none) M=OleServer ACBP=A9
0001:0009B940 000005A0 C=CODE S=.text G=(none) M=MSCommLib_TLB ACBP=A9
0001:0009BEE0 00000A18 C=CODE S=.text G=(none) M=MaskUtils ACBP=A9
0001:0009C8F8 00002108 C=CODE S=.text G=(none) M=Mask ACBP=A9
0001:0009EA00 000092A4 C=CODE S=.text G=(none) M=Grids ACBP=A9
0001:000A7CA4 00001BFC C=CODE S=.text G=(none) M=Spin ACBP=A9
0001:000A98A0 00003762 C=CODE S=.text G=(none) M=UnitPilote ACBP=A9
0001:000AD004 0000057C C=CODE S=.text G=(none) M=Importation ACBP=A9
0001:000AD580 000196A8 C=CODE S=.text G=(none) M=UnitAnalyseSegCDM ACBP=A9
0001:000C6C28 00002E3F C=CODE S=.text G=(none) M=UnitConfigTCO ACBP=A9
0001:000C9A68 00000D84 C=CODE S=.text G=(none) M=Unit_Pilote_aig ACBP=A9
0001:000CA7EC 000011F4 C=CODE S=.text G=(none) M=UnitFicheHoraire ACBP=A9
0001:000CB9E0 00000038 C=CODE S=.text G=(none) M=ShellConsts ACBP=A9
0001:000CBA18 000004E0 C=CODE S=.text G=(none) M=ShellCtrls ACBP=A9
0001:000CBEF8 00001A20 C=CODE S=.text G=(none) M=UnitRoute ACBP=A9
0001:000CD918 00002A44 C=CODE S=.text G=(none) M=UnitRouteTrains ACBP=A9
0001:000D035C 00000298 C=CODE S=.text G=(none) M=UnitInfo ACBP=A9
0001:000D05F4 00003300 C=CODE S=.text G=(none) M=selection_train ACBP=A9
0001:000D38F4 000067FC C=CODE S=.text G=(none) M=UnitConfigCellTCO ACBP=A9
0001:000DA0F0 00001908 C=CODE S=.text G=(none) M=UnitClock ACBP=A9
0001:000DB9F8 000580FC C=CODE S=.text G=(none) M=UnitTCO ACBP=A9
0001:00133AF4 000039DC C=CODE S=.text G=(none) M=UnitSR ACBP=A9
0001:001374D0 00002BF8 C=CODE S=.text G=(none) M=UnitCDF ACBP=A9
0001:0013A0C8 0000899C C=CODE S=.text G=(none) M=UnitModifAction ACBP=A9
0001:00142A64 00000F64 C=CODE S=.text G=(none) M=UnitHorloge ACBP=A9
0001:001439C8 000025FB C=CODE S=.text G=(none) M=verif_version ACBP=A9
0001:00145FC4 00001190 C=CODE S=.text G=(none) M=UnitPareFeu ACBP=A9
0001:00147154 00000F10 C=CODE S=.text G=(none) M=UnitSimule ACBP=A9
0001:00148064 00059854 C=CODE S=.text G=(none) M=Unitprinc ACBP=A9
0001:001A18B8 0004D544 C=CODE S=.text G=(none) M=UnitConfig ACBP=A9
0001:001EEDFC 0000305C C=CODE S=.text G=(none) M=UnitDebug ACBP=A9
0001:001F1E58 000005C4 C=CODE S=.text G=(none) M=Signaux_complexes_GL ACBP=A9
0002:00000000 000000CC C=DATA S=.data G=DGROUP M=System ACBP=A9
0002:000000CC 00000020 C=DATA S=.data G=DGROUP M=SysInit ACBP=A9
0002:000000EC 00000254 C=DATA S=.data G=DGROUP M=SysUtils ACBP=A9
@@ -211,11 +211,11 @@ Detailed map of segments
0002:00003C68 00000048 C=BSS S=.bss G=DGROUP M=TlHelp32 ACBP=A9
0002:00003CB0 00000004 C=BSS S=.bss G=DGROUP M=WinSock ACBP=A9
0002:00003CB4 00000194 C=BSS S=.bss G=DGROUP M=ScktComp ACBP=A9
0002:00003E48 00000004 C=BSS S=.bss G=DGROUP M=OleServer ACBP=A9
0002:00003E4C 00000004 C=BSS S=.bss G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00003E50 00000004 C=BSS S=.bss G=DGROUP M=MMSystem ACBP=A9
0002:00003E54 00000004 C=BSS S=.bss G=DGROUP M=Nb30 ACBP=A9
0002:00003E58 00000004 C=BSS S=.bss G=DGROUP M=DateUtils ACBP=A9
0002:00003E48 00000004 C=BSS S=.bss G=DGROUP M=MMSystem ACBP=A9
0002:00003E4C 00000004 C=BSS S=.bss G=DGROUP M=Nb30 ACBP=A9
0002:00003E50 00000004 C=BSS S=.bss G=DGROUP M=DateUtils ACBP=A9
0002:00003E54 00000004 C=BSS S=.bss G=DGROUP M=OleServer ACBP=A9
0002:00003E58 00000004 C=BSS S=.bss G=DGROUP M=MSCommLib_TLB ACBP=A9
0002:00003E5C 00000004 C=BSS S=.bss G=DGROUP M=MaskUtils ACBP=A9
0002:00003E60 00000004 C=BSS S=.bss G=DGROUP M=Mask ACBP=A9
0002:00003E64 00000004 C=BSS S=.bss G=DGROUP M=Grids ACBP=A9
@@ -237,14 +237,14 @@ Detailed map of segments
0002:0001DED0 004CD3C0 C=BSS S=.bss G=DGROUP M=UnitTCO ACBP=A9
0002:004EB290 00000010 C=BSS S=.bss G=DGROUP M=UnitSR ACBP=A9
0002:004EB2A0 00000014 C=BSS S=.bss G=DGROUP M=UnitCDF ACBP=A9
0002:004EB2B4 0000001C C=BSS S=.bss G=DGROUP M=UnitModifAction ACBP=A9
0002:004EB2D0 00000038 C=BSS S=.bss G=DGROUP M=UnitHorloge ACBP=A9
0002:004EB308 000001EC C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:004EB4F4 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:004EB4F8 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:004EB504 064A703C C=BSS S=.bss G=DGROUP M=Unitprinc ACBP=A9
0002:06992540 000005C8 C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:06992B08 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
0002:004EB2B4 00000018 C=BSS S=.bss G=DGROUP M=UnitModifAction ACBP=A9
0002:004EB2CC 00000038 C=BSS S=.bss G=DGROUP M=UnitHorloge ACBP=A9
0002:004EB304 000001EC C=BSS S=.bss G=DGROUP M=verif_version ACBP=A9
0002:004EB4F0 00000004 C=BSS S=.bss G=DGROUP M=UnitPareFeu ACBP=A9
0002:004EB4F4 0000000C C=BSS S=.bss G=DGROUP M=UnitSimule ACBP=A9
0002:004EB500 0656CE08 C=BSS S=.bss G=DGROUP M=Unitprinc ACBP=A9
0002:06A58308 000005CC C=BSS S=.bss G=DGROUP M=UnitConfig ACBP=A9
0002:06A588D4 0000002C C=BSS S=.bss G=DGROUP M=UnitDebug ACBP=A9
Bound resource files
@@ -278,4 +278,4 @@ Signaux_complexes_GL.res
Signaux_complexes_GL.drf
Program entry point at 0001:001DD43C
Program entry point at 0001:001F21C0
+5227 -5227
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -15,8 +15,8 @@ object FormClock: TFormClock
OnCreate = FormCreate
OnResize = FormResize
DesignSize = (
234
212)
242
219)
PixelsPerInch = 96
TextHeight = 13
object BitBtnMarHor: TBitBtn
+1 -1
View File
@@ -474,7 +474,7 @@ end;
procedure TFormClock.TjsVerClick(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NoMove or SWP_NoSize);
// le checked ne fonctionne pas sous D7, fonctionne sous D11.
// le checked ne fonctionne pas sous D7, fonctionne sous D12.
TjsDev.Checked:=true;
Dverrouiller1.Checked:=false;
Verrouille:=true;
+53 -25
View File
@@ -1,6 +1,6 @@
object FormConfig: TFormConfig
Left = 281
Top = 137
Left = 202
Top = 143
Hint = 'Modifie la configuration selon les s'#233'lections choisies'
BorderStyle = bsDialog
Caption = 'Configuration g'#233'n'#233'rale'
@@ -639,12 +639,12 @@ object FormConfig: TFormConfig
Visible = False
WordWrap = True
end
object LabelD11: TLabel
object LabelD12: TLabel
Left = 752
Top = 64
Width = 40
Height = 31
Caption = 'D11'
Caption = 'D12'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -27
@@ -682,7 +682,7 @@ object FormConfig: TFormConfig
Top = 8
Width = 633
Height = 505
ActivePage = TabSheetSig
ActivePage = TabAvance
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
@@ -1218,6 +1218,7 @@ object FormConfig: TFormConfig
Top = 48
Width = 49
Height = 21
Hint = 'Temporisation d'#39'envoi des octets'
TabStop = False
TabOrder = 1
end
@@ -2874,6 +2875,7 @@ object FormConfig: TFormConfig
ParentFont = False
PopupMenu = PopupMenuListes
TabOrder = 0
OnDblClick = ListBoxActionsDblClick
OnKeyDown = ListBoxActionsKeyDown
OnMouseDown = ListBoxActionsMouseDown
end
@@ -2882,7 +2884,7 @@ object FormConfig: TFormConfig
Top = 40
Width = 249
Height = 193
Hint = 'Double clic pour valider/d'#233'valider une action'
Hint = 'Double clic pour valider/d'#233'valider une op'#233'ration'
Style = lbOwnerDrawVariable
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -3597,10 +3599,10 @@ object FormConfig: TFormConfig
ParentFont = False
end
object GroupBox24: TGroupBox
Left = 312
Top = 72
Width = 297
Height = 377
Left = 296
Top = 16
Width = 321
Height = 441
Caption = 'Trains'
TabOrder = 0
object Label51: TLabel
@@ -3639,21 +3641,21 @@ object FormConfig: TFormConfig
Caption = 'Vitesse nominale'
end
object Label16: TLabel
Left = 24
Top = 280
Left = 16
Top = 352
Width = 27
Height = 13
Caption = 'Ic'#244'ne'
end
object ImageTrain: TImage
Left = 16
Top = 312
Top = 376
Width = 257
Height = 49
end
object SpeedButtonOuvre: TSpeedButton
Left = 128
Top = 272
Left = 120
Top = 344
Width = 23
Height = 22
Hint = 'Charger ic'#244'ne'
@@ -3662,10 +3664,21 @@ object FormConfig: TFormConfig
ShowHint = True
OnClick = SpeedButtonOuvreClick
end
object Label45: TLabel
Left = 26
Top = 232
Width = 111
Height = 39
Alignment = taRightJustify
Caption =
'Arr'#234't temporis'#233' du train sur d'#233'tecteurs : (mode autonome seuleme' +
'nt)'
WordWrap = True
end
object EditNomTrain: TEdit
Left = 136
Top = 24
Width = 145
Width = 169
Height = 21
Hint = 'Nom du train'
ParentShowHint = False
@@ -3674,7 +3687,7 @@ object FormConfig: TFormConfig
OnChange = EditNomTrainChange
end
object EditAdresseTrain: TEdit
Left = 240
Left = 264
Top = 48
Width = 41
Height = 21
@@ -3685,7 +3698,7 @@ object FormConfig: TFormConfig
OnChange = EditAdresseTrainChange
end
object EditVitesseMaxi: TEdit
Left = 240
Left = 264
Top = 120
Width = 41
Height = 21
@@ -3696,7 +3709,7 @@ object FormConfig: TFormConfig
OnChange = EditVitesseMaxiChange
end
object EditVitRalenti: TEdit
Left = 240
Left = 264
Top = 72
Width = 41
Height = 21
@@ -3707,7 +3720,7 @@ object FormConfig: TFormConfig
OnChange = EditVitRalentiChange
end
object EditVitNom: TEdit
Left = 240
Left = 264
Top = 96
Width = 41
Height = 21
@@ -3718,15 +3731,15 @@ object FormConfig: TFormConfig
OnChange = EditVitNomChange
end
object EditIcone: TEdit
Left = 160
Top = 272
Left = 168
Top = 344
Width = 121
Height = 21
TabOrder = 5
OnChange = EditIconeChange
end
object LabeledEditTempoD: TLabeledEdit
Left = 240
Left = 264
Top = 144
Width = 41
Height = 21
@@ -3736,7 +3749,7 @@ object FormConfig: TFormConfig
EditLabel.Layout = tlBottom
EditLabel.WordWrap = True
LabelPosition = lpLeft
LabelSpacing = 78
LabelSpacing = 100
TabOrder = 6
OnChange = LabeledEditTempoDChange
end
@@ -3752,6 +3765,21 @@ object FormConfig: TFormConfig
TabOrder = 7
OnClick = CheckBoxSensClick
end
object StringGridArr: TStringGrid
Left = 144
Top = 192
Width = 169
Height = 113
TabOrder = 8
OnSelectCell = StringGridArrSelectCell
OnSetEditText = StringGridArrSetEditText
RowHeights = (
24
24
24
24
24)
end
end
object ButtonNT: TButton
Left = 8
@@ -3774,7 +3802,7 @@ object FormConfig: TFormConfig
object ListBoxTrains: TListBox
Left = 8
Top = 72
Width = 281
Width = 273
Height = 281
Color = clBlack
Font.Charset = DEFAULT_CHARSET
+2667 -2475
View File
File diff suppressed because it is too large Load Diff
+31 -10
View File
@@ -293,7 +293,7 @@ object FormConfCellTCO: TFormConfCellTCO
end
object GroupBoxOrientation: TGroupBox
Left = 8
Top = 152
Top = 200
Width = 273
Height = 57
Caption = 'Orientation du signal'
@@ -485,8 +485,8 @@ object FormConfCellTCO: TFormConfCellTCO
OnClick = CheckPinvClick
end
object GroupBoxAction: TGroupBox
Left = 120
Top = 208
Left = 48
Top = 248
Width = 273
Height = 145
Caption = 'Actions'
@@ -559,7 +559,7 @@ object FormConfCellTCO: TFormConfCellTCO
end
object GroupBoxCanton: TGroupBox
Left = 16
Top = 160
Top = 240
Width = 281
Height = 129
Caption = 'Canton'
@@ -635,10 +635,31 @@ object FormConfCellTCO: TFormConfCellTCO
OnClick = RadioButtonDSClick
end
end
object GroupBoxDet: TGroupBox
Left = 16
Top = 168
Width = 281
Height = 121
Caption = 'Options d'#39'arr'#234't des trains sur le d'#233'tecteur'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 7
object StringGridDet: TStringGrid
Left = 4
Top = 16
Width = 265
Height = 105
TabOrder = 0
end
end
object ImageListIcones: TImageList
Left = 160
Bitmap = {
494C010118001D00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
494C010119001D00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000008000000001002000000000000080
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -1670,11 +1691,11 @@ object FormConfCellTCO: TFormConfCellTCO
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000F81FFFFF00000000E007FC3F0000
00000000000000000000000000000000FFFF000000000000FFFF000000000000
FFFF000000000000FFFF000000000000FFBF000000000000FF9F000000000000
C007000000000000C003000000000000C001000000000000C003000000000000
C007000000000000FF9F000000000000FFBF000000000000FFFF000000000000
FFFF000000000000FFFF0000000000000000F81FFFFF00000000E007FC3F0000
0000C003F81F00000000C001F00F000000008001F00F000000000180F00F0000
000003C0F00F0000000007E0F00F0000000007E0F00F0000000003C0F00F0000
00000180F00F000000008001F00F00000000C001F00F00000000C003F00F0000
+120 -53
View File
@@ -6,7 +6,7 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,
Buttons,
ImgList;
ImgList, Grids;
type
TFormConfCellTCO = class(TForm)
@@ -52,6 +52,8 @@ type
ImageGD: TImage;
ImageHB: TImage;
Label4: TLabel;
GroupBoxDet: TGroupBox;
StringGridDet: TStringGrid;
procedure EditAdrElementChange(Sender: TObject);
procedure EditTexteCCTCOChange(Sender: TObject);
procedure ButtonFonteClick(Sender: TObject);
@@ -203,7 +205,7 @@ end;
// actualise le contenu de la fenetre et de la zone tco par rapport à la cellule cliquée
procedure actualise(indexTCO : integer);
var i,Bimage,oriente,piedFeu,act,sens : integer;
var i,j,ligne,Adr,Bimage,oriente,piedFeu,act,sens : integer;
s : string;
ip : Timage;
r : trect;
@@ -240,6 +242,7 @@ begin
FormConfCellTCO.CheckBoxEncadre.visible:=Bimage=0;
formConfCellTCO.GroupBox1.caption:='Texte';
// -------------canton
if isCanton(Bimage) then
begin
with formConfCellTCO do
@@ -261,15 +264,12 @@ begin
GroupBoxOrientation.visible:=false;
GroupBoxImplantation.visible:=false;
GroupBoxAction.Visible:=false;
GroupBoxDet.visible:=false;
GroupBoxCanton.visible:=true;
sens:=tco[indexTCO,xClicC,yClicC].SensCirc;
with GroupBoxCanton do
begin
visible:=true;
left:=16;
top:=158;
width:=280;
height:=130;
EditTypeImage.Enabled:=false;
GroupBox1.caption:='Nom du canton';
end;
@@ -345,6 +345,7 @@ begin
else
// action ---------------------------
if Bimage=Id_Action then
begin
with formConfCellTCO do
@@ -353,14 +354,11 @@ begin
GroupBoxOrientation.visible:=false;
GroupBoxImplantation.visible:=false;
GroupBoxCanton.Visible:=false;
GroupBoxDet.visible:=false;
GroupBoxAction.visible:=true;
EditTypeImage.Enabled:=true;
with GroupBoxAction do
begin
visible:=true;
left:=16;
top:=152;
width:=273;
height:=145;
act:=tco[indexTCO,XclicC,YclicC].PiedFeu;
if (act<0) or (act-1>ListBoxAction.Count) then
begin
@@ -373,27 +371,12 @@ begin
end;
end;
end
else
begin
with formConfCellTCO do
begin
CheckBoxEncadre.checked:=tco[indexTCO,XclicC,YclicC].Buttoir=1;
with GroupBoxOrientation do
begin
visible:=true;
left:=8;
top:=152;
end;
EditTypeImage.Enabled:=true;
GroupBoxImplantation.visible:=true;
GroupBoxAction.visible:=false;
GroupBoxCanton.Visible:=false;
end;
end;
// si élément porteur d'un détecteur---------------------
if (Bimage=1) or (Bimage=10) or (Bimage=11) or (Bimage=20) then
begin
// si buttoir
if tco[indexTCO,XclicC,YclicC].buttoir<>0 then
begin
formConfCellTCO.EditAdrElement.enabled:=false;
@@ -401,15 +384,75 @@ begin
tco[indexTCO,XclicC,YclicC].Adresse:=0;
end
else
// pas buttoir
begin
formConfCellTCO.EditAdrElement.enabled:=true;
formTCO[indexTCO].EditAdrElement.enabled:=true;
end;
With formConfCellTCO do
begin
GroupBoxOrientation.Visible:=false;
GroupBoxImplantation.Visible:=false;
GroupBoxCanton.Visible:=false;
GroupBoxDet.visible:=true;
GroupBoxAction.visible:=false;
end;
Adr:=tco[indexTCO,XClicC,YClicC].Adresse;
with formConfCellTCO.StringGridDet do
begin
for i:=0 to ColCount-1 do
for j:= 1 to RowCount-1 do
Cells[i,j]:='';
ligne:=1;
for i:=1 to Ntrains do
begin
for j:=1 to 10 do
if (trains[i].DetecteurArret[j].detecteur=adr) and (adr<>0) then
begin
s:='';
if trains[i].DetecteurArret[j].TPrec<>det then s:='A';
s:=s+intToSTR(trains[i].DetecteurArret[j].Prec);
cells[1,ligne]:=s;
cells[2,ligne]:=intToSTR(trains[i].DetecteurArret[j].temps)+'s';
cells[3,ligne]:=trains[i].nom_train;
inc(ligne);
end;
end;
end;
end
else
// si signal
if Bimage=Id_signal then
With formConfCellTCO do
begin
GroupBoxOrientation.Visible:=true;
GroupBoxImplantation.Visible:=true;
GroupBoxCanton.Visible:=false;
GroupBoxDet.visible:=false;
GroupBoxAction.visible:=false;
end
else
// rien
begin
formConfCellTCO.EditAdrElement.enabled:=true;
formTCO[indexTCO].EditAdrElement.enabled:=true;
with formConfCellTCO do
begin
CheckBoxEncadre.checked:=tco[indexTCO,XclicC,YclicC].Buttoir=1;
EditTypeImage.Enabled:=true;
GroupBoxOrientation.Visible:=false;
GroupBoxImplantation.Visible:=false;
GroupBoxCanton.Visible:=false;
GroupBoxDet.visible:=false;
GroupBoxAction.visible:=false;
end;
end;
if ConfCellTCO then // si la form confcelltco est affichée
@@ -474,29 +517,7 @@ begin
Bimage:=tco[indexTCO,XclicC,YclicC].Bimage;
formConfCellTCO.EditTypeImage.Text:=intToSTR(Bimage);
// si signal
if Bimage=Id_signal then
With formConfCellTCO.ImagePaletteCC do
begin
//Height:=FormTCO.ImagePalette1.Picture.Height;
//Width:=FormTCO.ImagePalette1.Picture.Width;
Transparent:=false;
FormConfCellTCO.LabelNumC.visible:=false;
end;
// si pas signal
if Bimage<>Id_signal then
with formConfCellTCO do
begin
RadioButtonV.Enabled:=false;
RadioButtonV180.Enabled:=false;
RadioButtonHG.Enabled:=false;
RadioButtonHD.Enabled:=false;
RadioButtonG.Enabled:=false;
RadioButtonD.Enabled:=false;
LabelNumC.visible:=false;
ImagePaletteCC.transparent:=false;
end;
// mettre l'image de la cellule cliquée dans l'icone de la fenetre de config cellule
if Bimage=0 then
@@ -723,7 +744,53 @@ begin
//RadioButtonGH.Visible:=not(diffusion);
//RadioButtonDB.Visible:=not(diffusion);
//RadioButtonDS.Visible:=not(diffusion);
with GroupBoxDet do
begin
left:=16;
top:=140;
width:=273;
height:=145;
end;
with GroupBoxOrientation do
begin
left:=8;
top:=152;
end;
with GroupBoxAction do
begin
left:=16;
top:=140;
width:=273;
height:=145;
end;
with GroupBoxCanton do
begin
left:=16;
top:=140;
width:=273;
height:=145;
end;
With StringGridDet do
begin
Height:=GroupBoxDet.Height-20;
Hint:='-';
ShowHint:=true;
ColCount:=5; // nombre de colonnes
RowCount:=21;
Options := Options -[goEditing] ;
ColWidths[0]:=0; // colonne grise invisible
ColWidths[1]:=40; // Précédent
ColWidths[2]:=35; // tempe
ColWidths[3]:=60; // train
ColWidths[4]:=105; // icone train
Cells[1,0]:='Précé.';
Cells[2,0]:='Temps';
Cells[3,0]:='Train';
for i:=0 to RowCount-1 do
RowHeights[i]:=20;
end;
// fenetre toujours dessus
position:=poMainFormCenter;
if affevt then Affiche('FormConfCellTCO create',clLime);
+17 -17
View File
@@ -32,7 +32,7 @@ object FormDebug: TFormDebug
Width = 872
Height = 677
HorzScrollBar.Visible = False
VertScrollBar.Position = 96
VertScrollBar.Position = 69
Anchors = [akLeft, akTop, akRight, akBottom]
Color = clBtnFace
ParentColor = False
@@ -42,7 +42,7 @@ object FormDebug: TFormDebug
673)
object LabelTitreDebug: TLabel
Left = 475
Top = -88
Top = -61
Width = 131
Height = 18
Anchors = [akTop, akRight]
@@ -56,7 +56,7 @@ object FormDebug: TFormDebug
end
object Label1: TLabel
Left = 627
Top = -86
Top = -59
Width = 108
Height = 13
Anchors = [akTop, akRight]
@@ -72,7 +72,7 @@ object FormDebug: TFormDebug
end
object RichDebug: TRichEdit
Left = 0
Top = -96
Top = -69
Width = 454
Height = 753
Anchors = [akLeft, akTop, akRight]
@@ -86,7 +86,7 @@ object FormDebug: TFormDebug
end
object ButtonRazTout: TButton
Left = 465
Top = 120
Top = 147
Width = 97
Height = 25
Hint =
@@ -101,7 +101,7 @@ object FormDebug: TFormDebug
end
object ButtonCop: TButton
Left = 465
Top = 152
Top = 179
Width = 97
Height = 41
Anchors = [akTop, akRight]
@@ -118,7 +118,7 @@ object FormDebug: TFormDebug
end
object ButtonAffEvtChrono: TButton
Left = 465
Top = 200
Top = 227
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -129,7 +129,7 @@ object FormDebug: TFormDebug
end
object ButtonCherche: TButton
Left = 465
Top = 240
Top = 267
Width = 97
Height = 25
Hint = 'Cherche la cha'#238'ne "erreur"'
@@ -142,7 +142,7 @@ object FormDebug: TFormDebug
end
object ButtonEcrLog: TButton
Left = 465
Top = 88
Top = 115
Width = 97
Height = 29
Anchors = [akTop, akRight]
@@ -152,7 +152,7 @@ object FormDebug: TFormDebug
end
object ButtonRazTampon: TButton
Left = 465
Top = 272
Top = 299
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -163,7 +163,7 @@ object FormDebug: TFormDebug
end
object ButtonRazLog: TButton
Left = 465
Top = 312
Top = 339
Width = 97
Height = 33
Anchors = [akTop, akRight]
@@ -174,7 +174,7 @@ object FormDebug: TFormDebug
end
object MemoEvtDet: TRichEdit
Left = 570
Top = 90
Top = 117
Width = 272
Height = 263
Anchors = [akTop, akRight]
@@ -185,7 +185,7 @@ object FormDebug: TFormDebug
end
object GroupBox5: TGroupBox
Left = 462
Top = 360
Top = 387
Width = 380
Height = 57
Anchors = [akTop, akRight]
@@ -252,7 +252,7 @@ object FormDebug: TFormDebug
end
object GroupBox6: TGroupBox
Left = 462
Top = 424
Top = 451
Width = 380
Height = 52
Anchors = [akTop, akRight]
@@ -329,7 +329,7 @@ object FormDebug: TFormDebug
end
object GroupBoxPrim: TGroupBox
Left = 464
Top = 488
Top = 515
Width = 378
Height = 185
Anchors = [akTop, akRight]
@@ -500,7 +500,7 @@ object FormDebug: TFormDebug
end
object GroupBox2: TGroupBox
Left = 466
Top = -68
Top = -41
Width = 376
Height = 149
Anchors = [akTop, akRight]
@@ -713,7 +713,7 @@ object FormDebug: TFormDebug
end
object EditNivDebug: TEdit
Left = 751
Top = -88
Top = -61
Width = 49
Height = 21
Anchors = [akTop, akRight]
+59 -53
View File
@@ -206,11 +206,15 @@ begin
RichDebug.WordWrap:=false; // interdit la coupure des chaînes en limite du composant
RichDebug.color:=$33;
//constraints.MaxHeight:=800; // taille Y maxi
ButtonDetSuiv.Hint:='Renvoie le détecteur suivant aux deux éléments (détecteurs ou aiguillages) '+#13+
'suivant la position des aiguillages.'+#13+
'Les éléments peuvent ne pas être contigus.'+#13+
'detecteur_suivant_El';
initform:=false;
visible:=false;
RichDebug.clear;
s:=DateToStr(date)+' '+TimeToStr(Time)+' ';
// l'ascenseur de la fenetre dans D11 ------------
// l'ascenseur de la fenetre dans D12 ------------
// ne fonctionne que si le style est windows !!! (bug du VCL)
// obligé d'utiliser une scrollBox
@@ -244,9 +248,9 @@ begin
end;
procedure TFormDebug.FormActivate(Sender: TObject);
begin
if affevt then affiche('FormDebug activate',clLime);
formDebug.buttonCP.Caption:='Etat '+intToSTR(Nb_cantons_Sig)+' cantons précédents signal';
begin
if affevt then affiche('FormDebug activate',clLime);
formDebug.buttonCP.Caption:='Etat '+intToSTR(Nb_cantons_Sig)+' cantons précédents signal';
end;
@@ -435,7 +439,8 @@ begin
if s1[1]='A' then begin type1:=aig;delete(s1,1,1);end else type1:=det;
if s2[1]='A' then begin type2:=aig;delete(s2,1,1);end else type2:=det;
Val(s1,prec,erreur);
if (erreur<>0) or (prec<1) then begin NivDebug:=AncDebug;exit;end;
if prec=0 then type1:=buttoir;
if (erreur<>0) or (prec<0) then begin NivDebug:=AncDebug;exit;end;
Val(s2,Actuel,erreur);
if (erreur<>0) or (actuel<1) then begin NivDebug:=AncDebug;exit;end;
Adr:=detecteur_suivant_El(prec,type1,actuel,type2,1);
@@ -558,7 +563,8 @@ begin
if s1[1]='A' then begin type1:=aig;delete(s1,1,1);end else type1:=det;
if s2[1]='A' then begin type2:=aig;delete(s2,1,1);end else type2:=det;
Val(s1,prec,erreur);
if (erreur<>0) or (prec<1) then begin NivDebug:=AncDebug;exit;end;;
if (erreur<>0) or (prec<0) then begin NivDebug:=AncDebug;exit;end;
if prec=0 then type1:=buttoir;
Val(s2,Actuel,erreur);
if (erreur<>0) or (actuel<1) then begin NivDebug:=AncDebug;exit;end;;
Adr:=suivant_Alg3(prec,type1,actuel,type2,1);
@@ -586,8 +592,8 @@ procedure TFormDebug.Button1Click(Sender: TObject);
var adr,sortie,erreur,groupe : integer;
fonction : byte;
s : string;
begin
val(EditAdresse.text,adr,erreur);
begin
val(EditAdresse.text,adr,erreur);
if (erreur<>0) or (adr<1) or (adr>2048) then
begin
EditAdresse.text:='1';
@@ -625,15 +631,15 @@ begin
if protocole=2 then AfficheDebug('D10: Commande DCC++ pas encore implantée',clred);
end;
Self.ActiveControl:=nil;
end;
Self.ActiveControl:=nil;
end;
procedure TFormDebug.Button0Click(Sender: TObject);
var adr,sortie,erreur,groupe : integer;
var adr,sortie,erreur,groupe : integer;
fonction : byte;
s : string;
begin
val(EditAdresse.text,adr,erreur);
begin
val(EditAdresse.text,adr,erreur);
if (erreur<>0) or (adr<1) or (adr>2048) then
begin
EditAdresse.text:='1';
@@ -655,7 +661,7 @@ begin
s:=chaine_CDM_Acc(adr,0);
envoi_CDM(s);
end;
// pilotage par USB ou par éthernet de la centrale ------------
if (hors_tension=false) and (portCommOuvert or parSocketLenz) then
begin
@@ -668,64 +674,64 @@ begin
s:=checksum(s);
envoi(s); // envoi de la trame et attente Ack
end;
if protocole=2 then AfficheDebug('D11: Commande DCC++ pas encore implantée',clred)
if protocole=2 then AfficheDebug('D11 Commande DCC++ pas encore implantée',clred)
end;
Self.ActiveControl:=nil;
end;
Self.ActiveControl:=nil;
end;
procedure TFormDebug.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(27) then close;
end;
begin
if key=chr(27) then close;
end;
procedure TFormDebug.MemoEvtDetChange(Sender: TObject);
begin
SendMessage(MemoEvtDet.handle,WM_VSCROLL,SB_BOTTOM,0);
end;
begin
SendMessage(MemoEvtDet.handle,WM_VSCROLL,SB_BOTTOM,0);
end;
procedure TFormDebug.CheckDetSIgClick(Sender: TObject);
begin
AFfDetSIg:=checkDetSig.checked;
end;
begin
AFfDetSIg:=checkDetSig.checked;
end;
procedure TFormDebug.CheckBoxPrincClick(Sender: TObject);
begin
ProcPrinc:=checkBoxPrinc.checked;
end;
begin
ProcPrinc:=checkBoxPrinc.checked;
end;
procedure TFormDebug.Button3Click(Sender: TObject);
begin
ScrollBoxDebug.VertScrollBar.Position:=0;
end;
begin
ScrollBoxDebug.VertScrollBar.Position:=0;
end;
procedure TFormDebug.ButtonAigDevieClick(Sender: TObject);
var Adr,erreur,ancDebug : integer;
begin
Val(EditSigSuiv.Text,Adr,erreur);
var Adr,erreur,ancDebug : integer;
begin
Val(EditSigSuiv.Text,Adr,erreur);
if (erreur<>0) or (Adr<1) then exit;
ancdebug:=NivDebug;
NivDebug:=3;
Aiguille_deviee(Adr);
NivDebug:=AncDebug;
end;
end;
procedure TFormDebug.ButtonSigPrecClick(Sender: TObject);
var Adr,erreur,ancDebug : integer;
begin
Val(EditSigSuiv.Text,Adr,erreur);
var Adr,erreur,ancDebug : integer;
begin
Val(EditSigSuiv.Text,Adr,erreur);
if (erreur<>0) or (Adr<1) then exit;
ancdebug:=NivDebug;
NivDebug:=3;
erreur:=Signal_Precedent(Adr);
NivDebug:=AncDebug;
AfficheDebug('signal précédent='+intToSTR(erreur),clyellow);
end;
NivDebug:=AncDebug;
AfficheDebug('signal précédent='+intToSTR(erreur),clyellow);
end;
end.
+4 -4
View File
@@ -233,7 +233,7 @@ var
DRect: TRect;
couleur : tColor;
Grid: TStringGrid;
d11 : boolean;
d12 : boolean;
begin
Grid:=Sender as TStringGrid;
@@ -283,13 +283,13 @@ begin
end; }
d11:=false;
d12:=false;
{$IF CompilerVersion >= 28.0}
d11:=true;
d12:=true;
{$IFEND}
couleur:=$E0E0E0;
if d11 then couleur:=$505050;
if d12 then couleur:=$505050;
with grid.canvas do
begin
Brush.Color := couleur;
+11 -9
View File
@@ -1,6 +1,6 @@
object FormModifAction: TFormModifAction
Left = 311
Top = 157
Left = 448
Top = 165
BorderStyle = bsDialog
Caption = 'Modifier une action'
ClientHeight = 443
@@ -14,6 +14,7 @@ object FormModifAction: TFormModifAction
OldCreateOrder = False
Position = poScreenCenter
OnActivate = FormActivate
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
@@ -60,7 +61,7 @@ object FormModifAction: TFormModifAction
Top = 64
Width = 729
Height = 337
ActivePage = TabSheetDecl
ActivePage = TabSheetOp
MultiLine = True
TabOrder = 2
object TabSheetDecl: TTabSheet
@@ -336,6 +337,7 @@ object FormModifAction: TFormModifAction
EditLabel.Width = 39
EditLabel.Height = 13
EditLabel.Caption = 'Champ2'
EditLabel.WordWrap = True
LabelPosition = lpLeft
LabelSpacing = 10
ParentShowHint = False
@@ -483,7 +485,7 @@ object FormModifAction: TFormModifAction
Top = 32
Width = 217
Height = 21
ItemHeight = 0
ItemHeight = 13
TabOrder = 0
OnChange = ComboBoxFamilleChange
end
@@ -683,7 +685,7 @@ object FormModifAction: TFormModifAction
Height = 21
Hint = 'Nom de l'#39'accessoire d'#233'fini dans l'#39'onglet "p'#233'riph'#233'riques COM/USB"'
Style = csDropDownList
ItemHeight = 0
ItemHeight = 13
ParentShowHint = False
ShowHint = True
TabOrder = 4
@@ -722,8 +724,8 @@ object FormModifAction: TFormModifAction
Width = 75
Height = 25
Hint =
'Ajouter l'#39'action s'#233'lectionn'#233'e dans la liste des op'#233'rations '#224' r'#233'a' +
'liser'
'Ajouter l'#39'op'#233'ration s'#233'lectionn'#233'e dans la liste des op'#233'rations '#224' ' +
'r'#233'aliser'
Caption = 'Ajouter >>>'
ParentShowHint = False
ShowHint = True
@@ -736,8 +738,8 @@ object FormModifAction: TFormModifAction
Width = 75
Height = 25
Hint =
'Mise '#224' jour du champ d'#39'action vers le champ de la liste d'#39'op'#233'ra' +
'tions '#224' r'#233'aliser'
'Mise '#224' jour du champ d'#39'op'#233'ration vers le champ de la liste d'#39'op' +
#233'rations '#224' r'#233'aliser'
Caption = 'Appliquer >>>'
ParentShowHint = False
ShowHint = True
+1536 -1524
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -303,7 +303,7 @@ procedure couleurs_pilote;
var i : integer;
c : tcomponent;
begin
{$IFNDEF DELPHI11}
{$IF CompilerVersion<28.0 }
if sombre then with formPilote do
begin
Color:=Couleurfond;
@@ -313,7 +313,7 @@ begin
composant(c,couleurFond,couleurTexte);
end;
end;
{$ENDIF}
{$IFEND}
end;
procedure TFormPilote.FormCreate(Sender: TObject);
+6 -3
View File
@@ -1,6 +1,6 @@
object FormPrinc: TFormPrinc
Left = 81
Top = 253
Left = 75
Top = 270
Width = 1148
Height = 624
Anchors = [akLeft, akTop, akRight]
@@ -2043,7 +2043,6 @@ object FormPrinc: TFormPrinc
Height = 25
Caption = 'Route'
TabOrder = 2
OnClick = Button3Click
end
object Timer1: TTimer
Interval = 100
@@ -2077,6 +2076,10 @@ object FormPrinc: TFormPrinc
' du splitter'
OnClick = Sauvegarderla1Click
end
object Sauvegarderlaconfiguration1: TMenuItem
Caption = 'Sauvegarder la configuration'
OnClick = Sauvegarderlaconfiguration1Click
end
object N14: TMenuItem
Caption = '-'
end
+3727 -3073
View File
File diff suppressed because it is too large Load Diff
+121 -54
View File
@@ -1,6 +1,7 @@
unit UnitRouteTrains;
// choix de la route pour tous les trains
// lance le roulage des trains
interface
@@ -60,54 +61,72 @@ begin
formprinc.SBMarcheArretLoco.Visible:=true;
//Affiche('demarre_index_Train',clWhite);
// si il y a un signal sur le détecteur de démarrage du train est il au rouge?
i:=1;
AdrTrain:=Trains[indexTrain].adresse;
trains[indexTrain].PointRout:=0;
Train:=Trains[indexTrain].nom_train;
detect:=trains[indexTrain].dernierdet;
index_signal_det(detect,voie1,indexSig1,voie2,indexSig2);
AdrSig1:=0;AdrSig2:=0;
if indexSig1<>0 then AdrSig1:=signaux[indexSig1].adresse;
if indexSig2<>0 then AdrSig2:=signaux[indexSig2].adresse;
// balayer les détecteurs pour trouver sur quel détecteur est le train
i:=1;
repeat
detect:=adresse_detecteur[i];
trouve:=detecteur[detect].AdrTrain=AdrTrain;
inc(i);
until trouve or (i>NDetecteurs);
if not trouve then detect:=0;
// si le détecteur sur le train au départ dispose d'un signal
if (AdrSig1<>0) or (AdrSig2<>0) then
if trouve then
begin
// trouver le premier détecteur de la route et son suivant non traité pour trouver le signal dans le bon sens
n:=trains[indexTrain].route[0].adresse;
i:=1;det1:=0;el2:=0;trouve:=false;
with trains[indexTrain] do
trains[indexTrain].dernierdet:=detect;
if not(diffusion) then Affiche('Le détecteur du train '+train+' est le '+intToSTR(detect),clWhite);
index_signal_det(detect,voie1,indexSig1,voie2,indexSig2);
AdrSig1:=0;AdrSig2:=0;
if indexSig1<>0 then AdrSig1:=signaux[indexSig1].adresse;
if indexSig2<>0 then AdrSig2:=signaux[indexSig2].adresse;
// si le détecteur sur le train au départ dispose d'un signal
if (AdrSig1<>0) or (AdrSig2<>0) then
begin
repeat
if route[i].typ=det then
// trouver le premier détecteur de la route et son suivant non traité pour trouver le signal dans le bon sens
n:=trains[indexTrain].route[0].adresse;
i:=1;det1:=0;el2:=0;trouve:=false;
with trains[indexTrain] do
begin
repeat
if route[i].typ=det then
begin
det1:=route[i].adresse;
el2:=route[i+1].adresse;tel2:=route[i+1].typ;
trouve:=true
end;
inc(i);
until trouve or (i>n);
end;
//trouve le signal dans le bon sens
IndexSig:=0;
if AdrSig1<>0 then
begin
if (signaux[indexSig1].Adr_el_suiv1=el2) and (signaux[indexSig1].Btype_suiv1=tel2) then IndexSig:=IndexSig1;
end;
if adrSig2<>0 then
begin
if (signaux[indexSig2].Adr_el_suiv1=el2) and (signaux[indexSig2].Btype_suiv1=tel2) then IndexSig:=IndexSig2;
end;
AdrSig:=signaux[indexSig].adresse;
if adrSig<>0 then
begin
if traceliste then Affiche('Le signal dans le bon sens est '+intToSTR(AdrSig)+' '+chaine_signal(AdrSig),clOrange);
if signal_rouge(AdrSig) then
begin
det1:=route[i].adresse;
el2:=route[i+1].adresse;tel2:=route[i+1].typ;
trouve:=true
s:='Le train '+train+' est arreté au signal '+intToSTR(signaux[IndexSig].adresse);
affiche(s,clyellow);
trains[indexTrain].roulage:=1;
exit; // on sort car on ne démarre pas un train arrêté au rouge
end;
inc(i);
until trouve or (i>n);
end;
//trouve le signal dans le bon sens
IndexSig:=0;
if AdrSig1<>0 then
begin
if (signaux[indexSig1].Adr_el_suiv1=el2) and (signaux[indexSig1].Btype_suiv1=tel2) then IndexSig:=IndexSig1;
end;
if adrSig2<>0 then
begin
if (signaux[indexSig2].Adr_el_suiv1=el2) and (signaux[indexSig2].Btype_suiv1=tel2) then IndexSig:=IndexSig2;
end;
AdrSig:=signaux[indexSig].adresse;
if traceliste then Affiche('Le signal dans le bon sens est '+intToSTR(AdrSig)+' '+chaine_signal(AdrSig),clOrange);
if signal_rouge(AdrSig) then
begin
s:='Le train '+train+' est arreté au signal '+intToSTR(signaux[IndexSig].adresse);
affiche(s,clyellow);
trains[indexTrain].roulage:=1;
exit;
end;
end;
end;
@@ -131,11 +150,13 @@ begin
trouve:=grilleHoraire[i].NomTrain=train;
inc(i);
end;
dec(i);
vitesse:=GrilleHoraire[i].vitesse;
trains[indexTrain].roulage:=2;
vitesse_loco(train,indextrain,adrTrain,vitesse,true);
exit;
if trouve then
begin
dec(i);
vitesse:=GrilleHoraire[i].vitesse;
trains[indexTrain].roulage:=2;
vitesse_loco(train,indextrain,adrTrain,vitesse,true);
end;
end;
Maj_Signaux(true); // avec détecteurs
@@ -145,13 +166,13 @@ begin
s:='Lancement du train '+train;
if detect<>0 then s:=s+' depuis détecteur '+intToSTR(Detect);
Affiche(s,clYellow);
AfficheDebug(s,clyellow);
if nivdebug>=1 then AfficheDebug(s,clyellow);
trains[indexTrain].roulage:=2;
if traceListe then AfficheDebug(s,clyellow);
i:=trains[indexTrain].TempsDemarreSig;
if i=0 then i:=1;
trains[indextrain].TempoDemarre:=i;
trains[indextrain].TempoDemarre:=i; // démarrage à la vitesse nominale
end;
@@ -254,13 +275,16 @@ end;
// phase 2 : positionner les aiguillages
// phase 3 : réserver les aiguillages
function aig_canton(idTrain,detect : integer) : integer;
var AdrSig,n,i,ideb,iFin,AdrTrain,etat,pointeur,voie1,voie2,indexSig1,indexSig2,
Trainexistant,adr,pos,index,Ncanton,icanton : integer;
typ: tequipement;
trainTiers,SigBonSens : boolean;
var AdrSig,n,i,ic,j,ideb,iFin,AdrTrain,etat,pointeur,voie1,voie2,indexSig1,indexSig2,
Trainexistant,adr,pos,index,Ncanton,icanton,NumCanton,pr,det_arret,it,PointRoute,ElPrec,
adr2 : integer;
typ,tprec: tequipement;
trainTiers,SigBonSens,trouve : boolean;
s : string;
begin
//traceliste:=true;
if ProcPrinc then AfficheDebug('Aig_canton '+intToSTR(idTrain)+' '+intToSTR(detect),clWhite);
if not(diffusion) then Affiche('Aig_canton '+intToSTR(idTrain)+' '+intToSTR(detect),clWhite);
result:=0;
If traceliste then
@@ -273,7 +297,7 @@ begin
pointeur:=0;
n:=trains[idTrain].route[0].adresse;
repeat
inc(pointeur);
inc(pointeur);
until (trains[idTrain].route[pointeur].traite=false) or (pointeur+1>=n);
i:=pointeur-1;
@@ -289,6 +313,49 @@ begin
end;
end;
j:=1;
pr:=trains[idTrain].PointRout;
repeat
if (trains[idTrain].route[j].adresse=detect) and (trains[idTrain].route[j].typ=det) and (j>pr) then
begin
trains[idTrain].PointRout:=j;
PointRoute:=j;
//Affiche('Le pointeur de route est '+intToSTR(j)+' au détecteur '+intToSTR(detect),clred);
end;
inc(j);
until j>n;
// arrêt sur détecteur demandé
trouve:=false;
it:=1; // boucle de détecteurs dans les trains
if roulage and (trains[idTrain].roulage>0) and (pointRoute>1) then
repeat
det_arret:=trains[idTrain].DetecteurArret[it].detecteur;
elPrec:=trains[idTrain].DetecteurArret[it].prec;
Tprec:=trains[idTrain].DetecteurArret[it].tprec;
adr2:=0;
// si le précédent est une TJD 4 états il faut tester les 2 adresses
if Tprec=aig then
begin
j:=index_aig(elprec);
if (aiguillage[j].modele=tjd) and (aiguillage[j].EtatTJD=4) then
begin
adr2:=aiguillage[j].DDroit; // homologue
end;
end;
if not(diffusion) and (Det_arret<>0) then Affiche('Détecteur demande arrêt rencontré ('+intToSTR(det_arret)+')',clYellow);
// detecteur courant=arret
if (det_arret=detect) and (detecteur[detect].etat) and (trains[idTrain].route[PointRoute-1].adresse=ElPrec) and (trains[idTrain].route[PointRoute-1].typ=tPrec) then
begin
Affiche('Demande arrêt train '+trains[idTrain].nom_train+' '+intToSTR(trains[idTrain].DetecteurArret[it].temps)+'s sur détecteur '+inttoStr(detect)+' prec='+intToSTR(trains[idTrain].route[PointRoute-1].adresse),ClOrange);
trains[idTrain].TempoArret:=50;
trains[idTrain].TempoArretTemp:=trains[idTrain].DetecteurArret[it].temps*10;
trouve:=true;
end;
inc(it);
until (it>NbDetArret) or trouve;
if (detect=trains[idTrain].route[n].adresse) and (trains[idTrain].route[n].typ=det) then
begin
// route traitée , arrêter le train
@@ -400,14 +467,14 @@ begin
begin
pilote_acc(adr,pos,AdrTrain); // pilote l'aig si il est reservé par le train ou non réservé
s:='AC- Pilote aiguillage '+intToSTR(adr)+'='+intToSTR(pos);
s:='AC-Pilote aiguillage '+intToSTR(adr)+'='+intToSTR(pos);
case pos of
const_devie : s:=s+' (dévié)';
const_droit : s:=s+' (droit)';
else
s:=s+' non positionné';
end;
//if traceListe then
if not(diffusion) then
Affiche(s,clWhite);
if portCommOuvert or parSocketLenz or CDM_connecte then sleep(Tempo_Aig);
end;
-1
View File
@@ -153,7 +153,6 @@ procedure TFormSimulation.ButtonChargeClick(Sender: TObject);
var s : string;
begin
s:=GetCurrentDir;
s:='C:\Program Files (x86)\Borland\Delphi7\Projects\Signaux_complexes_GL';
OpenDialog.InitialDir:=s;
OpenDialog.DefaultExt:='txt';
OpenDialog.Title:='Ouvrir un fichier de simulation';
+2 -2
View File
@@ -24,8 +24,8 @@ object FormTCO: TFormTCO
OnKeyPress = FormKeyPress
OnMouseWheel = FormMouseWheel
DesignSize = (
1005
556)
997
549)
PixelsPerInch = 96
TextHeight = 13
object LabelZoom: TLabel
+1216 -1218
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -5,7 +5,7 @@ object FormSelTrain: TFormSelTrain
BorderStyle = bsDialog
Caption = 'S'#233'lection train'
ClientHeight = 311
ClientWidth = 768
ClientWidth = 800
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -16,7 +16,7 @@ object FormSelTrain: TFormSelTrain
OnActivate = FormActivate
OnCreate = FormCreate
DesignSize = (
768
800
311)
PixelsPerInch = 96
TextHeight = 13
@@ -329,7 +329,7 @@ object FormSelTrain: TFormSelTrain
Height = 13
end
object ButtonOK: TButton
Left = 9
Left = 41
Top = 280
Width = 75
Height = 24
@@ -350,7 +350,7 @@ object FormSelTrain: TFormSelTrain
object StringGridTrains: TStringGrid
Left = 8
Top = 64
Width = 753
Width = 785
Height = 209
ColCount = 6
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goAlwaysShowEditor]
+776 -676
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -25,7 +25,7 @@ var
chemin_Dest,chemin_src,date_creation,nombre_tel : string;
f : text;
Const VersionSC ='9.0'; // sert à la comparaison de la version publiée
Const VersionSC ='9.1'; // sert à la comparaison de la version publiée
SousVersion=' '; // A B C ... en cas d'absence de sous version mettre un espace
// pour unzip
SHCONTCH_NOPROGRESSBOX = 4;
+5
View File
@@ -263,4 +263,9 @@ version 9.1 : Repr
Corrections sur les TJD 2 états.
Correction connection en mode autonome aux interfaces pour la version D11.
Correction pilotage décodeur LEB ancienne version.
version 9.2 : Utilisation de l'unité ASyncPro pour les versions D12 pour les communications COM/USB.
Arrets temporisés sur les détecteurs en mode autonome/roulage pour les routes de canton à canton.
Correction connexion à la GENLI.
Version x64 D12 disponible.