<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to FILE.GetProperty</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/</id><updated>2020-02-27T14:15:34.924000Z</updated><subtitle>Recent posts to FILE.GetProperty</subtitle><entry><title>FILE.GetProperty</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/?limit=250#d9e9" rel="alternate"/><published>2020-02-27T14:15:34.924000Z</published><updated>2020-02-27T14:15:34.924000Z</updated><author><name>Hermsen</name><uri>https://forge.codesys.com/u/hermsen/</uri></author><id>https://forge.codesys.com2d39c0120eb93e41a0402912633b37414587cdc1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Thanks fo the anwser. Topic closed &lt;/p&gt;
&lt;p&gt;Ps. &lt;br/&gt;
I have no access to the bugtracker.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>FILE.GetProperty</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/?limit=25#0679" rel="alternate"/><published>2020-02-27T14:15:34.544000Z</published><updated>2020-02-27T14:15:34.544000Z</updated><author><name>e.kislov</name><uri>https://forge.codesys.com/u/e-kislov/</uri></author><id>https://forge.codesys.coma200c2a1c68cd4e52dfa1e718fbc0fdcf435df69</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi. Some info from CODESYS bug-tracker about CAA File:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;GetProperty: "This function will not be implemented, because the 3S CAA implementation should behave in teh same way on all plattforms and there is no need to retrieve implementation properties.&lt;br/&gt;
The function will be removed (or hidden) during the next rework of the CAA libs." (CDS-20219)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;FTP/HTTP - not implemented (CDS-2697 and etc.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</summary></entry><entry><title>FILE.GetProperty</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/f3d3f949dc/?limit=250#fd65" rel="alternate"/><published>2020-02-27T14:15:34.109000Z</published><updated>2020-02-27T14:15:34.109000Z</updated><author><name>Hermsen</name><uri>https://forge.codesys.com/u/hermsen/</uri></author><id>https://forge.codesys.comae90bf42d2cfc256b4c445a2c23dcbdd27dbd118</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Everybody,&lt;/p&gt;
&lt;p&gt;As I am writing my my own FileFactory Library. Therefore I want to check which functionalities the target runtime has.&lt;br/&gt;
That way the filefactory can "adapt" to the target which makes the library more flexible and more user friendly.&lt;br/&gt;
To achieve this, I have read into the CAA File library and the function FILE.GetProperty suits this purpose perfectly.&lt;br/&gt;
I linked "File Acces" 3.5.7.0, which depends on "CAA File" 3.5.11.0&lt;br/&gt;
According to the documentation, the function works very straightforward;&lt;/p&gt;
&lt;p&gt;Ouput (DWORD) := FILE.GetProperty( in := Input (WORD) );&lt;/p&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;p&gt;Input = List of global constants which act as question &lt;br/&gt;
Output = Anwser 0 or 1 (as DWORD) to input question&lt;br/&gt;
&lt;a class="" href="https://help.codesys.com/webapp/CAA-File%2FFunctions%2FGetProperty;product=CAA_FILE;version=3.5.11.0" rel="nofollow"&gt;https://help.codesys.com/webapp/CAA-File%2FFunctions%2FGetProperty;product=CAA_FILE;version=3.5.11.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To test this functionality i wrote a little testprogram to see if the function returns the targets capabilities;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;Insert&lt;/span&gt; &lt;span class="nv"&gt;File&lt;/span&gt; &lt;span class="nv"&gt;Access&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;Library&lt;/span&gt; &lt;span class="nv"&gt;Manager&lt;/span&gt;
&lt;span class="nv"&gt;PROGRAM&lt;/span&gt; &lt;span class="nv"&gt;GetProperty&lt;/span&gt;
    &lt;span class="nv"&gt;PDIRNAME&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A1 &lt;/span&gt;
    &lt;span class="nv"&gt;PRENAME&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A2 &lt;/span&gt;
    &lt;span class="nv"&gt;PCOPY&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A3 &lt;/span&gt;
    &lt;span class="nv"&gt;PSETATTRIBUTE&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A4 &lt;/span&gt;
    &lt;span class="nv"&gt;PFILENAME83&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A100 &lt;/span&gt;
    &lt;span class="nv"&gt;PCAPITALLETTERS&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; //A101 &lt;/span&gt;
    &lt;span class="nv"&gt;PABSOLUTEPATH&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A200 &lt;/span&gt;
    &lt;span class="nv"&gt;PDRIVELETTER&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A201 &lt;/span&gt;
   
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;several&lt;/span&gt; &lt;span class="nv"&gt;declarations&lt;/span&gt; &lt;span class="nv"&gt;missing&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;constants&lt;/span&gt; &lt;span class="nv"&gt;list&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;.&lt;span class="mi"&gt;5&lt;/span&gt;.&lt;span class="mi"&gt;11&lt;/span&gt;.&lt;span class="mi"&gt;0&lt;/span&gt; ?
    &lt;span class="nv"&gt;MIA210&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; //210&lt;/span&gt;
    &lt;span class="nv"&gt;MIA211&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;;//211&lt;/span&gt;
    &lt;span class="nv"&gt;MIA212&lt;/span&gt;  : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;;//212&lt;/span&gt;
    &lt;span class="nv"&gt;PNETWORKDRIVES&lt;/span&gt; : &lt;span class="nv"&gt;DWORD&lt;/span&gt;&lt;span class="c1"&gt;; // A300 &lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="k"&gt;DIRNAME&lt;/span&gt;       :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PDIRNAME&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;      //    Support of function block FILE_DirRename&lt;/span&gt;
