OpenSCADAWiki: Home Page Uk/Doc/F LibSYS ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/FLibSYS from 2016-11-14 21:12:09..

Ìîäóëü <FLibSYS> ï³äñèñòåìè "Ñïåö³àëüí³"

Ìîäóëü: FLibSYS
²ì'ÿ: Á³áë³îòåêà ôóíêö³é ñèñòåìíîãî API.
Òèï: Ñïåö³àëüí³
Äæåðåëî: spec_FLibSYS.so
Âåðñ³ÿ: 1.3.0
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñ: Íàäຠá³áë³îòåêó ñèñòåìíîãî API ñåðåäîâèùà êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ.
˳öåíç³ÿ: GPL


Contents

Âñòóï

Ñïåö³àëüíèé ìîäóëü FLibSYS íàäຠâ ñèñòåìó OpenSCADA ñòàòè÷íó á³áë³îòåêó ôóíêö³é äëÿ ðîáîòè ç ñèñòåìîþ OpenSCADA íà ð³âí³ ¿¿ ñèñòåìíîãî API. Ö³ ôóíêö³¿ ìîæóòü âèêîðèñòîâóâàòèñÿ ó ñåðåäîâèù³ êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ ñèñòåìè OpenSCADA äëÿ îðãàí³çàö³¿ íåîðäèíàðíèõ àëãîðèòì³â âçàºìî䳿.


Äëÿ àäðåñàö³¿ äî ôóíêö³¿ ö³º¿ á³áë³îòåêè ìîæíà âèêîðèñòîâóâàòè ñòàòè÷íó àäðåñó âèêëèêó "Special.FLibSYS.{Func}()" àáî äèíàì³÷íó "SYS.Special.FLibSYS["{Func}"].call()", "SYS.Special.FLibSYS.{Func}()". Äå {Func} — ³äåíòèô³êàòîð ôóíêö³¿ ó á³áë³îòåö³.


Íèæ÷å íàâåäåíî îïèñ êîæíî¿ ôóíêö³¿ á³áë³îòåêè. Äëÿ êîæíî¿ ôóíêö³¿ çä³éñíþâàëàñÿ îö³íêà ÷àñó âèêîíàííÿ. Âèì³ðþâàííÿ çä³éñíþâàëîñÿ íà ñèñòåì³ ç íàñòóïíèìè ïàðàìåòðàìè: Athlon 64 3000+ (ALTLinux 4.0(32á³ò)) øëÿõîì çàì³ðó çàãàëüíîãî ÷àñó âèêîíàííÿ ôóíêö³¿ ïðè âèêëèêó ¿¿ 1000 ðàç³â. Âèá³ðêà çä³éñíþâàëàñÿ ³ç ï'ÿòè îá÷èñëåíü ³ç îêðóãëåííÿì äî ìåíøîãî ö³ëîãî. ×àñ îòî÷óºòüñÿ êóòîâèìè äóæêàìè òà âèì³ðþºòüñÿ ó ì³êðîñåêóíäàõ.

1. Çàãàëüíîñèñòåìí³ ôóíêö³¿

1.1. Âèêëèê êîíñîëüíèõ êîìàíä òà óòèë³ò îïåðàö³éíî¿ ñèñòåìè (sysCall)

Îïèñ: Çä³éñíþº âèêëèê êîíñîëüíèõ êîìàíä ÎÑ. Ôóíêö³ÿ â³äêðèâຠøèðîê³ ìîæëèâîñò³ êîðèñòóâà÷ó OpenSCADA øëÿõîì âèêëèêó áóäü-ÿêèõ ñèñòåìíèõ ïðîãðàì, óòèë³ò òà ñêðèïò³â, à òàêîæ îòðèìàííÿ çà ïîñåðåäíèöòâîì íèõ äîñòóïó äî âåëè÷åçíîãî îá'ºìó ñèñòåìíèõ äàíèõ. Íàïðèêëàä êîìàíäà "ls -l" ïîâåðíå äåòàë³çîâàíèé âì³ñò ðîáî÷î¿ òåêè.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
com Êîìàíäà Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
test=sysCall("ls -l");
messPut("Example",0,"Example: "+test);

1.2. SQL çàïèò (dbReqSQL)

Îïèñ: Ôîðìóâàííÿ SQL-çàïèòó äî ÁÄ.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(Ìàñèâ) Ïîâåðíåííÿ
addr Àäðåñà ÁÄ ðÿäîê Âõ³ä
req SQL-çàïèò Ðÿäîê Âõ³ä

