Add files via upload

This commit is contained in:
kristjan-komlosi
2017-06-30 08:16:22 +02:00
committed by GitHub
parent 6685d59fbb
commit 67c0a98ce3
55 changed files with 116432 additions and 0 deletions

113821
Esplorer/ESPlorer.Log Normal file

File diff suppressed because it is too large Load Diff

410
Esplorer/ESPlorer.Log.1 Normal file
View File

@@ -0,0 +1,410 @@
<?xml version="1.0" encoding="windows-1250" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402063</millis>
<sequence>5</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Load saved settings: Firmware:MicroPython</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402206</millis>
<sequence>6</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets: loading...</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402217</millis>
<sequence>7</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets load: Success.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402224</millis>
<sequence>8</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets: loading...</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402230</millis>
<sequence>9</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets load: Success.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402232</millis>
<sequence>10</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets: loading...</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402238</millis>
<sequence>11</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets load: Success.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402289</millis>
<sequence>12</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Set new color theme: Success.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402296</millis>
<sequence>13</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Load saved settings: DONE.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402299</millis>
<sequence>14</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets: loading...</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402304</millis>
<sequence>15</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Snippets load: Success.</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402747</millis>
<sequence>16</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Scan system...</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402754</millis>
<sequence>17</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>found COM1</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402756</millis>
<sequence>18</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>found last saved serial port COM3</message>
</record>
<record>
<date>2017-06-23T09:03:22</date>
<millis>1498201402763</millis>
<sequence>19</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Scan done.</message>
</record>
<record>
<date>2017-06-23T09:03:40</date>
<millis>1498201420919</millis>
<sequence>20</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Serial port COM3 save as default.</message>
</record>
<record>
<date>2017-06-23T09:03:40</date>
<millis>1498201420922</millis>
<sequence>21</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Baud rate 115200 save as default.</message>
</record>
<record>
<date>2017-06-23T09:03:40</date>
<millis>1498201420923</millis>
<sequence>22</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Try to open port COM3, baud 115200, 8N1</message>
</record>
<record>
<date>2017-06-23T09:03:40</date>
<millis>1498201420975</millis>
<sequence>23</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>Open port COM3 - Success.</message>
</record>
<record>
<date>2017-06-23T09:03:45</date>
<millis>1498201425402</millis>
<sequence>24</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>RTS set to OFF</message>
</record>
<record>
<date>2017-06-23T09:03:46</date>
<millis>1498201426402</millis>
<sequence>25</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>RTS set to ON</message>
</record>
<record>
<date>2017-06-23T09:03:47</date>
<millis>1498201427841</millis>
<sequence>26</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>DTR set to OFF</message>
</record>
<record>
<date>2017-06-23T09:03:48</date>
<millis>1498201428458</millis>
<sequence>27</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>DTR set to ON</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496689</millis>
<sequence>28</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>pyFileManager: Add EventListener: Success.</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496721</millis>
<sequence>29</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>pyFileManager: Starting...</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496734</millis>
<sequence>30</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>sending:import os;os.listdir('')
</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496765</millis>
<sequence>31</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager: File list found! Do parsing...</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496781</millis>
<sequence>32</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file DS18B20.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496785</millis>
<sequence>33</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file boot.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496809</millis>
<sequence>34</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file display.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496812</millis>
<sequence>35</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file ne555.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496832</millis>
<sequence>36</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file net.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496835</millis>
<sequence>37</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>FileManager found file web_sensors.py</message>
</record>
<record>
<date>2017-06-23T09:04:56</date>
<millis>1498201496841</millis>
<sequence>38</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>30</thread>
<message>pyFileManager: File list parsing done, found 6 file(s).</message>
</record>
<record>
<date>2017-06-23T09:05:42</date>
<millis>1498201542421</millis>
<sequence>39</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>sending:import net&lt;CR&gt;&lt;LF&gt;</message>
</record>
<record>
<date>2017-06-23T09:07:00</date>
<millis>1498201620649</millis>
<sequence>40</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>sending:net.do_connec("delavnica","delavnica")&lt;CR&gt;&lt;LF&gt;</message>
</record>
<record>
<date>2017-06-23T09:07:12</date>
<millis>1498201632281</millis>
<sequence>41</sequence>
<logger>ESPlorer.ESPlorer</logger>
<level>INFO</level>
<class>ESPlorer.ESPlorer</class>
<method>log</method>
<thread>14</thread>
<message>sending:net.do_connect("delavnica","delavnica")&lt;CR&gt;&lt;LF&gt;</message>

1
Esplorer/ESPlorer.bat Normal file
View File

@@ -0,0 +1 @@
java -jar "ESPlorer.jar"

BIN
Esplorer/ESPlorer.jar Normal file

Binary file not shown.

2
Esplorer/ESPlorer.sh Normal file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
java -jar "/home/borut/bin/ESPlorer.jar"

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,34 @@
LICENSE AGREEMENT
SILICON LABS VCP DRIVER
IMPORTANT: READ CAREFULLY BEFORE AGREEING TO TERMS
THIS PRODUCT CONTAINS THE SILICON LABS VCP DRIVER AND INSTALLER PROGRAMS AND OTHER THIRD PARTY SOFTWARE.TOGETHER THESE PRODUCTS ARE REFERRED TO AS THE "LICENSED SOFTWARE". USE OF THE LICENSED SOFTWARE IS SUBJECT TO THE TERMS OF THIS LICENSE AGREEMENT. DOWNLOADING THE LICENSED SOFTWARE AND INDICATING YOUR CONSENT TO THE TERMS OF THIS LICENSE CONSTITUTES A BINDING AGREMENT BETWEEN SILICON LABORATORIES, INC. ("SILICON LABS") AND YOU OR YOUR EMPLOYER (IF APPLICABLE). IF YOU ARE ACCEPTING THE TERMS OF THIS AGREEMENT ON BEHALF YOUR EMPLOYER, THE TERMS "YOU" AND "YOUR" REFER TO YOUR EMPLOYER. WRITTEN APPROVAL IS NOT A PREREQUISITE TO THE VALIDITY OR ENFORCEABILITY OF THIS AGREEMENT. IF THESE TERMS ARE CONSIDERED AN OFFER BY SILICON LABS, ACCEPTANCE IS EXPRESSLY LIMITED TO THESE TERMS.
IF YOU DO NOT AGREE WITH ALL OF THE TERMS OF THIS LICENSE AGREEMENT, YOU MUST NOT USE THE LICENSED SOFTWARE AND YOU MUST DELETE ALL OF COPIES OF THE LICENSED SOFTWARE FROM YOUR COMPUTER.
1. LICENSE: The Licensed Software is and will remain the property of Silicon Labs or a third party from whom Silicon Labs has the authorization to distribute to you subject to the terms of this Agreement. This Licensed Software is protected by state, federal, and international copyright laws. Subject at all times to your compliance with the terms of this License Agreement, Silicon Labs grants to you a nonexclusive license to use the Licensed Software as described in this License Agreement. Silicon Labs may revoke this license at any time if you fail to comply with the terms of this License Agreement. Certain parts of the Licensed Software, including DPInst.exe, are licensed from Microsoft Corporation. For information concerning licensing DPInst.exe and the redistributable pieces of WDF used in the driver, refer to the license.rtf file in the 7600.16385.1 version of the Windows Driver Kit, available through Microsoft.
2. CONTENTS OF THE LICENSED SOFTWARE: The Licensed Software consists of the following items:
a. Driver binaries
b. INF file that describes the driver installation
c. DPInst.exe that provides the GUI interface to install the drivers
d. XML file that describes the DPInst.exe and GUI items
3. INSTALLATION AND USE RIGHTS:
a. You may download and install the Licensed Software on one or more computers and make any number of copies.
b. You may internally evaluate the Licensed Software. If you elect to use the Licensed Software for any other purpose, including modification and distribution, then the following additional terms apply to you.
c. You may modify only the INF and XML files. You may modify these files with information concerning your company or your company's products.
d. You may not modify the driver binary files or the DPInst.exe files.
e. You may redistribute to your customers the Licensed Software only with the modified INF and XML files. Your redistribution may be in any form, including physical media and Internet downloads.
4. RESTRICTIONS:
a. You may not use the Licensed Software with any integrated circuit products other than those designed and manufactured by Silicon Labs.
b. Except as provided above, you may not redistribute, sublicense, assign, rent or lease any portion of the Licensed Software to any third party.
c. You may not reverse engineer, decompile, disassemble, modify, translate, or make any attempt to discover the source code of the Licensed Software. You may not work around any technical limitation in the Licensed Software.
d. Except as provided above, you may not modify or create derivative works from the Licensed Software.
e. You may not modify or distribute the Licensed Software so that any part of it becomes subject to an excluded license. An excluded license is one that requires, as a condition of use, modification or distribution, that the software be disclosed or distributed in source code form, or that others have the right to modify it.
f. You may not obscure or remove any product identification, copyright or other notices that appear on the Licensed Software, including any notices from third parties.
g. You may not redistribute any modified or unmodified version of the Licensed Software to any third party as a standalone product. You may not redistribute any modified or unmodified version of the Licensed Software to any third party who has not accepted the terms of an end-user license agreement that contains terms at least as protective of Silicon Labs' rights as those contained in this License Agreement.
5. WARRANTY: Silicon Labs does not warrant that the Licensed Software will meet your requirements or that operation of the Licensed Software will be uninterrupted or error-free. You agree that the Licensed Software is provided "AS IS" and that Silicon Labs makes no other warranties regarding the Licensed Software. SILICON LABS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT, RELATED TO THE LICENSED SOFTWARE, ITS USE OR ANY INABILITY TO USE IT, THE RESULTS OF ITS USE AND THIS AGREEMENT. YOU MAY HAVE OTHER RIGHTS, WHICH VARY FROM STATE TO STATE.
6. DISCLAIMER OF DAMAGES: IN NO EVENT WILL SILICON LABS BE LIABLE TO YOU FOR ANY SPECIAL, CONSEQUENTIAL, INDIRECT, OR SIMILAR DAMAGES, INCLUDING ANY LOST PROFITS OR LOST DATA ARISING OUT OF THE USE OR INABILITY TO USE THE LICENSED SOFTWARE EVEN IF SILICON LABS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. IN NO CASE SHALL SILICON LABS' CUMULATIVE LIABILITY TO YOU FOR ALL PURPOSES EXCEED FIFTY UNITED STATES DOLLARS ($50). The disclaimers and limitations set forth above will apply regardless of whether you accept the Licensed Software.
7. TERM AND TERMINATION: The term of this Agreement and the License granted herein shall begin upon use of the Licensed Software and continue in perpetuity unless you breach any of the obligations set out under this Agreement. Upon any breach of this Agreement by you, the license granted hereunder shall terminate immediately and you shall cease all use of the Licensed Software and return or destroy all copies of the Licensed Software to Silicon Labs immediately. Termination of this License upon your breach is only one remedy available to Silicon Labs. In addition to termination of this Agreement upon your breach, Silicon Labs shall be entitled to seek any and all other available remedies, at law or at equity, arising from your breach. Termination of this Agreement shall not affect your customers' ability to continue using copies of the modified or unmodified Licensed Software they obtained from you.
8. EXPORT: You shall comply with all applicable federal, provincial, state and local laws, regulations and ordinances including but not limited to applicable U.S. Export Administration Laws and Regulations. You shall not export or re-export, or allow the export or re-export of the Licensed Software to any country specified in the then-current Supplement No. 1 to Part 740, or, in violation of the embargo provisions in Part 746, of the U.S. Export Administration Regulations (or any successor regulations or supplement), except in compliance with and with all licenses and approvals required under applicable export laws and regulations, including without limitation, those of the U.S. Department of Commerce.
9. GENERAL: This Agreement will be governed by the laws of the State of Texas and any applicable federal laws or regulations. The waiver by either Party of any default or breach of this Agreement shall not constitute a waiver of any other or subsequent default or breach. This Agreement constitutes the complete and exclusive statement of the mutual understanding between you and Silicon Labs with respect to this subject matter herein. This Agreement may only be modified by a written addendum, which has been signed by both you and Silicon Labs.
BY CLICKING "I ACCEPT THE TERMS OF THIS AGREEMENT" YOU AGREE TO ACCEPT AND COMPLY WITH THE TERMS OF THIS LICENSE AGREEMENT WITH SILICON LABORATORIES INC.