&lt;span class="nv"&gt;PRENAME&lt;/span&gt;      :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PRENAME&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;      //   Support of function block FILE_Rename&lt;/span&gt;
&lt;span class="nv"&gt;PCOPY&lt;/span&gt;       :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PCOPY&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;         //   Support of function block FILE_Copy&lt;/span&gt;
&lt;span class="nv"&gt;PSETATTRIBUTE&lt;/span&gt;   :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PSETATTRIBUTE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   //   Support of function block FILE_SetAttribute&lt;/span&gt;
&lt;span class="nv"&gt;PFILENAME83&lt;/span&gt;    :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PFILENAME83&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;      //   Restriction of the directory and file names to 8.3 format&lt;/span&gt;
&lt;span class="nv"&gt;PCAPITALLETTERS&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PCAPITALLETTERS&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   //   Restriction on capital letters for directory and file names&lt;/span&gt;
&lt;span class="nv"&gt;PABSOLUTEPATH&lt;/span&gt;     :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PABSOLUTEPATH&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   //   Restriction on absolute path specification&lt;/span&gt;
&lt;span class="nv"&gt;PDRIVELETTER&lt;/span&gt;     :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PDRIVELETTER&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   //   Support of drive letters&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;missing&lt;/span&gt; &lt;span class="nv"&gt;constants&lt;/span&gt;?
&lt;span class="nv"&gt;MIA210&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;210&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; //Support of Resolver Syntax for file names&lt;/span&gt;
&lt;span class="nv"&gt;MIA211&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;211&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; //Support of FTP-Client functions&lt;/span&gt;
&lt;span class="nv"&gt;MIA212&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;212&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; //Support of Http-Client functions&lt;/span&gt;
&lt;span class="nv"&gt;PNETWORKDRIVES&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;GetProperty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;wProperty&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;gc_PNETWORKDRIVES&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;   //   &lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now, I ran this code on target x86 non RT, x64 non RT and RPi3, all v3.5.11.0, without ANY of the anwsers becoming "1" at runtime on all 3runtimes.&lt;/p&gt;
&lt;p&gt;I assume this cannot be correct behaviour, am I doing something wrong? If so, what am I doing wrong? &lt;br/&gt;
I checked the input on the function and I think that works fine, the function has a valid argument and is called correct.&lt;/p&gt;
&lt;p&gt;Q1: Can someone check my findings on the non-performing of the FILE.GetProperty function?&lt;br/&gt;
Q2: Are the 3 constants missing by design? E.G.;&lt;br/&gt;
MIA210 := FILE.GetProperty(wProperty := 210 ); //Support of Resolver Syntax for file names&lt;br/&gt;
MIA211 := FILE.GetProperty(wProperty := 211 ); //Support of FTP-Client functions&lt;br/&gt;
MIA212 := FILE.GetProperty(wProperty := 212 ); //Support of Http-Client functions&lt;/p&gt;
&lt;p&gt;Many Thanx!&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>