1.3. Âóçîë XML (xmlNode)

Îïèñ: Ñòâîðåííÿ îá'ºêòó âóçëà XML.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(XMLNodeObj) Ïîâåðíåííÿ
name ²ì'ÿ Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
//Ñòâîðåííÿ îá'ºêòó "get" âóçëà XML.
req = xmlNode("get");
//Ñòâîðåííÿ  îá'ºêòó "get" âóçëà XML ³ç ñòâîðåííÿì àòðèáóò³â.
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — øëÿõ çã³äíî ñòðóêòóðè ïðîåêòó
req = xmlNode("get").setAttr("path",);

1.4. Çàïèò ³íòåðôåéñó óïðàâë³ííÿ (xmlCntrReq)

Îïèñ: Çàïèò ³íòåðôåéñó óïðàâë³ííÿ äî ñèñòåìè çà ïîñåðåäíèöòâîì XML. Çâè÷àéíèé çàïèò çàïèñóºòüñÿ ó âèãëÿä³ "<get path="/OPath/%2felem"/>". Ïðè âêàçàíí³ ñòàíö³¿ çä³éñíþºòüñÿ çàïèò äî çîâí³øíüî¿ ñòàíö³¿.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
req Çàïèò Îá'ºêò(XMLNodeObj) Âèõ³ä
stat Ñòàíö³ÿ Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
//Îòðèìàííÿ îçíàêè "Âêëþ÷åíèé/Âèêëþ÷åíèé" ïàðàìåòðàó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — øëÿõ çã³äíî ñòðóêòóðè ïðîåêòó
req = xmlNode("get").setAttr("path",);
rez = xmlCntrReq(req);
messPut("test",0,"Çíà÷åííÿ: "+req.text());

//Âñòàíîâëåííÿ îçíàêè "Âêëþ÷åíèé" ïàðàìåòðó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
req = xmlNode("set").setAttr("path",).setText(1);
rez = xmlCntrReq(req);

//Âñòàíîâëåííÿ îçíàêè "Âèêëþ÷åíèé" ïàðàìåòðó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
req = xmlNode("set").setAttr("path",).setText(0);
rez = xmlCntrReq(req);

1.5. Àðõ³â çíà÷åíü (vArh)

Îïèñ: Îòðèìàííÿ îá'ºêòó àðõ³âó çíà÷åíü (VArchObj) øëÿõîì ï³äêëþ÷åííÿ äî àðõ³âó çà éîãî àäðåñîþ.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(VArchObj) Ïîâåðíåííÿ
name ²ì'ÿ, àäðåñà äî àòðèáóòó ïàðàìåòðà ç àðõ³âîì (DAQ.{Module}.{Cntr}.{Prm}.{Attr}) àáî áåçïîñåðåäíüî äî àðõ³âó çíà÷åíü (Archive.va_{ValArchive}). Ðÿäîê Âõ³ä

Îá'ºêò VArchObj

Ôóíêö³¿:

Ïðèêëàä:

using Special.FLibSYS;
val = vArh(strPath2Sep(addr)).get(time,uTime,0,archivator);
return val.isEval() ? "Ïîðîæíüî" : real2str(val,prec);

1.6. Áóôåð àðõ³âó çíà÷åíü (vArhBuf)

Îïèñ: Îòðèìàííÿ îá'ºêòó áóôåðó àðõ³âó çíà÷åíü (VArchObj) äëÿ âèêîíàííÿ ïðîì³æíèõ îïåðàö³é íàä êàäðàìè äàíèõ.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(VArchObj) Ïîâåðíåííÿ
tp Òèï çíà÷åíü àðõ³âó (0-Boolean, 1-Integer, 4-Real, 5-String) Ö³ëèé Âõ³ä 1
sz Ìàêñèìàëüíèé ðîçì³ð áóôåðó Ö³ëèé Âõ³ä 100
per Ïåð³îäè÷í³ñòü áóôåðó (ó ì³êðîñåêóíäàõ) Ö³ëèé Âõ³ä 1000000
hgrd Ðåæèì "Æîðñòêà ìåðåæà ÷àñó" Ëîã³÷íèé Âõ³ä 0
hres Ðåæèì "Âèñîêî¿ ðîçä³ëüíî¿ çäàòíîñò³ ÷àñó (ì³êðîñåêóíäè)" Ëîã³÷íèé Âõ³ä 0

1.7. Ââ³ä/Âèâ³ä (IO)