172
Esplorer/Lolin32/dpinst.xml Normal file
View File

@@ -0,0 +1,172 @@
<?xml version="1.0" ?>
<dpinst>
<enableNotListedLanguages/>
<language code="0x0401">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0804">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0404">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0405">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0406">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0407">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0408">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0409">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0C0A">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x040B">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x040C">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x040D">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x040E">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0410">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0411">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0412">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0414">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0413">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0415">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0416">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0816">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x0419">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x041D">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
<language code="0x041F">
<dpinstTitle>CP210x USB to UART Bridge Driver Installer</dpinstTitle>
<welcomeTitle>Welcome to the CP210x USB to UART Bridge Driver Installer</welcomeTitle>
<welcomeIntro>This wizard will help you install the drivers for your CP210x USB to UART Bridge device.</welcomeIntro>
<eula type="txt" path="SLAB_License_Agreement_VCP_Windows.txt"/>
<finishTitle>Completing the Installation of the CP210x USB to UART Bridge Driver</finishTitle>
</language>
</dpinst>

Binary file not shown.

View File

@@ -0,0 +1,285 @@
;/*++
;
;Module Name:
;
; SLABVCP.INF
;
; Copyright 2013-2016, Silicon Laboratories Inc.
;
;Abstract:
; Installation INF for Silicon Labs CP210x device
;
;--*/
[Version]
Signature="$WINDOWS NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%
DriverVer=09/19/2016,6.7.4.261
CatalogFile=slabvcp.cat
PnpLockDown=1 ; "a driver package should set PnpLockDown to 1" -- MSDN
; ================= Device section =====================
[Manufacturer]
%ManufacturerName%=SiLabsModelsSection, NTx86.6.1, NTamd64.6.1, NTarm.10, NTarm64.10
;Models section for installation of x86 driver on Windows 7 and above
[SiLabsModelsSection.NTx86.6.1]
%USB\VID_10C4&PID_EA60.DeviceDesc% =SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA60 ; USB\VID_v(4)&PID_d(4)
%USB\VID_10C4&PID_EA63.DeviceDesc% =SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA63
%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA70&Mi_00 ; USB\VID_v(4)&PID_d(4)&MI_z(2)
%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA70&Mi_01
%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_00
%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_01
%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_02
%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA71&Mi_03
%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7A&Mi_00
%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7A&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_00
%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_02
%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTx86, USB\VID_10C4&PID_EA7B&Mi_03
;Models section for installation of x64 driver on Windows 7 and above
[SiLabsModelsSection.NTamd64.6.1]
%USB\VID_10C4&PID_EA60.DeviceDesc% =SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA60 ; USB\VID_v(4)&PID_d(4)
%USB\VID_10C4&PID_EA63.DeviceDesc% =SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA63
%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA70&Mi_00 ; USB\VID_v(4)&PID_d(4)&MI_z(2)
%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA70&Mi_01
%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_00
%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_01
%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_02
%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA71&Mi_03
%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7A&Mi_00
%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7A&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_00
%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_02
%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTamd64, USB\VID_10C4&PID_EA7B&Mi_03
;Models section for installation of arm driver on Windows 10 and above
[SiLabsModelsSection.NTarm.10]
%USB\VID_10C4&PID_EA60.DeviceDesc% =SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA60 ; USB\VID_v(4)&PID_d(4)
%USB\VID_10C4&PID_EA63.DeviceDesc% =SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA63
%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA70&Mi_00 ; USB\VID_v(4)&PID_d(4)&MI_z(2)
%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA70&Mi_01
%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_00
%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_01
%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_02
%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA71&Mi_03
%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7A&Mi_00
%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7A&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_00
%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_02
%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm, USB\VID_10C4&PID_EA7B&Mi_03
;Models section for installation of arm64 driver on Windows 10 and above
[SiLabsModelsSection.NTarm64.10]
%USB\VID_10C4&PID_EA60.DeviceDesc% =SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA60 ; USB\VID_v(4)&PID_d(4)
%USB\VID_10C4&PID_EA63.DeviceDesc% =SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA63
%USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA70&Mi_00 ; USB\VID_v(4)&PID_d(4)&MI_z(2)
%USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA70&Mi_01
%USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_00
%USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_01
%USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_02
%USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA71&Mi_03
%USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7A&Mi_00
%USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7A&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_00
%USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_01
%USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_02
%USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc%=SiLabsDDInstallSection.NTarm64, USB\VID_10C4&PID_EA7B&Mi_03
;DDInstall sections (one per x86, amd64, arm, arm64)
; Note: If/as we are building a Universal driver package, we can not use a DefaultInstall section.
[SiLabsDDInstallSection.NTx86]
AddReg=silabser.AddReg
CopyFiles=silabser.Files.Ext
FeatureScore=0x40 ; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
[SiLabsDDInstallSection.NTamd64]
AddReg=silabser.AddReg
CopyFiles=silabser.Files.Ext
FeatureScore=0x40 ; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
[SiLabsDDInstallSection.NTarm]
AddReg=silabser.AddReg
CopyFiles=silabser.Files.Ext
FeatureScore=0x40 ; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
[SiLabsDDInstallSection.NTarm64]
AddReg=silabser.AddReg
CopyFiles=silabser.Files.Ext
FeatureScore=0x40 ; a single-byte hexadecimal number between 0x00 and 0xFF, A lower featurescore value specifies a better feature score rank, where 0x00 is the best feature score rank.
;DDInstall.Services sections (one per x86, amd64, arm, arm64)
; Note: If/as we are building a Universal driver package, we can not use a DefaultInstall.Services section.
[SiLabsDDInstallSection.NTx86.Services]
AddService = silabser,0x00000002,silabser.AddService
[SiLabsDDInstallSection.NTamd64.Services]
AddService = silabser,0x00000002,silabser.AddService
[SiLabsDDInstallSection.NTarm.Services]
AddService = silabser,0x00000002,silabser.AddService
[SiLabsDDInstallSection.NTarm64.Services]
AddService = silabser,0x00000002,silabser.AddService
[silabser.AddService]
DisplayName = %silabser.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\silabser.sys
; common registry entries
[silabser.AddReg]
HKR,,NTMPDriver,,silabser.sys
HKR,,RateLimitPurgeMS, 0x10001, 0x64, 0x00, 0x00, 0x00
HKR,,OverrideDefaultPortSettings, 0x10001, 01,00,00,00
HKR,,InitialBaudRate, 0x10001, 00,C2,01,00 ;115200 initial baud rate
HKR,,InitialLineControl,, "8N1" ;8-bits, No parity, 1 stop bit
HKR,,PortSubClass,1,01
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
;DDInstall.HW sections (one per x86, amd64, arm, arm64)
[SiLabsDDInstallSection.NTx86.HW]
AddReg=SiLabsDDInstallSection.HW.AddReg
[SiLabsDDInstallSection.NTamd64.HW]
AddReg=SiLabsDDInstallSection.HW.AddReg
[SiLabsDDInstallSection.NTarm.HW]
AddReg=SiLabsDDInstallSection.HW.AddReg
[SiLabsDDInstallSection.NTarm64.HW]
AddReg=SiLabsDDInstallSection.HW.AddReg
[SiLabsDDInstallSection.HW.AddReg]
HKR,,"SelectiveSuspendTimeout",0x00010001,10000
HKR,,"DisableHwAccessInModemStatusIoctls",0x00010001,1
; Attention! The EnablePowerManagewment value is no longer supported.
; To disable Selective Suspend, uncomment the following line:
; HKR,,"DisableS0Idle",0x00010001,1
[silabser.Files.Ext]
silabser.sys
[SourceDisksNames.x86]
1=%Disk_Description%,"slabvcp.cat"
[SourceDisksNames.amd64]
1=%Disk_Description%,"slabvcp.cat"
[SourceDisksNames.arm]
1=%Disk_Description%,"slabvcp.cat"
[SourceDisksNames.arm64]
1=%Disk_Description%,"slabvcp.cat"
[SourceDisksFiles.x86]
silabser.sys = 1,x86
WdfCoinstaller01009.dll=1,x86
[SourceDisksFiles.amd64]
silabser.sys = 1,x64
WdfCoinstaller01009.dll=1,x64
[SourceDisksFiles.arm]
silabser.sys = 1,arm
WdfCoinstaller01011.dll=1,arm
[SourceDisksFiles.arm64]
silabser.sys = 1,arm64
WdfCoinstaller01015.dll=1,arm64
[DestinationDirs]
Silabser.Files.Ext = 12 ; windows\system32\drivers
;-------------- WDF Coinstaller installation
[DestinationDirs]
CoInstaller_CopyFiles.KMDF.1.09 = 11 ; windows\system32
CoInstaller_CopyFiles.KMDF.1.11 = 11 ; windows\system32
CoInstaller_CopyFiles.KMDF.1.15 = 11 ; windows\system32
;DDInstall.CoInstallers sections (one per x86, amd64, arm, arm64)
; "You can use any INF section in a universal INF file except for [CoInstallers]" -- MSDN
[SiLabsDDInstallSection.NTx86.CoInstallers]
AddReg=CoInstaller_AddReg.KMDF.1.09
CopyFiles=CoInstaller_CopyFiles.KMDF.1.09
[SiLabsDDInstallSection.NTamd64.CoInstallers]
AddReg=CoInstaller_AddReg.KMDF.1.09
CopyFiles=CoInstaller_CopyFiles.KMDF.1.09
[SiLabsDDInstallSection.NTarm.CoInstallers]
AddReg=CoInstaller_AddReg.KMDF.1.11
CopyFiles=CoInstaller_CopyFiles.KMDF.1.11
[SiLabsDDInstallSection.NTarm64.CoInstallers]
AddReg=CoInstaller_AddReg.KMDF.1.15
CopyFiles=CoInstaller_CopyFiles.KMDF.1.15
[CoInstaller_CopyFiles.KMDF.1.09]
WdfCoinstaller01009.dll
[CoInstaller_CopyFiles.KMDF.1.11]
WdfCoinstaller01011.dll
[CoInstaller_CopyFiles.KMDF.1.15]
WdfCoinstaller01015.dll
[SourceDisksFiles]
WdfCoinstaller01009.dll=1
WdfCoinstaller01011.dll=1
WdfCoinstaller01015.dll=1
[CoInstaller_AddReg.KMDF.1.09]
HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01009.dll,WdfCoInstaller"
[CoInstaller_AddReg.KMDF.1.11]
HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01011.dll,WdfCoInstaller"
[CoInstaller_AddReg.KMDF.1.15]
HKR,,CoInstallers32,0x00010000, "WdfCoinstaller01015.dll,WdfCoInstaller"
;DDInstall.Wdf sections (one per x86, amd64, arm, arm64)
[SiLabsDDInstallSection.NTx86.Wdf]
KmdfService = silabser, SiLabs_wdfsect.1.09
[SiLabsDDInstallSection.NTamd64.Wdf]
KmdfService = silabser, SiLabs_wdfsect.1.09
[SiLabsDDInstallSection.NTarm.Wdf]
KmdfService = silabser, SiLabs_wdfsect.1.11
[SiLabsDDInstallSection.NTarm64.Wdf]
KmdfService = silabser, SiLabs_wdfsect.1.15
[SiLabs_wdfsect.1.09]
KmdfLibraryVersion = 1.09
[SiLabs_wdfsect.1.11]
KmdfLibraryVersion = 1.11
[SiLabs_wdfsect.1.15]
KmdfLibraryVersion = 1.15
;---------------------------------------------------------------;
[Strings]
Provider="Silicon Laboratories Inc."
ManufacturerName="Silicon Labs"
Disk_Description= "Silicon Labs CP210x USB to UART Bridge Installation Disk"
USB\VID_10C4&PID_EA60.DeviceDesc= "Silicon Labs CP210x USB to UART Bridge"
USB\VID_10C4&PID_EA63.DeviceDesc= "Silicon Labs CP210x USB to UART Bridge"
USB\VID_10C4&PID_EA70&Mi_00.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port"
USB\VID_10C4&PID_EA70&Mi_01.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port"
USB\VID_10C4&PID_EA71&Mi_00.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 0"
USB\VID_10C4&PID_EA71&Mi_01.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 1"
USB\VID_10C4&PID_EA71&Mi_02.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 2"
USB\VID_10C4&PID_EA71&Mi_03.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 3"
USB\VID_10C4&PID_EA7A&Mi_00.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port"
USB\VID_10C4&PID_EA7A&Mi_01.DeviceDesc="Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port"
USB\VID_10C4&PID_EA7B&Mi_00.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 0"
USB\VID_10C4&PID_EA7B&Mi_01.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 1"
USB\VID_10C4&PID_EA7B&Mi_02.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 2"
USB\VID_10C4&PID_EA7B&Mi_03.DeviceDesc="Silicon Labs Quad CP2108 USB to UART Bridge: Interface 3"
silabser.SvcDesc="Silicon Labs CP210x USB to UART Bridge Driver"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

