Beijer ELECTRONICS SER0011 X2 Panel Application Connects to a FTP Server User Guide
- June 8, 2024
- Beijer ELECTRONICS
Table of Contents
- Beijer ELECTRONICS SER0011 X2 Panel Application Connects to a FTP Server
- Function and area of use
- About this document
- Adjusting the project
- Add additional controls
- Add Control
- Migration
- Tags
- Example screen
- About Beijer Electronics
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
Beijer ELECTRONICS SER0011 X2 Panel Application Connects to a FTP Server
FTP Client over OpenNETCF FTP Library
SER0011 – X2 panel application connects to a FTP server
Function and area of use
- This document provides guidelines when working with Sample_FTPClient.
- This document explains how to use the third-party library OpenNETCF.Net.Ftp.dll to connect to a FTP server. It implements connect, disconnect, create a directory, delete a directory, change the working directory, upload a file, download a file, rename a file on the server, get file list, etc. You can get the Connected, Disconnected, CommandSent, and ResponseReceived events to handle your business logic
About this document
This quick start document should not be considered as a complete manual. It is an aid to be able to startup a normal application quickly and easily
Copyright © Beijer Electronics, 2021
This documentation (below referred to as ‘the material’) is the property of Beijer Electronics. The holder or user has a non-exclusive right to use the material. The holder is not allowed to distribute the material to anyone outside his/her organization except in cases where the material is part of a system that is supplied by the holder to his/her customer. The material may only be used with products or software supplied by Beijer Electronics. Beijer Electronics assumes no responsibility for any defects in the material, or for any consequences that might arise from the use of the material. It is the responsibility of the holder to ensure that any systems, for whatever applications, which is based on or includes the material (whether in its entirety or in parts), meets the expected properties or functional requirements. Beijer Electronics has no obligation to supply the holder with updated versions.
Use the following hardware, software, drivers and utilities in order to obtain a stable application:
In this document we have used following software and hardware
- iX Developer 2.4 SP5/SP6
- All X2 panels and PC Runtime
For further information refer to
- Beijer Electronics knowledge database, HelpOnline
This document and other quick start documents can be obtained from our
homepage.
Please use the address support.europe@beijerelectronics.com for feedback
Source code
- The source code of the DLL used is distributed together with the sample project.
- The OpenNETCF.Net.Ftp.dll Library is an open source project compiled for NET Compact Framework 3.5.
- As we extended the BeginConnect Method of the DLL it is mandatory to use this version of the DLL – at least if you want to use the additional “Command Delay” property (for adjusting e.g. low-speed connections or connections between slower devices).
Adjusting the project
Command Delay
This is an additional parameter specified utilizing the 3rd overload of the BeginConnect method. Below one can see the BeginConnect method of the script module “FTPAdapter”. For X2 devices running either WinCE6 or WinCE8 (WEC2013) the project is pre-configured to run with a Command Delay of 250ms, for non-CE devices no 3rd parameter is specified the default 100ms delay is used.
FTP server specific adjustments
In multiple methods you have the possibility to adjust the script code to react properly to what the FTP server responses. One example is the “_ftp_ResponseReceived” method where one can adjust e.g. what the server responses after a directory change.
Active FTP vs. Passive FTP
- The FTP protocol has 2 modes, PORT (also called “regular” or “normal” mode) and PASV (“passive” mode). The FTP client determines the mode that will be used. If the client issues a PORT command, it is attempting “PORT” mode. If the client issues a PASV command, it is attempting “PASV” mode.
- PASV mode forces the client-server data connection to be established by the client, rather than the server (which is the default). PASV mode is required for users who are behind a router-based firewall.
Details:
In PORT and PASV mode the FTP session uses two port numbers.
The first port number is allocated on the server (default: port 21). This is
referred to as the “Control or Command Channel”.
If the client sends a PORT command, which contains the client IP address and
(the second) allocated port number.
Then the FTP server connects to this port to send the data (referred to as the
“Data Channel”).
Client : PORT 127,0,0,1,12,82
Server : 200 Port command successful.
If the client sends a PASV command, then the FTP server responds back to the
client with a port number that it has allocated.
In this case the “Data Channel” connection is created by the client to the IP
Address and port number provided by the FTP server.
Client : PASV
Server: 227 Entering Passive Mode (127,0,0,1,12,251)
Also checkout the below website for more information about PASV and PORT mode.
http://slacksite.com/other/ftp.html
Add additional controls
Before you could open this sample successfully, you need to add WinForms controls that are used by the “FTPClientDemoScreen” demonstration. The controls should be added as follows:
- ListView (System.Windows.Forms)
- TextBox (System.Windows.Forms)
Add Control
The following description shows how to add additional controls.
“Home” → “View All Objects” of “Object” → “Add Control” of “Additional
Controls” → check controls as desired → “OK”
Migration
Add reference
“Project” → “Referenced Assemblies” → “Add” → browse to and select the assembly “OpenNETCF.Net.Ftp.dll” → “OK” Open your iX project and click the “Referenced Assemblies” on the “Project” tab to add the reference.
Add a ScriptModule
“Insert” → “Script Module” → “Rename” → input new name “FTPAdapter” → copy all
codes from the “FTPAdapter” of this sample & paste these codes on “FTPAdapter”
of your project → Hookup “FTPAdapter_Created” event handler with “Created”
event of the “FTPAdapter”script module You can utilize it to interact with an
FTP Server like the “FTPClientDemoScreen” demonstration
Insert a script module by clicking the “Script Module” on the “Insert” tab.
Rename the Script Module as desired.
A Script Module is a class in C# .NET. It would be used to create a singleon object while initialization processes of an iX application. All the objects created by you via iX Developer, i.e. not created by scripting, would be the properties of the Globals object. So you can use the “Globals” object name to get all these objects. For example, after inserting a Script Module with the name, ExampleScriptModule, and write a public method, ExampleMethod, you can use “Globals.ExampleScriptModule.ExampleMethod()” in scripting to call the method of it.
Tags
Mandatory Tag of FTPAdapter
Tag Name | Global Data Type | Description |
---|---|---|
FTPServerUri | STRING | Remote FTP server URI |
FTPServerPort | INT32 | Remote FTP server port number |
FTPIsConnected | BOOL | Indicate the connection status |
UserName | STRING | The account/user name is used to log in FTP server |
Password | STRING | The password is used to log in FTP server |
FTPServerType | STRING | Get the FTP server type (It would be updated |
after the connection established.)
FTPRemoteDirectory| STRING| Current working directory on FTP server (It
would be available after the connection established.)
Other tags are not necessary, they just are used to build the demonstrations. You can refer to the demos to find out how they work.
APIs
FTPAdapter class : Script Module
- Properties:**
Name| Data Type| Description
---|---|---
IsConnected| bool| Get the connection status
RemoteDirectory| string| The remote directory
TransferType| FTPTransferType| The transfer type: Binary or ASCII
BufferSize| int| Sets the size of the internal buffer used for FTP transfers. Default is 512 bytes
ConnectionTimeout| int| Timeout for FTP operations
ExceptionOnError| bool| When set, if an error is encountered while using the class instance, an exception will be thrown
ServerType**| FTPServerType| The remote server type: Unix-compliant server, Windows/IIS-compliant server or Unknown server type - Events:**
Name| Description
---|---
Connected| Triggered after the connection established
Disconnected| Triggered after the connection closed
CommandSent| Triggered after a command sent
ResponseReceived**| Triggered after a response received - Methods:**
Name| Return Data Type| Description
---|---|---
BeginConnect()| void| Connect to the FTP server using the supplied username and password
Disconnect()| void| Disconnect from the FTP server
ChangeDirectory( string directory)| void| Change the remote working directory
CreateDirectory( string directory)| void| Create a directory on the FTP server
DeleteDirectory( string directory)| void| Delete an empty directory from the FTP server
DeleteFile(string fileName)| void| Delete a file on the FTP server
EnumFiles()| FTPFiles| Get a list of the files in the current remote directory
GetFile(**
string remoteFileName, string localFileName, bool overwrite)
| void| Retrieves a file from the FTP server
GetFileList(bool detailed)| string| Retrieves the filelist string as
the FTP server sends it
RenameFile(
string currentFileName, string newFileName)
| void| Rename a file on the FTP server
SendCommand( string command)| bool| Send a generic or server-
specific command to the FTP server
SendFile(string localFilePath, string remoteFileName)| bool|
Send a file to the FTP server
Example screen
About Beijer Electronics
Beijer Electronics is a multinational, cross-industry innovator that connects
people and technologies to optimize processes for business-critical
applications. Our offer includes operator communication, automation solutions,
digitalization, display solutions and support. As experts in user-friendly
software, hardware and services for the Industrial Internet of Things, we
empower you to meet your challenges through leading-edge solutions. Beijer
Electronics is a Beijer Group company.
Since its start-up in 1981, BEIJER GROUP has evolved into a multinational
group with sales of 1.4 billion SEK 2020. BEIJER GROUP is listed on the NASDAQ
Stockholm Main Market under the ticker BELE.
www.beijergroup.com
Contact us
Global offices and distributors
References
- 大小单双口诀稳赚技巧
- Active FTP vs. Passive FTP, a Definitive Explanation
- Innovations in industrial digital technology | Ependion