Îïèñ: Ââ³ä/Âèâ³ä ó: ôàéë, ñòðîêîâèé ïîò³ê.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(IO) Ïîâåðíåííÿ
name ²ì'ÿ ôàéëó àáî äàí³ (äëÿ ñòðîêîâîãî ïîòîêó) Ðÿäîê Âõ³ä
accs Äîñòóï äî ôàéëó (''-ñòðîêîâèé ïîò³ê;'r[+]'-÷èòàííÿ;'w[+]'-çàïèñ ç íóëÿ;'a[+]'-äîäàííÿ;...) Ðÿäîê Âõ³ä
mFormat Ôîðìàò äàíèõ ìàøèíè ('n'-ñèñò. ïîðÿäîê;'b'-BigEndian;'l'-LittleEndian) Ö³ëå Âõ³ä "n"
enc Êîäóâàííÿ ðÿäêó ó ôàéë³ Ëîã³÷íèé Âõ³ä

IO îá'ºêò

Çíà÷åííÿ:


Âëàñòèâîñò³:


Ôóíêö³¿:

2. Ôóíêö³¿ äëÿ ðîáîòè ç àñòðîíîì³÷íèì ÷àñîì

2.1. Ðÿäîê ÷àñó (tmFStr) <3047>

Îïèñ: Ïåðåòâîðþº àáñîëþòíèé ÷àñ ó ðÿäîê ïîòð³áíîãî ôîðìàòó. Çàïèñ ôîðìàòó â³äïîâ³äຠPOSIX-ôóíêö³¿ strftime.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
val Ðÿäîê ïîâíî¿ äàòè Ðÿäîê Ïîâåðíåííÿ
sec Ñåêóíäè Ö³ëå Âõ³ä 0
form Ôîðìàò Ðÿäîê Âõ³ä %Y-%m-%d %H:%M:%S

Ïðèêëàä:

using Special.FLibSYS;
test=tmFStr(SYS.time(),);
messPut("Example",0,"tmFStr(): "+test);

2.2. Ïîâíà äàòà (tmDate) <973>

Îïèñ: Ïîâåðòຠïîâíèé ÷àñ ó ñåêóíäàõ, õâèëèíàõ, ãîäèíàõ òà ³íøå, âèõîäÿ÷è ç àáñîëþòíîãî ÷àñó â ñåêóíäàõ â³ä åïîõè 1.1.1970.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
fullsec Ïîâí³ ñåêóíäè Ö³ëèé Âõ³ä 0
sec Ñåêóíäè [0...59] Ö³ëèé Âèõ³ä 0
min Õâèëèíè [0...59] Ö³ëèé Âèõ³ä 0
hour Ãîäèíè [0...23] Ö³ëèé Âèõ³ä 0
mday Äåíü ì³ñÿöÿ [1...31] Ö³ëèé Âèõ³ä 0
month ̳ñÿöü [0...11] Ö³ëèé Âèõ³ä 0
year гê, â³ä 1900 Ö³ëèé Âèõ³ä 0
wday Äåíü òèæíÿ [0...6] Ö³ëèé Âèõ³ä 0
yday Äåíü ó ðîêó [0...365] Ö³ëèé Âèõ³ä 0
isdst ˳òí³é ÷àñ Ö³ëèé Âèõ³ä 0

Ïðèêëàä:

using Special.FLibSYS;
curMin=curHour=curDay=curMonth=curYear=0;
tmDate(tmTime(),0,curMin,curHour,curDay,curMonth,curYear);
messPut("test",0,"Ïîòî÷íà õâèëèíà: "+curMin);
messPut("test",0,"Ïîòî÷íà ãîäèíà: "+curHour);
messPut("test",0,"Ïîòî÷íèé äåíü: "+curDay);
messPut("test",0,"Ïîòî÷íèé ì³ñÿöü: "+curMonth);
messPut("test",0,"Ïîòî÷íèé ð³ê: "+curYear);

2.3. Àáñîëþòíèé ÷àñ (tmTime) <220>

Îïèñ: Ïîâåðòຠàáñîëþòíèé ÷àñ â ñåêóíäàõ â³ä åïîõè 1.1.1970 òà ì³êðîñåêóíäàõ, ÿêùî usec âñòàíîâëåíî ó ïîçèòèâíå çíà÷åííÿ.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
sec Ñåêóíäè Ö³ëèé Ïîâåðíåííÿ 0
usec ̳êðîñåêóíäè Ö³ëèé Âèõ³ä -1