100
Esplorer/_lua/test100.lua Normal file
View File

@@ -0,0 +1,100 @@
print("This is line number 1")
print("This is line number 2")
print("This is line number 3")
print("This is line number 4")
print("This is line number 5")
print("This is line number 6")
print("This is line number 7")
print("This is line number 8")
print("This is line number 9")
print("This is line number 10")
print("This is line number 11")
print("This is line number 12")
print("This is line number 13")
print("This is line number 14")
print("This is line number 15")
print("This is line number 16")
print("This is line number 17")
print("This is line number 18")
print("This is line number 19")
print("This is line number 20")
print("This is line number 21")
print("This is line number 22")
print("This is line number 23")
print("This is line number 24")
print("This is line number 25")
print("This is line number 26")
print("This is line number 27")
print("This is line number 28")
print("This is line number 29")
print("This is line number 30")
print("This is line number 31")
print("This is line number 32")
print("This is line number 33")
print("This is line number 34")
print("This is line number 35")
print("This is line number 36")
print("This is line number 37")
print("This is line number 38")
print("This is line number 39")
print("This is line number 40")
print("This is line number 41")
print("This is line number 42")
print("This is line number 43")
print("This is line number 44")
print("This is line number 45")
print("This is line number 46")
print("This is line number 47")
print("This is line number 48")
print("This is line number 49")
print("This is line number 50")
print("This is line number 51")
print("This is line number 52")
print("This is line number 53")
print("This is line number 54")
print("This is line number 55")
print("This is line number 56")
print("This is line number 57")
print("This is line number 58")
print("This is line number 59")
print("This is line number 60")
print("This is line number 61")
print("This is line number 62")
print("This is line number 63")
print("This is line number 64")
print("This is line number 65")
print("This is line number 66")
print("This is line number 67")
print("This is line number 68")
print("This is line number 69")
print("This is line number 70")
print("This is line number 71")
print("This is line number 72")
print("This is line number 73")
print("This is line number 74")
print("This is line number 75")
print("This is line number 76")
print("This is line number 77")
print("This is line number 78")
print("This is line number 79")
print("This is line number 80")
print("This is line number 81")
print("This is line number 82")
print("This is line number 83")
print("This is line number 84")
print("This is line number 85")
print("This is line number 86")
print("This is line number 87")
print("This is line number 88")
print("This is line number 89")
print("This is line number 90")
print("This is line number 91")
print("This is line number 92")
print("This is line number 93")
print("This is line number 94")
print("This is line number 95")
print("This is line number 96")
print("This is line number 97")
print("This is line number 98")
print("This is line number 99")
print("This is line number 100")

200
Esplorer/_lua/test200.lua Normal file
View File

