Приостановка скрипта 3M Keyboard wedge XML
Я использую устройство под названием 3m cr100m, которое можно использовать для ввода данных из паспорта и так далее. Я запускаю приведенный ниже сценарий, но хотел бы сделать паузу после определенного обработчика данных, пока я не нажму определенную клавишу, например ctrl+W или что-то подобное.
Приложение, для которого я его использую, состоит из 2 страниц.
На первой странице указаны имя, пол и дата рождения, а также некоторые данные, которые необходимо ввести вручную, затем нажать "Далее", на второй странице указан номер паспорта, дата выдачи и срок действия.
Ниже приведен мой код для 3m cr100m с использованием программы под названием keyboard wedge, которая загружает указанный ниже сценарий, сценарий находится в файле xml и предназначен для небольшой обработки данных только из того, что я могу понять.
Если любой справочный SDK для этого устройства доступен по адресу http://www.3m.com/ssdcp/3M%20Swipe%20Readers/SDK/3M%20Swipe%20Reader%20SDK%201.2.1.2%20Setup.exe
<?xml version="1.0"?>
<OutputWedge>
<InputModule name="Swipe">
<Parameters>
<Parameter name="LogLevel" value="1" />
<Parameter name="LogFileName" value="SwipeOutputWedge.log" />
<Parameter name="DateOfBirthFormat" value="%d-%m-%y"/>
<Parameter name="ExpiryDateFormat" value="%d/%m/%y"/>
</Parameters>
</InputModule>
<OutputModules>
<OutputModule name="Keyboard" alias="keyb">
<Parameters>
<Parameter name="DelayBetweenKeys" value="10" />
</Parameters>
</OutputModule>
</OutputModules>
<DataMerging>
<DestDataItem name="General_DocumentNumber">
<SrcDataItem name="CODELINE_DOC_NUMBER" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_DOC_NUMBER" priority="2" />
<SrcDataItem name="AAMVA_PARSED_LICENCENUMBER" priority="1" />
</DestDataItem>
<DestDataItem name="General_FullName">
<SrcDataItem name="AAMVA_PARSED_FULLNAME" priority="1" />
</DestDataItem>
<DestDataItem name="General_GivenNames">
<SrcDataItem name="CODELINE_FORENAMES" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_FORENAMES" priority="2" />
<SrcDataItem name="AAMVA_PARSED_GIVENNAMES" priority="2" />
</DestDataItem>
<DestDataItem name="General_Surname">
<SrcDataItem name="CODELINE_SURNAME" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_SURNAME" priority="2" />
<SrcDataItem name="AAMVA_PARSED_SURNAME" priority="2" />
</DestDataItem>
<DestDataItem name="General_Forename">
<SrcDataItem name="CODELINE_FORENAME" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_FORENAME" priority="2" />
<SrcDataItem name="AAMVA_PARSED_FORENAME" priority="2" />
</DestDataItem>
<DestDataItem name="General_Forenames">
<SrcDataItem name="CODELINE_FORENAMES" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_FORENAMES" priority="2" />
</DestDataItem>
<DestDataItem name="General_MiddleName">
<SrcDataItem name="AAMVA_PARSED_MIDDLENAME" priority="2" />
</DestDataItem>
<DestDataItem name="General_NameSuffix,">
<SrcDataItem name="AAMVA_PARSED_NAMESUFFIX" priority="1" />
</DestDataItem>
<DestDataItem name="General_GivenNames,">
<SrcDataItem name="AAMVA_PARSED_GIVENNAMES" priority="1" />
</DestDataItem>
<DestDataItem name="General_SecondName,">
<SrcDataItem name="CODELINE_SECOND_NAME" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_SECOND_NAME" priority="2" />
</DestDataItem>
<DestDataItem name="General_Gender">
<SrcDataItem name="CODELINE_SEX" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_SEX" priority="2" />
<SrcDataItem name="AAMVA_PARSED_SEX" priority="2" />
</DestDataItem>
<DestDataItem name="General_GenderLetter">
<SrcDataItem name="CODELINE_SHORT_SEX" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_SHORT_SEX" priority="2" />
<SrcDataItem name="AAMVA_PARSED_SHORTSEX" priority="2" />
</DestDataItem>
<DestDataItem name="General_AddressStreet">
<SrcDataItem name="AAMVA_PARSED_ADDRESS_STREET" priority="2" />
</DestDataItem>
<DestDataItem name="General_AddressCity">
<SrcDataItem name="AAMVA_PARSED_ADDRESS_CITY" priority="2" />
</DestDataItem>
<DestDataItem name="General_AddressState">
<SrcDataItem name="AAMVA_PARSED_ADDRESS_STATE" priority="2" />
</DestDataItem>
<DestDataItem name="General_AddressPostalCode">
<SrcDataItem name="AAMVA_PARSED_ADDRESS_POSTALCODE" priority="2" />
</DestDataItem>
<DestDataItem name="General_AddressCountry">
<SrcDataItem name="CODELINE_ISSUING_STATE" priority="1" />
<SrcDataItem name="AAMVA_PARSED_ADDRESS_COUNTRY" priority="2" />
</DestDataItem>
<DestDataItem name="General_IssuingState">
<SrcDataItem name="CODELINE_ISSUING_STATE" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_ISSUING_STATE" priority="2" />
</DestDataItem>
<DestDataItem name="General_Nationality">
<SrcDataItem name="CODELINE_NATIONALITY" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_NATIONALITY" priority="2" />
</DestDataItem>
<DestDataItem name="General_OptionalData1">
<SrcDataItem name="CODELINE_OPTIONAL_DATA_1" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_OPTIONAL_DATA_1" priority="2" />
</DestDataItem>
<DestDataItem name="General_OptionalData2">
<SrcDataItem name="CODELINE_OPTIONAL_DATA_2" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_OPTIONAL_DATA_2" priority="2" />
</DestDataItem>
<DestDataItem name="General_DateOfBirth">
<SrcDataItem name="CODELINE_DATE_OF_BIRTH_STR" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_DATE_OF_BIRTH_STR" priority="2" />
<SrcDataItem name="AAMVA_PARSED_DATEOFBIRTH" priority="2" />
</DestDataItem>
<DestDataItem name="General_IssueDate">
<SrcDataItem name="AAMVA_PARSED_ISSUEDATE" priority="1" />
</DestDataItem>
<DestDataItem name="General_ExpiryDate,">
<SrcDataItem name="CODELINE_EXPIRY_DATE_STR," priority="1" />
<SrcDataItem name="SCDG1_CODELINE_EXPIRY_DATE_STR," priority="2" />
<SrcDataItem name="AAMVA_PARSED_EXPIRYDATE" priority="2" />
</DestDataItem>
<DestDataItem name="General_DateOfBirthFormatted">
<SrcDataItem name="CODELINE_DATE_OF_BIRTH_STR_FORMATTED" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_DATE_OF_BIRTH_STR_FORMATTED" priority="2" />
<SrcDataItem name="AAMVA_PARSED_DATEOFBIRTH_FORMATTED" priority="2" />
</DestDataItem>
<DestDataItem name="General_IssueDateFormatted">
<SrcDataItem name="AAMVA_PARSED_ISSUEDATE_FORMATTED" priority="1" />
</DestDataItem>
<DestDataItem name="General_ExpiryDateFormatted">
<SrcDataItem name="CODELINE_EXPIRY_DATE_STR_FORMATTED," priority="1" />
<SrcDataItem name="SCDG1_CODELINE_EXPIRY_DATE_STR_FORMATTED," priority="2" />
<SrcDataItem name="AAMVA_PARSED_EXPIRYDATE_FORMATTED" priority="2" />
</DestDataItem>
<DestDataItem name="General_CodelineData">
<SrcDataItem name="CODELINE_DATA" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_DATA" priority="2" />
</DestDataItem>
<DestDataItem name="General_Codeline1">
<SrcDataItem name="CODELINE_LINE_1" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_LINE_1" priority="2" />
</DestDataItem>
<DestDataItem name="General_Codeline2">
<SrcDataItem name="CODELINE_LINE_2" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_LINE_2" priority="2" />
</DestDataItem>
<DestDataItem name="General_Codeline3">
<SrcDataItem name="CODELINE_LINE_3" priority="1" />
<SrcDataItem name="SCDG1_CODELINE_LINE_3" priority="2" />
</DestDataItem>
<DestDataItem name="General_Height">
<SrcDataItem name="AAMVA_PARSED_HEIGHT" priority="1" />
</DestDataItem>
<DestDataItem name="General_Weight">
<SrcDataItem name="AAMVA_PARSED_WEIGHT" priority="1" />
</DestDataItem>
<DestDataItem name="General_Hair_Color">
<SrcDataItem name="AAMVA_PARSED_HAIR_COLOR" priority="1" />
</DestDataItem>
<DestDataItem name="General_Eye_Color">
<SrcDataItem name="AAMVA_PARSED_EYE_COLOR" priority="1" />
</DestDataItem>
</DataMerging>
<Script name="FIRST PAGE" startup="True">
<!-- OCR Codeline Data -->
<DataHandler name="CODELINE_FORENAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SECOND_NAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SURNAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SEX" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_TAB" storeAs="$data">
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_DATE_OF_BIRTH_STR" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
</Script>
<Script name="SECOND PAGE">
<!-- OCR Codeline Data -->
<DataHandler name="CODELINE_FORENAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SECOND_NAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SURNAME" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_SEX" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_TAB" storeAs="$data">
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
<DataHandler name="CODELINE_DATE_OF_BIRTH_STR" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>
</Script>
</OutputWedge>
Как мне приостановить или приостановить ввод данных. Скажем, после кода ниже..
<DataHandler name="CODELINE_SEX" storeAs="$data">
<Task name="keyb:TypeString" source="$data" />
<Task name="keyb:PressSpecialKey" key="TAB" ctrl="False" alt="False" shift="False" />
</DataHandler>