2.4. Êîíâåðòàö³ÿ ÷àñó ³ç ñèìâîëüíîãî ïðåäñòàâëåííÿ ó ÷àñ â ñåêóíäàõ, â³ä åïîõè 1.1.1970 (tmStrPTime) <2600>

Îïèñ: Ïîâåðòຠ÷àñ ó ñåêóíäàõ â³ä åïîõè 1.1.1970, âèõîäÿ÷è ³ç ñòðîêîâîãî çàïèñó ÷àñó, ó â³äïîâ³äíîñò³ ç âêàçàíèì øàáëîíîì. Íàïðèêëàä, øàáëîíó "%Y-%m-%d %H:%M:%S" â³äïîâ³äຠ÷àñ "2006-08-08 11:21:55". Îïèñ ôîðìàòó øàáëîíó ìîæíà îòðèìàòè ³ç äîêóìåíòàö³¿ íà POSIX-ôóíêö³þ "strptime".
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
sec Ñåêóíäè Ö³ëèé Ïîâåðíåííÿ 0
str Ðÿäîê äàòè Ðÿäîê Âõ³ä
form Ôîðìàò çàïèñó äàòè Ðÿäîê Âõ³ä %Y-%m-%d %H:%M:%S

Ïðèêëàä:

using Special.FLibSYS;
curMin=curHour=curDay=curMonth=curYear=0;
tmDate(tmTime(),0,curMin,curHour,curDay,curMonth,curYear);
test = tmStrPTime(""+curYear+"-"+(curMonth+1)+"-"+curDay+" 9:0:0",);
messPut("Example",0,"tmStrPTime(): "+test);

2.5. Ïëàíóâàííÿ ÷àñó ó ôîðìàò³ Cron (tmCron)

Îïèñ: Ïîâåðòຠ÷àñ, ñïëàíîâàíå ó ôîðìàò³ ñòàíäàðòó Cron ïî÷èíàþ÷è â³ä áàçîâîãî ÷àñó àáî â³ä ïîòî÷íîãî ÿêùî áàçîâèé íå âêàçàíèé.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
res Ðåçóëüòàò Ö³ëèé Ïîâåðíåííÿ 0
str Çàïèñ ó ñòàíäàðò³ Cron Ðÿäîê Âõ³ä * * * * *
base Áàçîâèé ÷àñ Ö³ëèé Âõ³ä 0

2.6. Ñîí (tmSleep)

Îïèñ: Êîðîòêèé ñîí â³ä íàíîñåêóíä òà äî STD_INTERF_TM (5 ñåêóíä).
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
res Ðåçóëüòàò Ö³ëèé Ïîâåðíåííÿ 0
tm ×àñ Ðåàëüíèé Âõ³ä 0

3. Ôóíêö³¿ ðîáîòè ç ïîâ³äîìëåííÿìè

3.1. Çàïèò ïîâ³äîìëåíü (messGet)

Îïèñ: Çàïèò ñèñòåìíèõ ïîâ³äîìëåíü.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(Ìàñèâ) Ïîâåðíåííÿ
btm ×àñ ïî÷àòêó Ö³ëå Âõîä
etm ×àñ ê³íöÿ Ö³ëå Âõ³ä
cat Êàòåãîð³ÿ ïîâ³äîìëåííÿ Ðÿäîê Âõ³ä
lev гâåíü ïîâ³äîìëåííÿ Ö³ëèé Âõ³ä
arch Àðõ³âàòîð Ðÿäîê Âõ³ä

3.2. Ãåíåðàö³ÿ ïîâ³äîìëåííÿ (messPut)

Îïèñ: Ôîðìóâàííÿ ñèñòåìíîãî ïîâ³äîìëåííÿ.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
cat Êàòåãîð³ÿ ïîâ³äîìëåííÿ ðÿäîê Âõ³ä
lev гâåíü ïîâ³äîìëåííÿ Ö³ëèé Âõ³ä
mess Òåêñò ïîâ³äîìëåííÿ Ðÿäîê Âõ³ä

Ïðèêëàä:

rnd_sq_gr11_lineClr="red";
Special.FLibSYS.messPut("Example",1,"Event: "+rnd_sq_gr12_leniClr);

4. Ôóíêö³¿ ðîáîòè ç ñòðîêàìè

4.1. Îòðèìàííÿ ðîçì³ðó ðÿäêà (strSize) <114>

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ îòðèìàííÿ ðîçì³ðó.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ö³ëèé Ïîâåðíåííÿ
str Ðÿäîê Ðÿäîê Âõ³ä