@@ -0,0 +1,200 @@
print("This is line number 1")
print("This is line number 2")
print("This is line number 3")
print("This is line number 4")
print("This is line number 5")
print("This is line number 6")
print("This is line number 7")
print("This is line number 8")
print("This is line number 9")
print("This is line number 10")
print("This is line number 11")
print("This is line number 12")
print("This is line number 13")
print("This is line number 14")
print("This is line number 15")
print("This is line number 16")
print("This is line number 17")
print("This is line number 18")
print("This is line number 19")
print("This is line number 20")
print("This is line number 21")
print("This is line number 22")
print("This is line number 23")
print("This is line number 24")
print("This is line number 25")
print("This is line number 26")
print("This is line number 27")
print("This is line number 28")
print("This is line number 29")
print("This is line number 30")
print("This is line number 31")
print("This is line number 32")
print("This is line number 33")
print("This is line number 34")
print("This is line number 35")
print("This is line number 36")
print("This is line number 37")
print("This is line number 38")
print("This is line number 39")
print("This is line number 40")
print("This is line number 41")
print("This is line number 42")
print("This is line number 43")
print("This is line number 44")
print("This is line number 45")
print("This is line number 46")
print("This is line number 47")
print("This is line number 48")
print("This is line number 49")
print("This is line number 50")
print("This is line number 51")
print("This is line number 52")
print("This is line number 53")
print("This is line number 54")
print("This is line number 55")
print("This is line number 56")
print("This is line number 57")
print("This is line number 58")
print("This is line number 59")
print("This is line number 60")
print("This is line number 61")
print("This is line number 62")
print("This is line number 63")
print("This is line number 64")
print("This is line number 65")
print("This is line number 66")
print("This is line number 67")
print("This is line number 68")
print("This is line number 69")
print("This is line number 70")
print("This is line number 71")
print("This is line number 72")
print("This is line number 73")
print("This is line number 74")
print("This is line number 75")
print("This is line number 76")
print("This is line number 77")
print("This is line number 78")
print("This is line number 79")
print("This is line number 80")
print("This is line number 81")
print("This is line number 82")
print("This is line number 83")
print("This is line number 84")
print("This is line number 85")
print("This is line number 86")
print("This is line number 87")
print("This is line number 88")
print("This is line number 89")
print("This is line number 90")
print("This is line number 91")
print("This is line number 92")
print("This is line number 93")
print("This is line number 94")
print("This is line number 95")
print("This is line number 96")
print("This is line number 97")
print("This is line number 98")
print("This is line number 99")
print("This is line number 100")
print("This is line number 101")
print("This is line number 102")
print("This is line number 103")
print("This is line number 104")
print("This is line number 105")
print("This is line number 106")
print("This is line number 107")
print("This is line number 108")
print("This is line number 109")
print("This is line number 110")
print("This is line number 111")
print("This is line number 112")
print("This is line number 113")
print("This is line number 114")
print("This is line number 115")
print("This is line number 116")
print("This is line number 117")
print("This is line number 118")
print("This is line number 119")
print("This is line number 120")
print("This is line number 121")
print("This is line number 122")
print("This is line number 123")
print("This is line number 124")
print("This is line number 125")
print("This is line number 126")
print("This is line number 127")
print("This is line number 128")
print("This is line number 129")
print("This is line number 130")
print("This is line number 131")
print("This is line number 132")
print("This is line number 133")
print("This is line number 134")
print("This is line number 135")
print("This is line number 136")
print("This is line number 137")
print("This is line number 138")
print("This is line number 139")
print("This is line number 140")
print("This is line number 141")
print("This is line number 142")
print("This is line number 143")
print("This is line number 144")
print("This is line number 145")
print("This is line number 146")
print("This is line number 147")
print("This is line number 148")
print("This is line number 149")
print("This is line number 150")
print("This is line number 151")
print("This is line number 152")
print("This is line number 153")
print("This is line number 154")
print("This is line number 155")
print("This is line number 156")
print("This is line number 157")
print("This is line number 158")
print("This is line number 159")
print("This is line number 160")
print("This is line number 161")
print("This is line number 162")
print("This is line number 163")
print("This is line number 164")
print("This is line number 165")
print("This is line number 166")
print("This is line number 167")
print("This is line number 168")
print("This is line number 169")
print("This is line number 170")
print("This is line number 171")
print("This is line number 172")
print("This is line number 173")
print("This is line number 174")
print("This is line number 175")
print("This is line number 176")
print("This is line number 177")
print("This is line number 178")
print("This is line number 179")
print("This is line number 180")
print("This is line number 181")
print("This is line number 182")
print("This is line number 183")
print("This is line number 184")
print("This is line number 185")
print("This is line number 186")
print("This is line number 187")
print("This is line number 188")
print("This is line number 189")
print("This is line number 190")
print("This is line number 191")
print("This is line number 192")
print("This is line number 193")
print("This is line number 194")
print("This is line number 195")
print("This is line number 196")
print("This is line number 197")
print("This is line number 198")
print("This is line number 199")
print("This is line number 200")

300
Esplorer/_lua/test300.lua Normal file
View File

@@ -0,0 +1,300 @@
print("This is line number 1")
print("This is line number 2")
print("This is line number 3")
print("This is line number 4")
print("This is line number 5")
print("This is line number 6")
print("This is line number 7")
print("This is line number 8")
print("This is line number 9")
print("This is line number 10")
print("This is line number 11")
print("This is line number 12")
print("This is line number 13")
print("This is line number 14")
print("This is line number 15")
print("This is line number 16")
print("This is line number 17")
print("This is line number 18")
print("This is line number 19")
print("This is line number 20")
print("This is line number 21")
print("This is line number 22")
print("This is line number 23")
print("This is line number 24")
print("This is line number 25")
print("This is line number 26")
print("This is line number 27")
print("This is line number 28")
print("This is line number 29")
print("This is line number 30")
print("This is line number 31")
print("This is line number 32")
print("This is line number 33")
print("This is line number 34")
print("This is line number 35")
print("This is line number 36")
print("This is line number 37")
print("This is line number 38")
print("This is line number 39")
print("This is line number 40")
print("This is line number 41")
print("This is line number 42")
print("This is line number 43")
print("This is line number 44")
print("This is line number 45")
print("This is line number 46")
print("This is line number 47")
print("This is line number 48")
print("This is line number 49")
print("This is line number 50")
print("This is line number 51")
print("This is line number 52")
print("This is line number 53")
print("This is line number 54")
print("This is line number 55")
print("This is line number 56")
print("This is line number 57")
print("This is line number 58")
print("This is line number 59")
print("This is line number 60")
print("This is line number 61")
print("This is line number 62")
print("This is line number 63")
print("This is line number 64")
print("This is line number 65")
print("This is line number 66")
print("This is line number 67")
print("This is line number 68")
print("This is line number 69")
print("This is line number 70")
print("This is line number 71")
print("This is line number 72")
print("This is line number 73")
print("This is line number 74")
print("This is line number 75")
print("This is line number 76")
print("This is line number 77")
print("This is line number 78")
print("This is line number 79")
print("This is line number 80")
print("This is line number 81")
print("This is line number 82")
print("This is line number 83")
print("This is line number 84")
print("This is line number 85")
print("This is line number 86")
print("This is line number 87")
print("This is line number 88")
print("This is line number 89")
print("This is line number 90")
print("This is line number 91")
print("This is line number 92")
print("This is line number 93")
print("This is line number 94")
print("This is line number 95")
print("This is line number 96")
print("This is line number 97")
print("This is line number 98")
print("This is line number 99")
print("This is line number 100")
print("This is line number 101")
print("This is line number 102")
print("This is line number 103")
print("This is line number 104")
print("This is line number 105")
print("This is line number 106")
print("This is line number 107")
print("This is line number 108")
print("This is line number 109")
print("This is line number 110")
print("This is line number 111")
print("This is line number 112")
print("This is line number 113")
print("This is line number 114")
print("This is line number 115")
print("This is line number 116")
print("This is line number 117")
print("This is line number 118")
print("This is line number 119")
print("This is line number 120")
print("This is line number 121")
print("This is line number 122")
print("This is line number 123")
print("This is line number 124")
print("This is line number 125")
print("This is line number 126")
print("This is line number 127")
print("This is line number 128")
print("This is line number 129")
print("This is line number 130")
print("This is line number 131")
print("This is line number 132")
print("This is line number 133")
print("This is line number 134")
print("This is line number 135")
print("This is line number 136")
print("This is line number 137")
print("This is line number 138")
print("This is line number 139")
print("This is line number 140")
print("This is line number 141")
print("This is line number 142")
print("This is line number 143")
print("This is line number 144")
print("This is line number 145")
print("This is line number 146")
print("This is line number 147")
print("This is line number 148")
print("This is line number 149")
print("This is line number 150")
print("This is line number 151")
print("This is line number 152")
print("This is line number 153")
print("This is line number 154")
print("This is line number 155")
print("This is line number 156")
print("This is line number 157")
print("This is line number 158")
print("This is line number 159")
print("This is line number 160")
print("This is line number 161")
print("This is line number 162")
print("This is line number 163")
print("This is line number 164")
print("This is line number 165")
print("This is line number 166")
print("This is line number 167")
print("This is line number 168")
print("This is line number 169")
print("This is line number 170")
print("This is line number 171")
print("This is line number 172")
print("This is line number 173")
print("This is line number 174")
print("This is line number 175")
print("This is line number 176")
print("This is line number 177")
print("This is line number 178")
print("This is line number 179")
print("This is line number 180")
print("This is line number 181")
print("This is line number 182")
print("This is line number 183")
print("This is line number 184")
print("This is line number 185")
print("This is line number 186")
print("This is line number 187")
print("This is line number 188")
print("This is line number 189")
print("This is line number 190")
print("This is line number 191")
print("This is line number 192")
print("This is line number 193")
print("This is line number 194")
print("This is line number 195")
print("This is line number 196")
print("This is line number 197")
print("This is line number 198")
print("This is line number 199")
print("This is line number 200")
print("This is line number 201")
print("This is line number 202")
print("This is line number 203")
print("This is line number 204")
print("This is line number 205")
print("This is line number 206")
print("This is line number 207")
print("This is line number 208")
print("This is line number 209")
print("This is line number 210")
print("This is line number 211")
print("This is line number 212")
print("This is line number 213")
print("This is line number 214")
print("This is line number 215")
print("This is line number 216")
print("This is line number 217")
print("This is line number 218")
print("This is line number 219")
print("This is line number 220")
print("This is line number 221")
print("This is line number 222")
print("This is line number 223")
print("This is line number 224")
print("This is line number 225")
print("This is line number 226")
print("This is line number 227")
print("This is line number 228")
print("This is line number 229")
print("This is line number 230")
print("This is line number 231")
print("This is line number 232")
print("This is line number 233")
print("This is line number 234")
print("This is line number 235")
print("This is line number 236")
print("This is line number 237")
print("This is line number 238")
print("This is line number 239")
print("This is line number 240")
print("This is line number 241")
print("This is line number 242")
print("This is line number 243")
print("This is line number 244")
print("This is line number 245")
print("This is line number 246")
print("This is line number 247")
print("This is line number 248")
print("This is line number 249")
print("This is line number 250")
print("This is line number 251")
print("This is line number 252")
print("This is line number 253")
print("This is line number 254")
print("This is line number 255")
print("This is line number 256")
print("This is line number 257")
print("This is line number 258")
print("This is line number 259")
print("This is line number 260")
print("This is line number 261")
print("This is line number 262")
print("This is line number 263")
print("This is line number 264")
print("This is line number 265")
print("This is line number 266")
print("This is line number 267")
print("This is line number 268")
print("This is line number 269")
print("This is line number 270")
print("This is line number 271")
print("This is line number 272")
print("This is line number 273")
print("This is line number 274")
print("This is line number 275")
print("This is line number 276")
print("This is line number 277")
print("This is line number 278")
print("This is line number 279")
print("This is line number 280")
print("This is line number 281")
print("This is line number 282")
print("This is line number 283")
print("This is line number 284")
print("This is line number 285")
print("This is line number 286")
print("This is line number 287")
print("This is line number 288")
print("This is line number 289")
print("This is line number 290")
print("This is line number 291")
print("This is line number 292")
print("This is line number 293")
print("This is line number 294")
print("This is line number 295")
print("This is line number 296")
print("This is line number 297")
print("This is line number 298")
print("This is line number 299")
print("This is line number 300")

