file { name="C:\cygwin\home\mooney\epics\synApps\support\calc\calcApp\op\adl\calcStringExamples.adl" version=030004 } display { object { x=92 y=35 width=480 height=660 } clr=14 bclr=1 cmap="" gridSpacing=5 gridOn=0 snapToGrid=1 } "color map" { ncolors=65 colors { ffffff, ececec, dadada, c8c8c8, bbbbbb, aeaeae, 9e9e9e, 919191, 858585, 787878, 696969, 5a5a5a, 464646, 2d2d2d, 000000, 00d800, 1ebb00, 339900, 2d7f00, 216c00, fd0000, de1309, be190b, a01207, 820400, 5893ff, 597ee1, 4b6ec7, 3a5eab, 27548d, fbf34a, f9da3c, eeb62b, e19015, cd6100, ffb0ff, d67fe2, ae4ebc, 8b1a96, 610a75, a4aaff, 8793e2, 6a73c1, 4d52a4, 343386, c7bb6d, b79d5c, a47e3c, 7d5627, 58340f, 99ffff, 73dfff, 4ea5f9, 2a63e4, 0a00b8, ebf1b5, d4db9d, bbc187, a6a462, 8b8239, 73ff6b, 52da3b, 3cb420, 289315, 1a7309, } } text { object { x=5 y=75 width=230 height=14 } "basic attribute" { clr=14 } textix="AA-BB" } text { object { x=5 y=90 width=230 height=14 } "basic attribute" { clr=14 } textix="AA-|BB" } text { object { x=5 y=130 width=230 height=14 } "basic attribute" { clr=14 } textix="AA|-BB" } text { object { x=5 y=170 width=230 height=14 } "basic attribute" { clr=14 } textix="AA>BB (<, >=, etc.)" } text { object { x=5 y=200 width=230 height=14 } "basic attribute" { clr=14 } textix="PRINTF('abc%f', A)" } text { object { x=5 y=240 width=230 height=14 } "basic attribute" { clr=14 } textix="$P('abc%f',A)" } text { object { x=5 y=310 width=230 height=14 } "basic attribute" { clr=14 } textix="$S(AA,'%lf')" } text { object { x=5 y=340 width=230 height=14 } "basic attribute" { clr=14 } textix="TR_ESC('a\002b')" } text { object { x=5 y=380 width=230 height=14 } "basic attribute" { clr=14 } textix="$T('a\002b')" } text { object { x=5 y=410 width=230 height=14 } "basic attribute" { clr=14 } textix="ESC(aa)" } text { object { x=5 y=450 width=230 height=14 } "basic attribute" { clr=14 } textix="$E(aa)" } text { object { x=5 y=480 width=230 height=14 } "basic attribute" { clr=14 } textix="MAX(AA,BB)" } text { object { x=5 y=510 width=230 height=14 } "basic attribute" { clr=14 } textix="AA-'.VAL'+'.EGU'" } text { object { x=15 y=105 width=220 height=10 } "basic attribute" { clr=47 } textix="subtract first BB from AA" } text { object { x=15 y=115 width=220 height=10 } "basic attribute" { clr=47 } textix="E.G., 'A:B.VAL' - '.VAL' = 'A:B'" } text { object { x=15 y=145 width=220 height=10 } "basic attribute" { clr=47 } textix="subtract last BB from AA" } text { object { x=15 y=155 width=220 height=10 } "basic attribute" { clr=47 } textix="E.G., 'ABA' |- 'A' = 'AB'" } text { object { x=15 y=185 width=220 height=10 } "basic attribute" { clr=47 } textix="LEXICAL COMPARE, LOGICAL RESULT" } text { object { x=15 y=215 width=220 height=10 } "basic attribute" { clr=47 } textix="ONLY ONE ARGUMENT. RESULT IS" } text { object { x=15 y=225 width=220 height=10 } "basic attribute" { clr=47 } textix="STRING" } text { object { x=15 y=255 width=220 height=10 } "basic attribute" { clr=47 } textix="$P MEANS PRINTF" } text { object { x=15 y=295 width=220 height=10 } "basic attribute" { clr=47 } textix="DEPENDS ON FORMAT STRING" } text { object { x=15 y=325 width=220 height=10 } "basic attribute" { clr=47 } textix="$S MEANS SSCANF" } text { object { x=15 y=355 width=220 height=10 } "basic attribute" { clr=47 } textix="TRANSLATES ESCAPE SEQUENCES" } text { object { x=15 y=365 width=220 height=10 } "basic attribute" { clr=47 } textix="NOTE: TR_ESC('a\000b') -> 'a'" } text { object { x=15 y=395 width=220 height=10 } "basic attribute" { clr=47 } textix="$T MEANS TR_ESC" } text { object { x=15 y=425 width=220 height=10 } "basic attribute" { clr=47 } textix="OPPOSITE OF TR_ESC" } text { object { x=15 y=435 width=220 height=10 } "basic attribute" { clr=47 } textix="NOTE: NULLS AREN'T HANDLED WELL" } text { object { x=15 y=465 width=220 height=10 } "basic attribute" { clr=47 } textix="$E MEANS ESC" } text { object { x=15 y=495 width=220 height=10 } "basic attribute" { clr=47 } textix="LEXICAL COMPARE, STRING RESULT" } text { object { x=15 y=525 width=220 height=10 } "basic attribute" { clr=47 } textix="*.VAL -> *.EGU" } "related display" { object { x=0 y=0 width=60 height=16 } display[0] { name="calcExamples.adl" policy="replace display" } clr=0 bclr=17 label="-TOP" } "related display" { object { x=60 y=0 width=60 height=16 } display[0] { name="calcAlgebraicExamples.adl" policy="replace display" } clr=0 bclr=17 label="-ALG" } "related display" { object { x=120 y=0 width=60 height=16 } display[0] { name="calcTrigExamples.adl" policy="replace display" } clr=0 bclr=17 label="-TRIG" } "related display" { object { x=180 y=0 width=60 height=16 } display[0] { name="calcRelationalExamples.adl" policy="replace display" } clr=0 bclr=17 label="-REL" } "related display" { object { x=240 y=0 width=60 height=16 } display[0] { name="calcBitwiseExamples.adl" policy="replace display" } clr=0 bclr=17 label="-BIT" } "related display" { object { x=300 y=0 width=60 height=16 } display[0] { name="calcMiscExamples.adl" policy="replace display" } clr=0 bclr=17 label="-MISC" } "related display" { object { x=360 y=0 width=60 height=16 } display[0] { name="calcStringExamples.adl" policy="replace display" } clr=0 bclr=17 label="-STR" } polyline { object { x=2 y=40 width=485 height=3 } "basic attribute" { clr=54 fill="outline" width=3 } points { (3,41) (485,41) } } text { object { x=10 y=20 width=470 height=20 } "basic attribute" { clr=54 } textix="String expressions" align="horiz. centered" } polyline { object { x=2 y=15 width=485 height=3 } "basic attribute" { clr=54 fill="outline" width=3 } points { (3,16) (485,16) } } "related display" { object { x=420 y=0 width=60 height=16 } display[0] { name="calcArrayExamples.adl" policy="replace display" } clr=0 bclr=17 label="-ARR" } composite { object { x=5 y=45 width=230 height=25 } "composite name"="" children { text { object { x=15 y=60 width=220 height=10 } "basic attribute" { clr=47 } textix="CONCATENATE STRINGS" } text { object { x=5 y=45 width=230 height=14 } "basic attribute" { clr=14 } textix="AA+BB" } } } text { object { x=255 y=60 width=220 height=10 } "basic attribute" { clr=47 } textix="CONVERT FIRST CHAR TO DOUBLE" } text { object { x=245 y=45 width=230 height=14 } "basic attribute" { clr=14 } textix="BYTE(AA)" } text { object { x=255 y=90 width=220 height=10 } "basic attribute" { clr=47 } textix="CALC MODBUS/RTU 16-BIT CRC" } text { object { x=245 y=75 width=230 height=14 } "basic attribute" { clr=14 } textix="CRC16(AA)" } text { object { x=255 y=120 width=220 height=10 } "basic attribute" { clr=47 } textix="APPEND MODBUS/RTU CRC" } text { object { x=245 y=105 width=230 height=14 } "basic attribute" { clr=14 } textix="MODBUS(AA)" } text { object { x=255 y=150 width=220 height=10 } "basic attribute" { clr=47 } textix="CALC MODBUS/ASCII 8-BIT LRC" } text { object { x=245 y=135 width=230 height=14 } "basic attribute" { clr=14 } textix="LRC(AA)" } composite { object { x=245 y=170 width=230 height=25 } "composite name"="" children { text { object { x=245 y=170 width=230 height=14 } "basic attribute" { clr=14 } textix="AMODBUS(AA)" } text { object { x=255 y=185 width=220 height=10 } "basic attribute" { clr=47 } textix="APPEND MODBUS/ASCII LRC" } } } text { object { x=245 y=200 width=230 height=14 } "basic attribute" { clr=14 } textix="XOR8(AA)" } text { object { x=255 y=215 width=220 height=10 } "basic attribute" { clr=47 } textix="CALC CHECKSUM BY XOR'ING EACH BYTE" } text { object { x=245 y=230 width=230 height=14 } "basic attribute" { clr=14 } textix="ADD_XOR8(AA)" } text { object { x=255 y=245 width=220 height=10 } "basic attribute" { clr=47 } textix="APPEND XOR8 CHECKSUM" } text { object { x=245 y=265 width=230 height=14 } "basic attribute" { clr=14 } textix="AA[1,3]" } text { object { x=245 y=305 width=230 height=14 } "basic attribute" { clr=14 } textix="AA['ab','yz']" } text { object { x=245 y=345 width=230 height=14 } "basic attribute" { clr=14 } textix="AA[1,4][2,3]" } text { object { x=245 y=375 width=230 height=14 } "basic attribute" { clr=14 } textix="AA{'old','new'}" } text { object { x=255 y=280 width=220 height=10 } "basic attribute" { clr=47 } textix="EXTRACT SUBSTRING" } text { object { x=255 y=290 width=220 height=10 } "basic attribute" { clr=47 } textix="'ABC'[1,3] = 'BC'" } text { object { x=255 y=320 width=220 height=10 } "basic attribute" { clr=47 } textix="EXTRACT SUBSTRING" } text { object { x=255 y=330 width=220 height=10 } "basic attribute" { clr=47 } textix="'ABC'['A','C'] = 'B'" } text { object { x=255 y=360 width=220 height=10 } "basic attribute" { clr=47 } textix="'ABCDEF'[3,5][1,1] = 'E'" } text { object { x=255 y=390 width=220 height=10 } "basic attribute" { clr=47 } textix="REPLACE 'OLD' WITH 'NEW' (ONCE)" } text { object { x=245 y=450 width=230 height=14 } "basic attribute" { clr=14 } textix="INT(AA)" } text { object { x=245 y=480 width=230 height=14 } "basic attribute" { clr=14 } textix="STR(A)" } text { object { x=255 y=425 width=220 height=10 } "basic attribute" { clr=47 } textix="FIND FIRST NUMBER IN STRING," } text { object { x=255 y=435 width=220 height=10 } "basic attribute" { clr=47 } textix="CONVERT TO DOUBLE" } text { object { x=255 y=465 width=220 height=10 } "basic attribute" { clr=47 } textix="FIND FIRST NUMBER; CVT TO INT" } text { object { x=255 y=495 width=220 height=10 } "basic attribute" { clr=47 } textix="CONVERT TO STRING" } text { object { x=245 y=410 width=230 height=14 } "basic attribute" { clr=14 } textix="DBL(AA)" } composite { object { x=245 y=510 width=230 height=25 } "composite name"="" children { text { object { x=245 y=510 width=230 height=14 } "basic attribute" { clr=14 } textix="'yyy:'+AA-'xxx:'" } text { object { x=255 y=525 width=220 height=10 } "basic attribute" { clr=47 } textix="xxx:* -> yyy:*" } } } composite { object { x=0 y=605 width=460 height=44 } "composite name"="" children { text { object { x=0 y=605 width=460 height=14 } "basic attribute" { clr=47 } textix="NOTE: You can use either single or double quotes for string" } text { object { x=0 y=620 width=460 height=14 } "basic attribute" { clr=47 } textix="literals. Using one allows you to include the other in the" } text { object { x=0 y=635 width=460 height=14 } "basic attribute" { clr=47 } textix="string." } } } composite { object { x=5 y=270 width=230 height=25 } "composite name"="" children { text { object { x=5 y=270 width=230 height=14 } "basic attribute" { clr=14 } textix="SSCANF(AA,'%lf')" } text { object { x=15 y=285 width=220 height=10 } "basic attribute" { clr=47 } textix="ONLY ONE ARGUMENT. RESULT TYPE" } } } text { object { x=245 y=540 width=230 height=14 } "basic attribute" { clr=14 } textix="WRITE('%ld',A) or $W(...)" } text { object { x=255 y=555 width=220 height=10 } "basic attribute" { clr=47 } textix="LIKE PRINTF, BUT WRITE BINARY DATA" } composite { object { x=5 y=540 width=230 height=25 } "composite name"="" children { text { object { x=5 y=540 width=230 height=14 } "basic attribute" { clr=14 } textix="READ(AA,'%ld') or $R(...)" } text { object { x=15 y=555 width=220 height=10 } "basic attribute" { clr=47 } textix="LIKE SSCANF, BUT READ BINARY DATA" } } } text { object { x=5 y=570 width=230 height=14 } "basic attribute" { clr=14 } textix="LEN(AA)" } text { object { x=15 y=585 width=220 height=10 } "basic attribute" { clr=47 } textix="LENGTH OF STRING" }