Ïðèêëàä:

Special.FLibSYS.messPut("Example",1,"ReturnString: "+strSize("Example"));

4.2. Îòðèìàííÿ ÷àñòèíè ðÿäêà (strSubstr) <413>

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ îòðèìàííÿ ÷àñòèíè ðÿäêà.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
str Ðÿäîê Ðÿäîê Âõ³ä
pos Ïîçèö³ÿ Ö³ëèé Âõ³ä 0
n ʳëüê³ñòü Ö³ëèé Âõ³ä -1

Ïðèêëàä:

using Special.FLibSYS;
test=strSubstr("Example", 0, strSize("Example")-1);
messPut("Example",1,"ReturnString: "+test);

4.3. Âñòàâêà îäíîãî ðÿäêà äî ³íøîãî (strInsert) <1200>

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ âñòàâêè îäíîãî ðÿäêà äî ³íøîãî.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
str Ðÿäîê Ðÿäîê Âèõ³ä
pos Ïîçèö³ÿ Ö³ëèé Âõ³ä 0
ins Ðÿäîê äëÿ âñòàâêè Ðÿäîê Âõ³ä

4.4. Çàì³íà ÷àñòèíè ðÿäêà ³íøîþ (strReplace) <531>

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ çàì³íè ÷àñòèíè ðÿäêà ³íøèì ðÿäêîì.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
str Ðÿäîê Ðÿäîê Âèõ³ä
pos Ïîçèö³ÿ Ö³ëèé Âõ³ä 0
n ʳëüê³ñòü Ö³ëèé Âõ³ä -1
repl Ðÿäîê ùî çàì³íþº Ðÿäîê Âõ³ä

4.5. Ðîçá³ð ðÿäêà çà ðîçä³ëüíèêîì (strParse) <537>

Îïèñ: Âèêîðèñòîâóºòüñÿ ó ðîçáîð³ ðÿäêà çà ðîçä³ëüíèêîì.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
str Ðÿäîê Ðÿäîê Âõ³ä
lev гâåíü Ö³ëèé Âõ³ä
sep Ðîçä³ëüíèê Ðÿäîê Âõ³ä "."
off Çì³ùåííÿ Ö³ëèé Âèõ³ä

Ïðèêëàä:

using Special.FLibSYS;
ExapleString="Example:123";
test=strParse(ExapleString,1,":");
messPut("Example",0,"strParse(): "+test);

4.6. Ðîçá³ð øëÿõó (strParsePath) <300>

Îïèñ: Âèêîðèñòîâóºòüñÿ ó ðîçáîð³ øëÿõó íà åëåìåíòè.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
path Øëÿõ Ðÿäîê Âõ³ä
lev гâåíü Ö³ëèé Âõ³ä
off Çì³ùåííÿ Ö³ëèé Âèõ³ä

Ïðèêëàä:

using Special.FLibSYS;
test=strParsePath(path,0,"/");
messPut("Example",1,"strParsePath(): "+test);

4.7. Øëÿõ ó ðÿäîê ç ðîçä³ëüíèêîì (strPath2Sep)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ ïåðåòâîðåííÿ øëÿõó ó ðÿäîê ç ðîçä³ëüíèêîì.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
src Äæåðåëî Ðÿäîê Âõ³ä
sep Ðîçä³ëüíèê Ðÿäîê Âõ³ä "."

Ïðèêëàä:

//Ïåðåòâîðþº çíà÷åííÿ "/ses_AGLKS/pg_so" àòðèáóòà "path" ó çíà÷åííÿ "ses_AGLKS.pg_so"
using Special.FLibSYS;
test = strPath2Sep(path);
messPut("Example",0,"path: "+path);
messPut("Example",0,"strPath2Sep(): "+test);

4.8. Êîäóâàííÿ ðÿäêà ó HTML (strEnc2HTML)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ êîäóâàííÿ ðÿäêà äëÿ âèêîðèñòàííÿ ó âèõ³äíîìó êîä³ HTML.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
src Äæåðåëî Ðÿäîê Âõ³ä

4.9. Êîäóâàííÿ òåêñòó ó á³íàðíèé âèãëÿä (strEnc2Bin)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ êîäóâàííÿ òåêñòó ó á³íàðíèé âèãëÿä, ³ç ôîðìàòó <00 A0 FA DE>.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
src Äæåðåëî Ðÿäîê Âõ³ä