24
Esplorer/_lua/time.lua Normal file
View File

@@ -0,0 +1,24 @@
print('time.lua ver 1.0')
function getHTTPreq()
print('send GET to http server...')
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload)
print("got answer")
print(string.sub(payload,string.find(payload,"Date: ")+6,string.find(payload,"Date: ")+35))
conn:close()
end)
conn:connect(80,"64.233.161.94")
conn:send("HEAD / HTTP/1.1\r\n"..
"Accept: */*\r\n"..
"User-Agent: Mozilla/4.0 (compatible; esp8266 NodeMcu Lua;)\r\n"..
"\r\n")
end
tmr.alarm(0, 1000, 1, function()
if wifi.sta.getip()==nil then
print("connecting to AP...")
else
print('ip: ',wifi.sta.getip())
getHTTPreq()
tmr.stop(0)
end
end)

View File

@@ -0,0 +1,12 @@
import pyb
import time
pin = pyb.Pin(2, pyb.Pin.OUT)
for i in range(4):
print('LED ON')
pin.value(0)
time.sleep(1)
print('LED OFF')
pin.value(1)
time.sleep(1)
print('iteration done.')
print("All done.")

View File

@@ -0,0 +1,12 @@
import pyb
import time
pin = pyb.Pin(2, pyb.Pin.OUT)
for i in range(4):
print('LED ON2')
pin.value(0)
time.sleep(1)
print('LED OFF2')
pin.value(1)
time.sleep(1)
print('2iteration done.')
print("All 2 done.")

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,186 @@
; CH341SER.INF
; Driver for CH341 (USB=>SERIAL chip) V3.3
; WDM&VXD for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7
; Copyright (C) W.ch 2001-2011
;
[Version]
Signature = "$Chicago$"
Class = Ports
ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318}
Provider = %WinChipHead%
DriverVer = 11/04/2011, 3.3.2011.11
CatalogFile.NT = CH341SER.CAT
[ControlFlags]
ExcludeFromSelect = USB\VID_1A86&PID_7523
ExcludeFromSelect = USB\VID_1A86&PID_5523
ExcludeFromSelect = USB\VID_4348&PID_5523
ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250
ExcludeFromSelect = USBSERPORT\SER5523
ExcludeFromSelect = CH341PORT\SER5523
[Manufacturer]
%WinChipHead% = WinChipHead,NT,NTamd64
[WinChipHead]
%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523&REV_0250
%CH341S98.DeviceDesc% = CH341S98_Install, USBSERPORT\SER5523
%CH341S98.DeviceDesc% = CH341S98_Install, CH341PORT\SER5523
[WinChipHead.NT]
%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523&REV_0250
[WinChipHead.NTamd64]
%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7523
%CH341ASER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_5523
%CH341SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523
%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523&REV_0250
[CH341SER_Install]
DelFiles = CH341S98.DelFiles.SYS
CopyFiles = CH341SER.CopyFiles.SYS, CH341SER.CopyFiles.DLL
AddReg = CH341SER.9X.AddReg, CH341SER.AddReg
[CH341SER_Install.NT]
CopyFiles = CH341SER.NT.CopyFiles.SYS, CH341SER.CopyFiles.DLL
AddReg = CH341SER.NT.AddReg, CH341SER.AddReg
[CH341SER_Install.NT.HW]
AddReg = CH341SER.NT.HW.AddReg
[CH341SER_Inst.NTamd64]
CopyFiles = CH341SER.NT.CopyFiles.SYSA64, CH341SER.CopyFiles.DLLA64
AddReg = CH341SER.NT.AddReg, CH341SER.AddReg
[CH341SER_Inst.NTamd64.HW]
AddReg = CH341SER.NT.HW.AddReg
[CH341S98_Install]
DelFiles = CH341S98.DelFiles.SYS
CopyFiles = CH341S98.CopyFiles.VXD, CH341SER.CopyFiles.SYS
AddReg = CH341S98.9X.AddReg, CH341S98.AddReg
;[CH341S98_Install.NT]
[CH341S98.DelFiles.SYS]
CH341S98.SYS, , , 1
[CH341SER.CopyFiles.SYS]
CH341S98.SYS, , , 2
[CH341SER.NT.CopyFiles.SYS]
CH341SER.SYS, , , 2
[CH341SER.NT.CopyFiles.SYSA64]
CH341S64.SYS, , , 2
[CH341S98.CopyFiles.VXD]
CH341SER.VXD, , , 2
[CH341SER.CopyFiles.DLL]
CH341PT.DLL, , , 2
;安装DLL是可选的,DLL可以用于识别CH341端口和监视CH341端口的插拔事件
[CH341SER.CopyFiles.DLLA64]
CH341PT.DLL, , , 2
;安装DLL是可选的,DLL可以用于识别CH341端口和监视CH341端口的插拔事件
[CH341SER.9X.AddReg]
HKR, , DevLoader, , *NTKERN
HKR, , NTMPDriver, , CH341S98.SYS
[CH341SER.NT.AddReg]
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[CH341SER.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"
;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉
[CH341S98.9X.AddReg]
HKR, , DevLoader, , *vcomm
HKR, , PortDriver, , CH341SER.VXD
HKR, , Contention, , *vcd
HKR, , ConfigDialog, , serialui.dll
HKR, , DCB, 3, 1C,00,00,00, 80,25,00,00, 11,00,00,00, 00,00,0A,00, 0A,00,08,00, 00,11,13,00, 00,00,00,00
HKR, , PortSubClass, 1, 01
HKR, , EnumPropPages, , "serialui.dll,EnumPropPages"
HKR, , Enumerator, , serenum.vxd
;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉
[CH341SER.AddReg]
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, WDM, 0x00010001, 0x00000032
HKLM, SOFTWARE\WinChipHead\IC\CH341PORT, DLL, 0x00010001, 0x00000010
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, Function, , "USB=>Serial"
;HKLM, SYSTEM\CurrentControlSet\Services\CH341SER, UserRemoval, 0x00010001, 0x00000001
;上面这行用于在系统托盘中显示“安全删除USB转SERIAL硬件设备”便于用户手工删除硬件
[CH341S98.AddReg]
HKLM, SOFTWARE\WinChipHead\IC\CH341SER, VXD, 0x00010001, 0x00000023
[CH341SER_Install.NT.Services]
AddService = CH341SER, 2, CH341SER.Service
AddService = Serenum, , Serenum_Service_Inst
[CH341SER_Inst.NTamd64.Services]
AddService = CH341SER_A64, 2, CH341SER.ServiceA64
AddService = Serenum, , Serenum_Service_Inst
[CH341SER.Service]
DisplayName = "CH341SER"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %10%\System32\Drivers\CH341SER.SYS
[CH341SER.ServiceA64]
DisplayName = "CH341SER_A64"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %10%\System32\Drivers\CH341S64.SYS
[Serenum_Service_Inst]
DisplayName = "SerEnum"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\serenum.sys
LoadOrderGroup = PNP Filter
[DestinationDirs]
DefaultDestDir = 10, System32\Drivers
CH341S98.DelFiles.SYS = 11
CH341SER.CopyFiles.SYS = 10, System32\Drivers
CH341SER.NT.CopyFiles.SYS = 10, System32\Drivers
CH341S98.CopyFiles.VXD = 11
CH341SER.CopyFiles.DLL = 11
CH341SER.CopyFiles.DLLA64 = 10, Syswow64
CH341SER.NT.CopyFiles.SYSA64 = 10, System32\Drivers
[SourceDisksFiles]
CH341SER.SYS = 1
CH341S98.SYS = 1
CH341SER.VXD = 1
CH341PT.DLL = 1
CH341S64.SYS = 1
[SourceDisksNames]
1 = %DISK_NAME%, , ,
[SourceDisksNames.amd64]
1 = %DISK_NAME%, , ,
[Strings]
WinChipHead = "wch.cn"
CH341SER.DeviceDesc = "USB-SERIAL CH341"
CH341S98.DeviceDesc = "USB-SERIAL CH341"
CH340SER.DeviceDesc = "USB-SERIAL CH340"
CH341ASER.DeviceDesc = "USB-SERIAL CH341A"
DISK_NAME = "CH341 Serial Installation Disk"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,55 @@
Attribute VB_Name = "CH341PTDLL"
' 2005.07.28
'****************************************
'** Copyright (C) W.ch 1999-2005 **
'** Web: http:'www.winchiphead.com **
'****************************************
'** DLL for USB interface chip CH341 **
'** C, VC5.0 **
'****************************************
'
' USB总线接口芯片CH341端口应用层接口库 V1.0
' 南京沁恒电子有限公司 作者: W.ch 2005.07
' CH341-Port-DLL V1.0
' 运行环境: Windows 98/ME, Windows 2000/XP
' support USB chip: CH341, CH341A
' USB => Serial, Parallel
'
Public Const MAX_DEVICE_PATH_SIZE = 128 ' 设备名称的最大字符数
Public Const MAX_DEVICE_ID_SIZE = 64 ' 设备ID的最大字符数
Declare Function CH341PtGetVersion Lib "CH341PT.DLL" () As Long ' 获得DLL版本号,返回版本号
Declare Function CH341PtHandleIsCH341 Lib "CH341PT.DLL" (ByVal iPortHandle As Long) As Boolean ' 指定已经打开的端口句柄
' CH341PtHandleIsCH341 检查已经打开的端口是否为CH341端口
' iPortHandle ' 指定已经打开的端口句柄
Declare Function CH341PtNameIsCH341 Lib "CH341PT.DLL" (ByVal iPortName As String) As Boolean
' CH341PtNameIsCH341 检查指定名称的端口是否为CH341端口
' iPortName 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开)
' 端口设备事件通知回调程序
' sub mPCH341PT_NOTIFY_ROUTINE (byval iDevIndexAndEvent as long) ' 端口设备序号和事件及当前状态(参考下行说明)
' iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255)
Declare Function CH341PtSetDevNotify Lib "CH341PT.DLL" (ByVal iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean ' 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
' CH341PtSetDevNotify 设定端口设备事件通知程序
' iDeviceID, 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM"
' iNotifyRoutine 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
'/* 即插即用设备的应用程序编程参考
'1. 主程序启动默认是禁止数据传输的只有在确定有CH341端口可用并且打开端口后才进行数据传输
'2. 调用CH341PtSetDevNotify设置插拔监视如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数
'3. 从端口1到端口255正常到20即可逐个调用CH341PtNameIsCH341确定是否为CH341端口如果返回是则记忆其端口号并打开后开始传输如果返回否则休息
'4. 如果iNotifyRoutine收到事件通知那么可以在保存事件参数后通知主程序处理也可以在该子程序中处理
' 分析事件参数如果是正数则说明有一个端口插入需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口是则记忆其端口号并打开后开始传输
' 如果是负数则说明有一个端口拔出判断其端口号用0减去该负数得端口号是否与记忆的已打开的端口号相同是则应该及时关闭
'5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输
'6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口那么在端口已经打开后也可以调用CH341PtHandleIsCH341判断是否为CH341端口
'*/

View File

@@ -0,0 +1,67 @@
// 2005.07.28
//****************************************
//** Copyright (C) W.ch 1999-2005 **
//** Web: http://www.winchiphead.com **
//****************************************
//** DLL for USB interface chip CH341 **
//** C, VC5.0 **
//****************************************
//
// USB总线接口芯片CH341端口应用层接口库 V1.0
// 南京沁恒电子有限公司 作者: W.ch 2005.07
// CH341-Port-DLL V1.0
// 运行环境: Windows 98/ME, Windows 2000/XP
// support USB chip: CH341, CH341A
// USB => Serial, Parallel
//
#ifndef _CH341_PORT_H
#define _CH341_PORT_H
#ifdef __cplusplus
extern "C" {
#endif
#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数
#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数
ULONG WINAPI CH341PtGetVersion( ); // 获得DLL版本号,返回版本号
BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口
HANDLE iPortHandle ); // 指定已经打开的端口句柄
BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口
PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开)
typedef VOID ( CALLBACK * mPCH341PT_NOTIFY_ROUTINE ) ( // 端口设备事件通知回调程序
LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明)
// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255)
BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序
PCHAR iDeviceID, // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM"
mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
/* 即插即用设备的应用程序编程参考
1. 主程序启动默认是禁止数据传输的只有在确定有CH341端口可用并且打开端口后才进行数据传输
2. 调用CH341PtSetDevNotify设置插拔监视如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数
3. 从端口1到端口255正常到20即可逐个调用CH341PtNameIsCH341确定是否为CH341端口如果返回是则记忆其端口号并打开后开始传输如果返回否则休息
4. 如果iNotifyRoutine收到事件通知那么可以在保存事件参数后通知主程序处理也可以在该子程序中处理
分析事件参数如果是正数则说明有一个端口插入需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口是则记忆其端口号并打开后开始传输
如果是负数则说明有一个端口拔出判断其端口号用0减去该负数得端口号是否与记忆的已打开的端口号相同是则应该及时关闭
5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输
6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口那么在端口已经打开后也可以调用CH341PtHandleIsCH341判断是否为CH341端口
*/
#ifdef __cplusplus
}
#endif
#endif // _CH341_PORT_H

Binary file not shown.

View File

@@ -0,0 +1,59 @@
unit CH341PTDLL;
interface
// 2005.07.28
//****************************************
//** Copyright (C) W.ch 1999-2005 **
//** Web: http://www.winchiphead.com **
//****************************************
//** DLL for USB interface chip CH341 **
//** C, VC5.0 **
//****************************************
//
// USB总线接口芯片CH341端口应用层接口库 V1.0
// 南京沁恒电子有限公司 作者: W.ch 2005.07
// CH341-Port-DLL V1.0
// 运行环境: Windows 98/ME, Windows 2000/XP
// support USB chip: CH341, CH341A
// USB => Serial, Parallel
//
const MAX_DEVICE_PATH_SIZE = 128 ; // 设备名称的最大字符数
MAX_DEVICE_ID_SIZE= 64 ; // 设备ID的最大字符数
Function CH341PtGetVersion( ):cardinal;stdcall; external 'CH341PT.DLL'; // 获得DLL版本号,返回版本号
Function CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口
iPortHandle:cardinal ):boolean;stdcall; external 'CH341PT.DLL'; // 指定已经打开的端口句柄
Function CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口
iPortName:PCHAR ):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开)
type mPCH341PT_NOTIFY_ROUTINE=Procedure ( // 端口设备事件通知回调程序
iDevIndexAndEvent:integer );stdcall; // 端口设备序号和事件及当前状态(参考下行说明)
// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255)
Function CH341PtSetDevNotify( // 设定端口设备事件通知程序
iDeviceID:PCHAR; // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM"
iNotifyRoutine:mPCH341PT_NOTIFY_ROUTINE):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
{/* 即插即用设备的应用程序编程参考
1. 主程序启动默认是禁止数据传输的只有在确定有CH341端口可用并且打开端口后才进行数据传输
2. 调用CH341PtSetDevNotify设置插拔监视如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数
3. 从端口1到端口255正常到20即可逐个调用CH341PtNameIsCH341确定是否为CH341端口如果返回是则记忆其端口号并打开后开始传输如果返回否则休息
4. 如果iNotifyRoutine收到事件通知那么可以在保存事件参数后通知主程序处理也可以在该子程序中处理
分析事件参数如果是正数则说明有一个端口插入需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口是则记忆其端口号并打开后开始传输
如果是负数则说明有一个端口拔出判断其端口号用0减去该负数得端口号是否与记忆的已打开的端口号相同是则应该及时关闭
5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输
6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口那么在端口已经打开后也可以调用CH341PtHandleIsCH341判断是否为CH341端口
*/}
implementation
end.

View File