4.10. Äåêîäóâàííÿ òåêñòó ³ç á³íàðíîãî âèãëÿäó (strDec4Bin)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ äåêîäóâàííÿ òåêñòó ³ç á³íàðíîãî âèãëÿäó ó ôîðìàò <00 A0 FA DE>.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
src Äæåðåëî Ðÿäîê Âõ³ä

4.11. Ïåðåòâîðåííÿ ðåàëüíîãî ó ðÿäîê (real2str)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ ïåðåòâîðåííÿ ðåàëüíîãî ó ðÿäîê.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
val Çíà÷åííÿ Ðåàëüíå Âõ³ä
prc Òî÷í³ñòü Ö³ëå Âõ³ä 4
tp Òèï Ðÿäîê Âõ³ä "f"

4.12. Ïåðåòâîðåííÿ ö³ëîãî â ðÿäîê (int2str)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ ïåðåòâîðåííÿ ö³ëîãî ó ðÿäîê.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
val Çíà÷åííÿ Ö³ëå Âõ³ä
base Áàçà, ï³äòðèìóþòüñÿ: 8, 10, 16 Ö³ëå Âõ³ä 10

4.13. Ïåðåòâîðåííÿ ðÿäêà ó ðåàëüíå (str2real)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ ïåðåòâîðåííÿ ðÿäêà ó ðåàëüíå.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðåàëüíå Ïîâåðíåííÿ
val Çíà÷åííÿ Ðÿäîê Âõ³ä

4.14. Ïåðåòâîðåííÿ ðÿäêà â ö³ëå (str2int)

Îïèñ: Âèêîðèñòîâóºòüñÿ äëÿ ïåðåòâîðåííÿ ðÿäêà ó ö³ëå.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ö³ëå Ïîâåðíåííÿ
val Çíà÷åííÿ Ðÿäîê Âõ³ä
base Îñíîâà Ö³ëèé Âõ³ä 0

4.15. Öèêë³÷íèé Íàäëèøêîâèé Êîä (CRC)

Îïèñ: Ðåàë³çàö³ÿ Öèêë³÷íîãî Íàäëèøêîâîãî Êîäó äëÿ äîâæèí 8-64 á³ò.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ö³ëå Ïîâåðíåííÿ
data Äàí³ Ðÿäîê Âõ³ä
poly Ïîë³íîì (ðåâåðñèâíèé) Ö³ëèé Âõ³ä 40961 (0xA001)
width Øèðèíà Ö³ëèé Âõ³ä 16
init ²í³ö³àë³çàö³ÿ Ö³ëèé Âõ³ä -1 (0xFFFFFFFFFFFFFFFF)

4.16. Çë³ïîê ïîâ³äîìëåííÿ 5 (MD5)

Îïèñ: Ðîçðàõóíîê çë³ïêó ïîâ³äîìëåííÿ 5.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
data Äàí³ Ðÿäîê Âõ³ä

Ïåðåêëàä

5. Ôóíêö³¿ ðîáîòè ç ðåàëüíèì

5.1. Ïîä³ë float íà ñëîâà (floatSplitWord) <56>

Îïèñ: Ïîä³ë float (4 áàéò³â) íà ñëîâà (2 áàéòè).
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
val Çíà÷åííÿ Ðåàëüíå Âõ³ä
w1 Ñëîâî 1 Ö³ëèé Âèõ³ä
w2 Ñëîâî 2 Ö³ëèé Âèõ³ä

5.2. Îá'ºäíàííÿ float ³ç ñë³â (floatMergeWord) <70>

Îïèñ: Îá'ºäíàííÿ float (4 áàéò³â) ³ç ñë³â (2 áàéòè).
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðåàëüíå Ïîâåðíåííÿ
w1 Ñëîâî 1 Ö³ëèé Âõ³ä
w2 Ñëîâî 2 Ö³ëèé Âõ³ä

6. API êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ

Äåÿê³ îá'ºêòè ìîäóëÿ íàäàþòü ôóíêö³¿ êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ.


Îá'ºêò "Á³áë³îòåêà ôóíêö³é" (SYS.Special.FLibSYS)


Îá'ºêò "Êîðèñòóâàöüêà ôóíêö³ÿ" (SYS.Special.FLibSYS["funcID"])

Ïîñèëàííÿ

Referring pages: HomePageUk/Doc
HomePageUk/Doc/DAQ
HomePageUk/Doc/FLibSYS


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]