@@ -0,0 +1,195 @@
CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux提供相关驱动程序
CH341的USB转串口支持大多数常用的串口监控及调试工具程序。
驱动安装方法:
1. 标准INF文件安装方法
WINDOWS提示找到新硬件指定驱动程序所在目录DRIVER自动安装驱动
如果WINDOWS没有提示找到新硬件那么在设备管理器的硬件列表中
选择带问号的USB设备更新驱动程序并指定目录。
2. 使用驱动程序安装工具
直接使用CH341SER.EXE安装包可以安装/升级/卸载驱动程序,
该方法更适用于最终用户。
CH341串口使用方法
CH341实现USB转串口在逻辑功能方面的使用方法与普通计算机串口相同。
与普通计算机串口的区别:
CH341提供的是仿真串口所以不支持串口本身的纯硬件操作例如I/O操作
普通计算机串口是静态设备而CH341串口是动态设备理论上随时会断开
CH341的附加功能下面有介绍读取外部串行EEPROM支持更高波特率。
提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”,
打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。
注意事项:
CH341串口是即插即用的USB设备正在使用CH341串口进行数据传输的过程中
不可以将其断开断开是指从USB插座中取出CH341或者关闭CH341的电源
也就是说必须在应用程序关闭该串口后CH341串口才可以从USB插座中拔出。
如果在应用程序使用CH341串口的过程中CH341串口设备从USB插座中断开
那么应用程序应该尽快关闭CH341串口并退出关闭及退出可能需要数秒时间
如果在CH341串口通讯过程中发生错误极有可能是CH341串口已经物理断开
所以在检测到错误后建议关闭CH341串口稍等两秒后再重新打开串口通讯。
采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开
从而使串口应用程序能够及时打开和关闭CH341串口。
串口动态链接库CH341PT.DLL提供了API可以监视CH341串口插拔事件
可以搜索和识别CH341串口等具体需参考CH341PT.H文件。
如果通讯波特率较高建议设置较大的缓冲区尤其在WINDOWS 98/ME下
线程调度能力和USB实时性都比WINDOWS 2000/XP差如果串口接收缓冲区较小
那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。
由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输
所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至
两个USB帧中在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。
*******************************************************************************
如果需要速率控制流控制建议不要使用MODEM信号控制因为其效率较低
建议用CH341的TEN#和RDY#实现纯硬件的速率控制其中TEN#为输入RDY#为输出,
当TEN#输入为低电平时允许CH341从串口发送数据高电平时CH341将暂停发送数据
当RDY#输出为低电平时说明CH341可以接收串口数据高电平说明CH341正忙而不能接收。
如果计算机及单片机不忙或者波特率在115200bps以下时通常不需要速率控制
如果波特率再高或者计算机及单片机较忙才需要考虑采用TEN#和RDY#进行速率控制。
CH341用于串口时其硬件最简单时只需要三根线GNDTXDRXD
可以直接与单片机相连波特率支持从50bps到2Mbps例如MCS51单片机
CH341引脚 MCS51单片机引脚
GND <=> GND
TXD <=> RXD
RXD <=> TXD
TEN接GND
与单片机相连时通常将CH341的TEN#引脚直接接地总是允许CH341发送数据
如果预算单片机可能会来不及接收串口数据那么应该将TEN#连接到单片机的I/O引脚
当单片机不忙时由单片机将CH341的TEN#置为低电平允许CH341从串口发出数据
当单片机较忙时由单片机将CH341的TEN#置为高电平CH341将暂停从串口发出数据
CH341的TNOW引脚是收发状态可以用于半双工通讯的收发切换例如RS485的收发切换。
*******************************************************************************
如何识别CH341串口如何知道CH341的串口号COM?
在首次安装CH341串口驱动时CH341串口号由WINDOWS自动分配通常从COM3开始分配
安装完成后可以在设备管理中点其属性修改串口号。由于应用程序事先无法知道CH341的
实际串口号所以必须使用一些特殊方法识别出CH341串口然后才能使用。
在WINDOWS 98/ME系统下CH341串口号与当前硬件资源配置有关默认为自动分配资源
从而排在当前实际串口号之后可以在串口属性中选择CH341资源配置来指定串口号。
在WINDOWS 2000/XP系统下CH341串口号与当前所在USB端口有关由首次安装时分配
WINDOWS记忆各USB端口CH341的串口号可以在串口属性中通过高级选项指定串口号。
比较简单但很费事的方法是在首次安装CH341串口后用程序修改注册表或者点其属性
人为将CH341的串口号修改为COM5避开常用的COM1到COM4该方法简单但是有可能冲突。
常规的识别方法是采用软件查询方法:
尝试以串口名称逐个打开打开成功后通过该串口收发特殊字符串识别CH341串口
该方法是从“COM1”开始接着“COM2”逐个尝试打开串口。如果某个串口打开成功
那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”如果在约200毫秒之内
收到应答字符“W”那么该串口就是当前已经连接的CH341串口。软件设计方法是
从COM1开始依次打开每个串口如果打开串口失败则跳过串口不存在或正在使用
如果打开成功则设置该串口波特率为300然后向该串口写入ASCII字符串"$CH341Ser?"
注意大小写共10个字符一次写入如果该串口是普通串口那么通常没有任何返回
如果该串口是CH341串口那么应用程序将能接收到一个ASCII字符"W"以此识别CH341。
例如,用串口监控/调试工具软件演示:
将串口的波特率选择为300bps有些工具软件在选择波特率后必须重新打开串口
发出特征字符串为10个ASCII码数据 $CH341Ser?
发送成功后普通串口没有返回而CH341串口将返回1个ASCII码 W
建议使用CH341PT.DLL动态库应用程序可以直接调用DLL中相应的API识别CH341串口
识别速度快效率高。注意CH341PT.DLL在INF中定义为可选安装默认是安装的
*******************************************************************************
关于读取外部串行EEPROM
CH341可以外接I2C接口的器件例如常用的24系列串行非易失存储器EEPROM
支持24C01A24C0224C0424C0824C16等以及与之时序兼容的器件
24系列EEPROM既可以用于配置CH341也可以用于断电期间保存重要数据。
例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等。
如果需要支持24C64、24C256、24C512以及更大容量的EEPROM请参考CH341评估板资料。
应用程序可以按串口方式读写CH341所连接的24系列EEPROM方法是
设置CH341串口波特率为300然后以4字节为一组的命令包写串口
命令包的首字节必须是@地址符对应的十六进制数为40H
命令包的第二字节是24系列EEPROM的设备地址位0是方向标志0为写1为读
命令包的第三字节是24系列EEPROM的单元地址
命令包的第四字节是准备写入24系列EEPROM的一个数据如果是读操作则指定为00H
如果是写操作那么命令发送成功就说明写成功对于EEPROM还要延时10mS才能下一个操作
如果是读操作,那么命令发送成功后,可以从串口接收到一个字节的数据,就是读出的数据
例如CH341连接24C0XA2=A1=A0=GND将仿真串口的波特率选择为300bps
可以用串口监控/调试工具软件演示:
1、发出命令包为4个十六进制数据 40 A1 01 00
将24C0X中地址为01H的数据读出可以从串口接收到一个字节的数据
2、发出命令包为4个十六进制数据 40 A0 2A 69
将一个字节的数据69H写到24C0X中地址为2AH的单元通常等待10mS后才能进行下一个操作
3、发出命令包为4个十六进制数据 40 A5 E7 00
将24C0X中地址为02E7H的数据读出可以从串口接收到一个字节的数据
注意只有24C08和24C16中有地址为02E7H的数据单元
*******************************************************************************
关于支持非标准波特率或者更高通讯波特率
对于一些非标准波特率或者常规方法无法设置的高速波持率CH341驱动程序提供特殊方法
应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率方法是
设置CH341串口波特率为300然后以ASCII码字符串的命令包写串口
命令包的首字节必须是#井字符对应的十六进制数为23H
命令包的中间为不超过7个数字表示的波特率例如字符串9600或者921600等
命令包的尾字节必须是_下划线对应的十六进制数为5FH
也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间作为一个命令包
在300bps下发送到CH341的串口那么将被CH341驱动程序解释为修改CH341的波特率
而不会被作为数据从串口真正发出,当该操作成功返回后,
CH341实际工作于指定的新波特率当然计算机系统及串口控件仍然以为是工作于300bps
如果需要再次以这种方法改变波特率那么首先要用常规方法将CH341的波特率置为300bps。
例如,用串口监控/调试工具软件演示:
1、将CH341串口的波特率选择为300bps有些工具软件在选择波特率后必须重新打开串口
发出字符串命令包为6个ASCII码数据 #9600_
发送成功后CH341将实际工作于9600bps
2、将CH341串口的波特率选择为300bps有些工具软件在选择波特率后必须重新打开串口
发出字符串命令包为8个ASCII码数据 #460800_
发送成功后CH341将实际工作于460800bps
3、将CH341串口的波特率选择为300bps有些工具软件在选择波特率后必须重新打开串口
发出字符串命令包为9个ASCII码数据 #1000000_
发送成功后CH341将实际工作于1000000bps
CH341串口支持50bps到2Mbps的波特率当应用程序请求CH341改变串口通讯波特率时
CH341驱动程序将波特率换算为波特率除数然后修改CH341芯片内部的波特率除数寄存器
所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器
由于CH341内部的串口基准位时钟为48/8=6MHz或12MHz并且波特率除数只支持整数
所以在指定波特率时应该考虑实际换算误差在波特率大于19200bps时的计算方法是
X = 6000000 除以波特率后的值
Y = X 四舍五入后的值
误差 = ( Y - X ) / X
以下为CH341支持的常用波特率未注明的基准位时钟为6MHz未注明的误差小于0.16%
921600 (12MHz), 460800, 307200 (12MHz),
230400, 153600, 128000 (0.27%), 115200,
76800, 57600, 56000, 38400, 33600,
28800, 19200, 14400, 9600, 7200,
4800, 3600, 2400, 1800, 1200,
900, 600, 300, 150, 134.5,
110, 100, 75, 50, 2000000,
1500000, 1200000, 1000000, 750000, 500000,
375000, 250000, 200000, 187500, 100000,
93750, 75000, 50000, 25000, 10000
其它波特率只要误差小于2.5%CH341都可以支持计算误差时要考虑两端的误差之和。
但是为了可靠进行通讯建议不要使用误差大于1%的波特率。
*******************************************************************************
USB设备驱动程序与仿真串口驱动程序
CH341串口硬件的默认驱动程序是仿真串口驱动程序
即在计算机端多出一个串口并且在下位机端CH341芯片也使用串口通讯。
计算机端应用程序通过操作仿真串口实现USB数据传输其用法与普通串口相同。
如果不希望在计算机端仿真为串口那么可以使用USB设备驱动程序
即在计算机端多出一个USB设备但是在下位机端CH341芯片仍然使用串口通讯。
计算机端应用程序通过调用DLL提供的API实现USB数据传输,
其用法与CH341并口、CH372、CH375类似可以参考相关的应用程序的源程序。
CH341串口硬件的USB设备驱动与并口硬件的USB设备驱动CH341PAR完全相同
区别仅在于驱动安装信息文件INF中的PID不同参考CH341PAR的INF中的注释行说明
*******************************************************************************

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,5 @@
Gonilnik CH341S64.SYS skopiraš v mapo C:\Windows\System32\drivers
serenum.sys skopiraš v mapo C:\Windows\System32\drivers
preverjeno na windows 10 Enterprise in Windows 8.1 Enterprise - deluje!
Windows sam najde driverje na netu.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Esplorer/lib/jssc.jar Normal file

Binary file not shown.

Binary file not shown.

3
Esplorer/version.txt Normal file
View File

@@ -0,0 +1,3 @@
ESPlorer v0.2.0-rc6
Home page http://esp8266.ru/esplorer
Latest version download http://esp8266.ru/esplorer#download

20
autoloader Normal file
View File

@@ -0,0 +1,20 @@
#simpleloader.py
#waits 5 seconds for gpio12 to go low
#if it doesn't, loads autoload.py
#install it as main.py
import machine
import sys
import time
print('Press GPIO12 to exit to console in 5 secs')
flag=0
pin12=machine.Pin(12, machine.Pin.IN)
def console(x):
global flag
flag=1
pin12.irq(console, machine.Pin.IRQ_FALLING)
time.sleep(5)
if flag==0:
print('Loading autoload.py...')
else:
print('Exiting to console')

186
avtomatski.py Normal file
View File

@@ -0,0 +1,186 @@
import machine
from machine import Pin, ADC
import DS18B20 as dsb
import time
import ne555 as ne
import math
import display
import sys
import network as net
def dane(vpr='Potrdi(d/n)->'):
str=input(vpr)
if str=='d':
return True
else:
return False
try:
display.init()
from display import oled
except:
print('Napaka OLED!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('OLED deluje!',0,0)
oled.show()
#Offline firmware za Vremensko postajo PTIT FE 2017
try:
svet=ADC(0) #svetloba
pin12=tipka=Pin(12, Pin.IN, Pin.PULL_UP) #tipka
pin13=statusled=Pin(13, Pin.OUT) #status LED
pin15=alertled=Pin(15, Pin.OUT ) #alert LED
except:
print('Napaka I/O!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('I/O postavljen!',0,10)
oled.show()
try:
dsb.setup(0)
except:
print('Napaka Temp. senzorja!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('TS postavljen!',0,20)
oled.show()
time.sleep(1)
oled.fill(0)
oled.text('<-------------->', 0, 15)
oled.text('<NodeMCU Senzor>', 0, 25)
oled.text('<-------------->', 0, 35)
oled.text(' !Pozdravljeni! ', 0, 50)
oled.show()
time.sleep_ms(750)
oled.fill(0)
oled.text('Tipka menja',0,0)
oled.text('casovne razmike',0,10)
oled.text('med meritvami',0,20)
oled.text('0.25/0.5/1/2/10s',0,30)
oled.text('7x tipka=izhod',0,40)
oled.show()
time.sleep(4)
oled.fill(0)
oled.show()
statusled.value(1)
alertled.value(0)
def konec(p):
exit=1
sleeptime=15
count=0
vlaga=0
temp=0
svetloba=0
ms=sleeptime*1000
def updatescreen():
global vlaga, temp, svetloba, sleeptime
oled.fill(0)
oled.text('T: ' + str(temp) + 'C',15,10)
oled.text('S: ' + str(svetloba) + ' enot',15,20)
oled.text('RH: ' + str(vlaga) +' Hz', 15, 30)
oled.text('NodeMCU Senzor',0,0)
oled.text('Uptime: ' + str(time.time()) + 's',5,45)
oled.text('S: ' + str(ms/1000) + 's',0,55)
oled.show()
active=0
def carefulsleep():
startticks=time.ticks_ms()
global ms, active, lasttick, firsttick, exit
while time.ticks_diff(time.ticks_ms(), startticks)<ms:
updatescreen()
if not tipka.value():
if firsttick==0:
active=1
firsttick=time.ticks_ms()
lasttick=time.ticks_ms()
if time.ticks_diff(lasttick, firsttick)>3000 and active==1:
print('ttt')
exit=3
active=0
if time.ticks_diff(time.ticks_ms(), lasttick)>60 and active==1:
print("BING!")
lasttick=0
firsttick=0
active=0
setsleep(0)
print(lasttick, firsttick,time.ticks_diff(lasttick, firsttick))
def setsleep(x):
global ms
sleeptime=ms/1000
if sleeptime==15:
sleeptime=0.25
elif sleeptime==0.25:
sleeptime=0.5
elif sleeptime==0.5:
sleeptime=1
elif sleeptime==1:
sleeptime=2
elif sleeptime==2:
sleeptime=15
else:
sleeptime=15
time.sleep_ms(15)
ms=sleeptime*1000
#print('set to', sleeptime)
updatescreen()
#tipka.irq(trigger=Pin.IRQ_FALLING, handler=setsleep)
exit=0
temp=0
svetloba=0
def acq():
oled.text('BUSY...',70,55)
alertled.value(1)
oled.show()
global temp, vlaga, svetloba
try:
temp=dsb.read_temp()
except:
print('Napaka v branju temperature!')
temp='NAPAKA'
try:
svetloba=svet.read()
except:
print('Napaka v branju svetlobe!')
svetloba='NAPAKA'
try:
vlaga=ne.main()
except:
print('Napaka v branju vlage!')
vlaga='NAPAKA'
alertled.value(0)
lasttick=0
firsttick=0
while exit<1:
acq()
updatescreen()
carefulsleep()
oled.fill(0)
oled.text('<-------------->', 0, 15)
oled.text('<NodeMCU Senzor>', 0, 25)
oled.text('<-------------->', 0, 35)
oled.text(' !Nasvidenje! ', 0, 50)
time.sleep(1.5)
oled.show()
oled.fill(0)
oled.show()
oled.poweroff()

View File

@@ -0,0 +1,10 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
module.exports = function (grunt) {
// Project configuration.
grunt.initConfig({
});
};

View File

@@ -0,0 +1,12 @@
{
"name": "NodeMCU_Postaja",
"version": "1.0.0",
"main": "path/to/main.css",
"ignore": [
".jshintrc", "**/*.txt"
],
"dependencies": {
},
"devDependencies": {
}
}

View File

@@ -0,0 +1,11 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
var gulp = require('gulp');
gulp.task('default', function () {
// place code for your default task here
});

View File

@@ -0,0 +1 @@
browser=Chrome.INTEGRATED

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/Users/Vaje/Desktop/nodemcu-postaja/NodeMCU%20Postaja/public_html/index.html</file>
</group>
</open-files>
</project-private>

View File

@@ -0,0 +1,5 @@
file.reference.NodeMCU_Postaja-public_html=public_html
file.reference.NodeMCU_Postaja-test=test
files.encoding=UTF-8
site.root.folder=${file.reference.NodeMCU_Postaja-public_html}
test.folder=${file.reference.NodeMCU_Postaja-test}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.web.clientproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/clientside-project/1">
<name>NodeMCU Postaja</name>
</data>
</configuration>
</project>

View File

@@ -0,0 +1,8 @@
{
"name": "NodeMCU_Postaja",
"version": "1.0.0",
"keywords": ["util", "functional", "server", "client", "browser"],
"author": "Vaje",
"contributors": [],
"dependencies": {}
}

View File

@@ -0,0 +1,218 @@
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>NodeMCU Postaja</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<style>
.knof_sim {
cursor : pointer;
text-align: center;
font-weight: bold;
padding: 5px;
}
#celota {
display : flex;
}
#linki, #funkcije {
flex : 1;
}
#vsebina {
flex : 5;
}
table, td, #grafi {
border: 1px solid;
}
#sensors {
display : flex;
}
#gauge_temp,#gauge_lux,#gauge_vlaga {
text-align: center;
margin: auto;
}
#chart_div{
text-align: center;
margin: auto;
}
body {
background-color: #333333;
color: deepskyblue;
}
#intro {
font-size: 28px;
font-family: sans-serif;
}
</style>
<script type="text/javascript">
google.charts.load('current', {'packages': ['gauge', 'corechart']});
google.charts.setOnLoadCallback(initGraph);
var options_temp = {
width: 100, height: 120,
redFrom: 25, redTo: 60,
yellowFrom: 10, yellowTo: 25,
greenFrom: 0, greenTo: 10,
minorTicks: 5,
min: 0, max: 100
};
var options_vlaga = {
width: 100, height: 120,
redFrom: 70, redTo: 100,
yellowFrom: 30, yellowTo: 70,
greenFrom: 0, greenTo: 30,
minorTicks: 5,
min: 200, max: 1300
};
var options_lux = {
width: 100, height: 120,
redFrom: 9000, redTo: 10000,
greenFrom: 0, greenTo: 1000,
minorTicks: 5,
min: 0, max: 1023
};
var options2 = {
title: 'Vrednosti senzorjev',
curveType: 'function',
min: 0,
legend: {position: 'bottom'},
series: {
0: {color: 'blue'},
1: {color: 'red'},
2: {color: 'green'}
}
};
var maxPoints = 250;
function initGraph() {
data1 = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Temperatura', 80]
]);
data2 = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Vlaga', 30]
]);
data3 = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Osvetljenost', 50]
]);
combo = new google.visualization.DataTable();
combo.addColumn('date', 'Čas');
combo.addColumn('number', 'Temperatura');
combo.addColumn('number', 'Vlaga');
combo.addColumn('number', 'Osvetljenost');
pogled = new google.visualization.DataView(combo);
chart1 = new google.visualization.Gauge($("#gauge_vlaga")[0]);
chart2 = new google.visualization.Gauge($("#gauge_temp")[0]);
chart3 = new google.visualization.Gauge($("#gauge_lux")[0]);
chart4 = new google.visualization.LineChart(document.getElementById('chart_div'));
chart1.draw(data1, options_temp);
chart2.draw(data2, options_vlaga);
chart3.draw(data3, options_lux);
chart4.draw(pogled, options2);
updateChart();
}
function updateChart() {
setInterval(function () {
while (combo.getNumberOfRows() > maxPoints)
{
combo.removeRow(0);
}
remoteVal();
}, 500);
}
function remoteVal() {
$.get("http://192.168.2.97/", function (dataz) { //tukaj namesto sensor.php napiši lokacijo kam naj se pošlje request
podatki = dataz;
dataz = JSON.parse(dataz);
var tmp1 = dataz.temp;
var tmp2 = dataz.mois/10;
var tmp3 = dataz.light/10;
combo.addRow([new Date(), tmp1, tmp2, tmp3]);
data1.setValue(0, 1, tmp1);
data2.setValue(0, 1, tmp2);
data3.setValue(0, 1, tmp3);
chart1.draw(data1, options_temp);
chart2.draw(data2, options_vlaga);
chart3.draw(data3, options_lux);
chart4.draw(pogled, options2);
}, "text");
}
</script>
<script>
function kaziStevec() {
$("#gauge_temp,#gauge_lux,#gauge_vlaga").toggle();
}
function kaziGraf() {
$("#chart_div").toggle();
}
function skrijSerijo(x) {
pogled.hideColumns([x]);
}
function resetPogled() {
pogled.setColumns([0, 1, 2, 3]);
}
</script>
</head>
<body>
<div id="celota">
<div id="linki"></div>
<div id="vsebina">
<div id="intro">
<big><b>Pozdravljeni!</b></big><br> <marquee>To je stran moje senzorske postaje. Deluje s pomočjo NodeMCU in večih senzorjev.
Poganja jo micropython. Postaja meri temperaturo, vlago in svetlobo.</marquee>
</div>
<div id="grafi">
<div id="sensors">
<div id="gauge_vlaga"></div>
<div id="gauge_temp"></div>
<div id="gauge_lux"></div>
<div id="chart_div"></div>
</div>
</div>
</div>
<div id="funkcije">
Skrij/Prikaži vrednosti
Skrij/Prikaži zogodivno
Skrij temperaturo
Skrij vlago
Skrij tlak
Vrni vrednosti
</div>
</div>
</body>
</html>