G15 PMN Open Robotics App ======================================================= In development Program including source and entrainment databases: App# 5550010 get it here In development. To be updated September 2018. For those who have followed this before: we have made the decision to make the core open robotics app larger! *****NEONG15WAYS & G15RWX: *****Easily set a PC to autostart G15 roboapps *****eg w/the KdeNeon w/Wayland: *****neong15ways.zip *****Just read instructions in 015inneon.txt, *****to supplement instructions in OpenRobotics page. *****Sometimes (also in Ubuntu) old xorg login *****is wanted: add g15rwx.zip to the package. *****Alternative: an ubuntu offering Wayland can use theg15ways.zip *****setup info for this: 015setup.txt.
======================================================= THE G15 PMN OPEN ROBOTICS APP ======================================================= IN DEVELOPMENT. FOR SSC32U cards with servos and cameras. <i1> |Open robotics |Extends the |g15 pmn fcm |g15 pmn |app: first |open robotics |book scan, |app{5558889} |app#5550010; |and meant to |by srw; for |be run in an |al5d w/extra |environment |handler&3cams |like g15robot <i2> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Next, we |to/from robot |have config |are set up; & |cards, where |config for |the commands |what the robo |to put and |app does, in |get signals |general |() |() () <i3> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Note that the |changed to |g15 pmn |fit various |functions |hardware, and |to interact |these funcs |w/roboparts |are gathered |are easily |together |() |() () <i4> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |a few changes |how robohw is |of core near |to be set up |updchanpos to |is given |allow plural |about 430 |channel use |cards ahead, |eg in rectune |and onwards |() |() () <i5> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Note that |initial rest |some robots |position |need a rather |accurately |intensive |fit the info |initprocedure |in channel |to make its |electronics |() |() () <i6> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Also note |you must use |that, because |creative |of Goedel, |perception of |there is no |context&robot |canonical fcm |to program it |setup:rather |suitably |() |() () <i7> rg1tx= |A config card &incam.bmp&. |File made by |command rg1 |and fetched |by this app |as caminput, |robopart#1 <i8> rg2tx= |A config card &in2cam.bmp&. |File made by |command rg2 |and fetched |by this app |as caminput, |robopart#1 <i9> rg3tx= |A config card &in3cam.bmp&. |File made by |command rg3 |and fetched |by this app |as caminput, |robopart#1 <i10> cmdrg1= |a config card ^. cmdrg1 longtxt* kl ./incam.sh *txtcomplete |gets input |from part#1 |of robot: cliptrail |camera #1 <i11> cmdrg2= |a config card ^. cmdrg2 longtxt* kl ./in2cam.sh *txtcomplete |gets input |from part#1 |of robot: cliptrail |camera #2 <i12> cmdrg3= |a config card ^. cmdrg3 longtxt* kl ./in3cam.sh *txtcomplete |gets input |from part#1 |of robot: cliptrail |camera #3 <i13> pr1tx= |A config card &pr1.txt&. |File made by |this app & |used by |cmdpr1 to |send signals |to robopart#1 <i14> cmdpr1= |a config card ^. cmdpr1 longtxt* kl cat pr1.txt > /dev/ttyUSB0 |sends the *txtcomplete |signalpackage |to part#1 of cliptrail |the robot <i15> crlnmarker= |a config card &~&. crlnnumber= 13. |when the "~" |As configured |char is used, |here: in "put |it becomes |robot" {pr} |ascii line- |calls, |shift <i16> pr1aresttx= ^. *txtcomplete longtxt* |config card #0 p1500 #4 p7 cliptrail 50 t1800~ pr1aresttx kl |robopart#1a: |rest position <i17> pr1bresttx= ^. *txtcomplete longtxt* |config card #1 p1700 t1800 cliptrail ~ pr1bresttx kl |robopart#1b: |rest position <i18> pr1cresttx= ^. *txtcomplete longtxt* |config card #3 p1750 #2 p1 cliptrail 700 t2000~ pr1cresttx kl |robopart#1c: |rest position <i19> pr1aswingtx= ^. *txtcomplete longtxt* |config card #0 p750 #4 p22 cliptrail 20 t1800~ pr1aswingtx kl |robopart#1a: |a swing pos <i20> pr1bswingtx= ^. *txtcomplete longtxt* |config card #1 p1850 t1800 cliptrail ~ pr1bswingtx kl |robopart#1b: |a swing pos <i21> pr1cswingtx= ^. *txtcomplete longtxt* |config card #3 p1950 #2 p1 cliptrail 950 t2000~ pr1cswingtx kl |robopart#1c: |a swing pos <i22> pr1stdmovtim= |This is used 1900. |as ms timer |parameter |when robopart |#1 moved by |some of the |std config |commands <i23> actarraylen= |a config card 33333. |Must be roomy |The command |robomovs via |"recact" |keyboard;this |allows you to |number sets |record a |maxlen of |sequence of |recorded act <i24> maxqtychan= |a config card 333. |Can be roomy; |number used |to make array |with a number |for each |robochannel <i25> pauseaftervu= |a config card 65. |When the g15 |a slight wait |calls command |eg 65ms will |line of a |ensure proper |kind that |screen update |pauses g15, |when looping |eg get video, |such comcalls <i26> |a config card <i27> |a config card <i28> |a config card <i29> |a config card <i30> |a config card <i31> |a config card <i32> |a config card <i33> |a config card <i34> |a config card <i35> |a config card <i36> |a config card <i37> |a config card <i38> |a config card <i39> commandline= 1 |in: quote 2 |action:what 3 |quote says 4 s5 x4 lc |For a g15 pmn i5 |environment tt |like g15robot <i40> sh |This command sh |uses "x4" sh |which can sh. |(despite |apply care; |comments in |also, max len |pd code) work |quote MUST be |in all suit- |within 230 |able contexts <i41> pr1= |BE SURE:max |in:quote |len is 230! |action: |use syntax |sends quote |matching robo |to robot via |electronics; |file pr1tx |the quote |{as set in |must already |config cards} |be "crparsed" <i42> tx |qty incl nil: pr1tx |from: lk pr1tx up up |to: lc fw <i43> |from: |qty jx jx up lk fw |makes file: jx |to: lk sc br <i44> |The command cmdpr1 |has been lk |stored; file |name next |used in |transmitting |to robopart |#1 commandline. <i45> miniarray= && ^. miniarray 222 kl 232 mm |Gem image |some cards |array |from the g15 sz |gem program <i46> maxiarray= && ^. maxiarray 500 kl 503 mm 500 |Expanded gem 500 |image matrix maxiarray sz wwyymatrix <i47> clrexpimage= clrexpimage 250000 maxiarray lk clrthismany. <i48> loadanyarray= t4 |In: disknum, t3 |cardnum, qty, t2 |array t1 |Action: puts | and room |qty cards to | enough is: |array, which | 232 times |must've room | qty cards <i49> ll:99999999 j3 dc j3 t3 0 eq se ex <i50> j1 lc j2 j4 rr 232 fw <i51> j4 j2 232 up ad t2 t4 lo. <i52> loadpackimage= t3 |In: disknum, t2 |cardnum, t1 |array j1 |Action: gets j2 |gem image to 216 |one long j3 |enough array loadanyarray. <i53> unpackimage= s6 |In: inarray, s5 |matrix |Action: i5 |Unpacks tones 50000 |0->255 to a i6 |matrix sized kp. |500x500 <i54> rg1= |tmp use:ldisk |Gives:1=found |Config info |Action: |used:cmdrg1 |Photographs |and rg1tx; |from robopart |this command |#1, camera#1, |assumedly |via c9000 to |may take |maxiarray; |seconds <i55> |The command cmdrg1 |as has been lk |configured |in the first |cards calls |on camera#1 |of the |robot commandline <i56> |from: |qty incl nil: rg1tx rg1tx up lk |gem image up |is put to |c9000 fw |to: |Fetch gem pd: lc rq <i57> d2 3 9000 |Unchanged miniarray |array when lk |image not |found: basis ex loadpackimage <i58> miniarray lk maxiarray lk unpackimage dance. <i59> rg2= |tmp use:ldisk |Gives:1=found |Config info |Action: |used:cmdrg2 |Photographs |and rg2tx; |from robopart |this command |#1, camera#2, |assumedly |via c9000 to |may take |maxiarray; |seconds <i60> |The command cmdrg2 |as has been lk |configured |in the first |cards calls |on camera#2 |of the |robot commandline <i61> |from: |qty incl nil: rg2tx rg2tx up lk |gem image up |is put to |c9000 fw |to: |Fetch gem pd: lc rq <i62> d2 3 9000 |Unchanged miniarray |array when lk |image not |found: basis ex loadpackimage <i63> miniarray lk maxiarray lk unpackimage dance. <i64> rg3= |tmp use:ldisk |Gives:1=found |Config info |Action: |used:cmdrg2 |Photographs |and rg3tx; |from robopart |this command |#1, camera#3, |assumedly |via c9000 to |may take |maxiarray; |seconds <i65> |The command cmdrg3 |as has been lk |configured |in the first |cards calls |on camera#3 |of the |robot commandline <i66> |from: |qty incl nil: rg3tx rg3tx up lk |gem image up |is put to |c9000 fw |to: |Fetch gem pd: lc rq <i67> d2 3 9000 |Unchanged miniarray |array when lk |image not |found: basis ex loadpackimage <i68> miniarray lk maxiarray lk unpackimage dance. <i69> vurobocam1= rg1 |action: sh |Calls on the maxiarray |robocam 1, lk |puts to maxi- sw |array, shows |at upper left pauseaftervu |corner activepause. <i70> vurobocam2= rg2 |action: sh |Calls on the maxiarray |robocam 2, lk |puts to maxi- sw |array, shows |at upper left pauseaftervu |corner activepause. <i71> vurobocam3= rg3 |action: sh |Calls on the maxiarray |robocam 3, lk |puts to maxi- sw |array, shows |at upper left pauseaftervu |corner activepause. <i72> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Next, we |digit series |define 60bit |to encode & |numbers, also |receive info |called num60b |to and from |or just num6, |the robotic |as suitable |parts |() |() () <i73> extractsign= |c is 1 or !1 |in: a |as its sign; |gives: b c |this allows |action: a is |easy saving |number, can |of sign, |be signed; |which can |b is its |later be 'mm' |absolute; |back in :) <i74> f d2 ab |note: basis dance |is considered ex |unsigned w 0 lt !1. <i75> twoto= se |in: number |note: |gives: 2^ n ex s3 |uses loop 1 2 ll:2000000000 mm i3 q3 n? lo. <i76> array2up= |So, for 1^. |instance, |For FAST 2^n |to get 2 with 45 |the exponent sz |5, write: && | 5 &array2up& | array2up setfastvar | ay <i77> initarray2up= undefnum ll:31 31 m1 array2up twoto ya. m1 initarray2up array2up |Signed32bit ya |means careful lo |with 2^31 <i78> get2pow= |range as we |in: number |define it (ie |gives: exp |avoid the |action: |"undefnum"), |Given a |it gives n so |number from |that 2^n is |1 up to the |it, or less |maximum 32bit |than 2^{n up} <i79> s4 d3 ll:31 m1 m1 array2up dc ay ex i4 lo le 30. <i80> twoto23= |signbit, exp 8388608. |8 bits, then first23bits= |a 23bit 8388607. |"mantissa", |32b socalled |which, with |"floating |a resolution, |point nums" |is added to |{fpnums} have |2 ^ exp <i81> first16bits= &high16bits& 65535. setfastvar first31bits= high16bits= 2147483647. 1. first30bits= 1073741823. first16bits first15bits= ng 32767. <i82> first8bits= first16bits 255. an ^top8bitsof16 top8bitsof16= setfastvar 1. twoto30= 1073741824. first8bits twoto15= ng 32768. <i83> ngfirst8bits= ng 1. |This has 1's |for 32 bit |except first |group of bits ^ngfirst8bits first8bits setfastvar <i84> ngsecond8bits= ng 1. |This has 1's |for 32 bit |except second |group of bits ^ngsecond8bits top8bitsof16 setfastvar <i85> signedbytemax= signedintmax= 127. 32767. signedbytemin= signedintmin= !128. !32768. bytecycle= intcycle= 256. 65536. <i86> twoto8= twoto24= 256. 16777216. twoto14= twoto29= 16384. 536870912. twoto16= high15bits= 65536. 1073709056. <i87> max30bits= 1073741823 |in: num |gives: num |action: |applies "an" |with |first30bits, |rm's any 'ng' an. <i88> dance6= basis6= 0 0 1. 0. |Some useful |60bit numbers oneminus6= ten6= !1 0 1. 10. <i89> themaxnum6= maxpurepow6= 1073741823 536870912 1073741823. 0. |Next num6 is |ie, "2 to 59" |highest power |and this fits |of 2 under |this digit |themaxnum6, |series: |"576,460,752 |,303,423,488" <i90> |These maxnums |recommended |for num6 are |range for |used inside |precise whole |arithmetic |number 60bit |num6 funcs, |with these |but it's |functions is |important to |17 digits {& |note that |some more} <i91> issigned6= d |in:num60b 0 |gives:num60b |note:in these | flag |funcs, num60b |action: tells |means a PAIR |whether the |of typical |num60b has |32bit nums |a sign lt. <i92> ts6nonbasis= w |in:num60b |gives:num60b ng |action: |in case input |For a num60b |may be basis, |that is not |prefer ts6 |zero, toggles |sign w. <i93> ts6= |in:num60b |gives:num60b |action: |By analogy to |"ts", toggles |sign of any |num60b <i94> d se d n? w n? an ex <i95> w ng w. <i96> pairflip= i3 |in:a b c d i4 |gives:c d a b |Easy to use s4 |for num60b's s3 s2 i1 s1 i2. <i97> paircopy= |in:a b |gives:a b a b d d. <i98> oratpair= s4 |in:a b c d s3 |gives:c d s2 |action: does i3 |"or" at pair, or |ie, at a and i2 |c, THEN at b i4 |and d or. <i99> anatpair= s4 |in:a b c d s3 |gives:c d s2 |action: does i3 |"an" at pair, an |ie, at a and i2 |c, THEN at b i4 |and d an. <i100> yeorye= |any one of |in:a b |them happens |gives:flag |to be "ye" |action: does |"ye" at both ye |and combines w |with "or"--to ye |check whether or. <i101> nqandnq= |both are |in:a b |"n?" at the |gives:flag |same time |action: does |"n?" at both n? |and combines w |with "an", to n? |check whether an. <i102> ab6= se |in:num60b |gives:num60b ex |action: abs |val of num60b d w 0 ng ge w. <i103> issigned6= d |in:num60b 0 |gives:num60b | flag |action: tells |whether the |num60b has a |sign lt. <i104> isunsigned6= d |in:num60b 0 |gives:num60b | flag |action: tells |whether it |basis or |positive ge. <i105> getsignflag= |Note that |in: a |unlike func |gives: b, |"extractsign" | signflag |this func |action: gives |has flag=1 |abs val of |when num |32bnum & flag |signed,other- |to tell sign |wise basis <i106> f w 0 ab lt w. <i107> getsignflag6= |Signflag is 1 |in:num60b |when signed; |gives:num60b, |signflag is | signflag |basis when |action: gives |the number |abs val of it |is basis or |and flag to |positive |tell sign <i108> 0 dance tx tx d w 0 ng ge w d5 jx. <i109> applysign6= |it does |in: num60b, |nothing at | signflag |flag 0; |gives: |however, when | num60b |num60b is |action: This |basis6, it |reverts sign |won't touch |when flag 1; |the number <i110> n? d d se 0 eq w 0 eq ex an <i111> se w ng ex w. <i112> |Note that |The ranges of |normal |the 60bitnum |32bit nums |{signable} |have range |are a lot lot |ca plus-minus |greater:exact |two billion, |range depends |a bit above |on which |NINE digits |arithmetic <i113> |While some |perfectly w/ |60bit funcs |17 digits,and |can handle |most can go |slightly |halfway up on |higher than |the 18 digit |eighteen |number span |digits, all |range without |of them work |trouble <i114> numtonum6= f |in:normalnum 0 |gives:num60b lt |action: tx |converts 32b |in-range of |num (can have |32b is 0 to |sign) to a |first31bits |num60b ab <i115> f w first30bits first30bits gt |jx will only jx |init "ng" in |case the se |inputnum is |lt than 0 ng an. <i116> num6tonum= |Handles any |in:num60b |sign |gives:number |correctly; |action: |will return |num60b is |max |converted to |first31bits |normal 32bit |number <i117> getsignflag6 first30bits tx an w or 0 jx gt twoto30 se mm w ts. <i118> gt6= |is greater |in:num60b, |than the | num60b |second |gives: |{includes | flag |sign |Flag is dance |handling} |in case the |first 60b num <i119> t2 i1 t1 j1 le d2 s2 dance s1 ex <i120> i1 |In this case, j1 |highparts eq, eq |but can be |signed d2 basis i2 ex j2 <i121> i1 gt. 0 lt se w <i122> lt6= |is less |in:num60b, |than the | num60b |second |gives: |{includes | flag |sign |Flag is dance |handling} |in case the |first 60b num <i123> t2 i1 t1 j1 ge d2 s2 dance s1 ex <i124> i1 |In this case, j1 |highparts eq, eq |but can be |signed d2 basis i2 ex j2 <i125> i1 lt. 0 lt se w <i126> ge6= |is greater |in:num60b, |than or eq to | num60b |second |gives: |{includes | flag |sign |Flag is dance |handling} |in case the |first 60b num <i127> t2 i1 t1 j1 le d2 s2 dance s1 ex <i128> i1 |In this case, j1 |highparts eq, eq |but can be |signed d2 basis i2 ex j2 <i129> i1 ge. 0 lt se w <i130> le6= |is less than |in:num60b, |or equal to | num60b |second |gives: |{includes | flag |sign |Flag is dance |handling} |in case the |first 60 bnum <i131> t2 i1 t1 j1 ge d2 s2 dance s1 ex <i132> i1 |In this case, j1 |highparts eq, eq |but can be |signed d2 basis i2 ex j2 <i133> i1 le. 0 lt se w <i134> eq6= |is equal to |in: num60b |the second | num60b |num60b, also |gives: |as regards | flag |any sign |Flag is dance |in case the |first num60b <i135> s1 eq w ix i1 eq sx an. <i136> maxisfirst6= |two num60b's |in:num60b, |is bigger, | num60b |their |gives:num60b, |sequence is | num60b |switched (can |action: In |be signed) |case the |second of the <i137> s4 s3 s2 s1 i1 i2 i3 i4 <i138> i1 se i2 i3 i4 ex ge6 pairflip. <i139> egswapmax1st= |two num60b's |in:num60b, |is bigger, | num60b |their |gives:num60b, |sequence is | num60b, flag |switched (can |action: In |be signed); |case the |flag=1 when |second of the |did swap <i140> s4 s3 s2 s1 i1 i2 i3 i4 <i141> i1 d2 i2 i3 basis i4 ex pairflip lt6 1. <i142> sl6= getsignflag6 |in:num60b |is done at |gives:num60b |32b nums,sign |action:lshift |is also kept |num60b 1 bit |but ONLY when |{any sign is |twice num is |kept; note |within range} |that when sl t8 <i143> f twoto29 an s1 sl first30bits an <i144> w w sl first30bits j8 an se i1 ye or ts6. <i145> sl6posmax= |Can give some |in:num60b |funcs higher |gives:num60b |range when w/ |action:lshift |eg gt6 in a |positive num6 |loop (rarely |so that if it |needs any use |butts at max, |of eg ts6 at |it gets max |same time) <i146> f twoto29 an s1 sl first30bits an <i147> w ix 0 sl ge i1 ix ye |first30bits: or 1073741823 le sx an <i148> d4 w. sh first30bits f sx ix <i149> sr6= getsignflag6 |in:num60b |use of 'sr' |gives:num60b |at -1, which |action:rshift |yields same, |num60b 1 bit |the use of |{any sign is |sr6 in such a |kept but |case gives 0} |unlike the t8 <i150> d 1 an s1 sr <i151> w or sr w j8 se i1 twoto29 mm ts6. <i152> sr6twopowmax= getsignflag6 |in:num60b |"clean" 2 to |gives:num60b |highest pow |action:as sr6 |a num6 can |but when num6 |have while |equals |still under |maxnum6, the |maxnum6 |result is a t8 <i153> d d6 1073741823 eq sh d sh 1073741823 maxpurepow6 eq j8 an applysign6 n? ex <i154> d 1 an s1 sr <i155> w or sr w j8 se i1 twoto29 mm ts6. <i156> adpositive6= |the num60b's |in: num60b |correctly: | num60b |condition is |gives: |that both are | sumnum60b |positive {and |A subroutine |that their |for ad6 and |sum is within |su6,this adds |60b range} <i157> s2 t2 |hi1 is j1 |first1 is i1 |hi2 is j2 |first2 is i2 s1 t1 <i158> i1 j1 i2 j2 ad ad first30bits first30bits an an s3 s4 <i159> i3 h4 i2 |hi3,ie, high lt |30bits for |result is put |on stack, |then first3 i4 se i3. <i160> su6unlsign= |the absolute |in:num60b, |values of the | num60b |two num60b's, |gives: |then applies | num60b |the sign of |action: |the first of |This subfunc |the input on |of su6 adds |the sum <i161> s4 s3 s2 s1 i1 0 lt sx <i162> i1 ix i2 ab6 i3 i4 ab6 adpositive6 applysign6. <i163> su6= s2 |in:num60b, t2 | num60b s1 |gives: t1 | num60b j1 |action: 0 |Gives first lt |minus second sx <i164> ix d6 j2 j1 0 i1 lt j2 i2 xr su6unlsign n? ex <i165> j1 s2 i1 t2 ab6 j2 i2 ab6 egswapmax1st s1 tx t1 <i166> i1 j1 i2 j2 su su first30bits first30bits an an s3 s4 <i167> i1 q4 i2 lt i4 se i3 <i168> ix dance jx |ie, when abs xr |are swapped, n? |xor |the similar |sign is !, |then putsign: d2 applysign6. <i169> ad6unlsign= |the two 60b |in:num60b, |numbers when | num60b |their signs |gives: |differ | num60b s4 |action: s3 |This subfunc s2 |of ad6 adds s1 <i170> i1 i1 0 i2 lt i3 i4 ab6 su6 d7 ex <i171> i3 i4 i1 i2 ab6 su6. <i172> ad6= s2 |in:num60b, t2 | num60b s1 |gives: t1 | num60b j1 |action: 0 |Adds the two lt |numbers sx <i173> ix d6 j2 j1 0 i1 lt j2 i2 xr ad6unlsign n? ex <i174> j1 s2 i1 t2 ab6 j2 i2 s1 ab6 t1 <i175> i1 j1 i2 j2 ad ad first30bits first30bits an an s3 s4 <i176> i3 h4 i2 lt i4 i3 ix se applysign6. <i177> mm3to6= |Input numbers |in:normalnum1 |(signable); | normalnum2 |range input: |gives:num60b |up to |action: |first30bits, |multiplies |or, easily |32bit numbers |said, ca |into num60b |one billion <i178> |The resulting |17 ascii |num60b,while |digit format |not quite a getsignflag |number in the s4 |sense of real s2 |numbers of getsignflag |32bit kind, s3 |can be put to s1 <i179> i1 twoto15 di |first number i1 |has high part first15bits |in i1, low an |part in j1 t1 s1 <i180> i2 i2 first15bits twoto15 an di |2nd number |has high part |in i2, low |part in j2 t2 s2 <i181> |What we call |are in i5, |"topflow" is |i6, i7, i8; |stored in ix, |the topflow |jx, where ix |is lshifted, |is high part |respectively: |of num60b; |45 bits, 30 |The four |bits, 30 bits |mm results |and 15 bits <i182> |Topflow here high15bits |lshifted 45 an |bits: sx i1 i2 mm first15bits an f s5 <i183> |Topflow here twoto15 |lshifted 30 di |bits: ix j1 ad i2 sx mm first15bits an f s6 <i184> |Topflow here twoto15 |lshifted 30 di |bits: ix i1 ad j2 sx mm first15bits an f s7 <i185> |Topflow here high15bits |lshifted 15 an |bits: tx j1 j2 mm first15bits an f s8 <i186> |The results |The results |are lshifted |are all, at |30,15,15,0 |most, 15 |bits, and |bits, since |ad6 can be |we have |used to add |put all |these and to |higher bits |topflow; |to topflow <i187> |First value |Second value |lshifted 30: |lshifted 15: 0 i6 twoto15 mm i5 0 ad6 <i188> |Third value |fourth value |lshifted 15: |kept as is: 0 0 i7 i8 twoto15 mm ad6 ad6 <i189> |Topflow i3 |adds i4 ix xr jx ad6 applysign6. <i190> mm6= |32bit's 'mm'; |in:num60bt, |any signs are | num60bt |handled;as w/ |gives:num60bt |mm, funnynums |action: |can arise if |multiplies |the ranges |60bit numbers |don't allow |by analogy to |multiply up <i191> getsignflag6 tx s4 s3 getsignflag6 sx s2 s1 <i192> i1 themaxnum6 n? ix i3 jx n? xr or applysign6 d6 ex <i193> i2 |In addition, i4 |the high part |of one of the |input numbers |are other mm3to6 |than basis & s8 |deserves to s7 |be reckoned w <i194> i1 ad i4 i7 mm ad first30bits an i3 i2 mm i8 <i195> ix jx xr applysign6. <i196> di6= |be signed); |in:num60b, |maxnum at |num60b |divisor 0; |gives:num60b |the num6 |action:whole |routines work |number divide |for up to 17 |first on |digits {and a |second (can |bit more} <i197> getsignflag6 |Here, the 60b sx |num i3:i4 is t6 |div at j5:j6; t5 |their signs getsignflag6 |in i9 and ix, s9 |respectively; s4 |Bitcounter is s3 |num60b j9:jx <i198> i3 d2 i4 j5 j6 eq6 dance6 n? ex <i199> i3 d2 i4 j5 j6 basis6 gt6 ex <i200> i3 se first30bits eq |bitcounter i4 |must be able first30bits |to pass eq an q4 <i201> |ix becomes |resultsign, |flag 1 when |unlike flags: i9 ix xr sx <i202> j5 d4 j6 |Very decently |we give the |right sign themaxnum6 |when basis ix |divisor :) applysign6 yeorye ex <i203> dance6 |Result is |being built |up on stack, |where |sl6posmax |bitcounter |must be used tx |in case butt t9 basis6 <i204> |prepare j5 |counters: j6 i3 i4 gt6 ll:1 dh <i205> j5 j9 j6 jx sl6posmax sl6posmax t6 tx t5 t9 tn tn tn tn tn q1 <i206> lo j9 jx sr6twopowmax tx t9 <i207> |Extra ex |check: j9 j5 jx j6 nqandnq sr6twopowmax t6 se t5 <i208> ll:2000000000 i3 i4 j5 j6 lt6 dh <i209> i3 j9 i4 jx j5 oratpair j6 tn su6 tn s4 tn s3 tn tn tn <i210> j9 yeorye jx sr6 d3 paircopy ix tx applysign6 t9 ex <i211> j5 lo. j6 sr6 t6 t5 <i212> mo6= ab6 |in:num60b, s4 |num60b s3 |gives:num60b |action: 60bit getsignflag6 |analogy to sx |"mo" {modulus s2 |or remainder} s1 <i213> i1 i3 i2 i4 d mm6 d su6 i3 i4 ix di6 applysign6. <i214> |As for the |should be |conversion to |provided, as |and from such |a 'wrap' |as num4 and |around these |num6, usually |functions so |some extra |as to handle |checks and |recommended |processing |qty of digits <i215> quotetonum6= s4 |in:quote |No spaces,dot |gives:num60b |comma or plus |action: |or such in |converts |or around the |ascii digits |digits 0->9; |to the num60 |optional sign |equivalent |char is "-" <i216> 0 se 0 ex i4 lk n? h4 <i217> i4 i8 lk |dash? se 45 eq s8 h4 <i218> ll:1 i4 0 lk 10 |Ascii: mm6 48 su 0 ad6 <i219> h4 lo i4 lk ye se i8 q1 applysign6. <i220> n6toquright= 25 ^. ad |This is set 30 |to the sz |rightmost |Quote for |part of it |next func n6toquright && kl <i221> num6toquote= |obs:more than |in:num60b |numbers, num6 |gives:quote |digitseries |action: |can be seen |converts |as "script |num60b to |bits" or |a quote with |"encoded |digit series; |programs" <i222> getsignflag6 |Right part of s8 |quotespace of |this |The sixty |function: |bit number n6toquright |is present lk |at the stack |{positive} s4 <i223> |Resultlen |The result |initialized |quote is |to dance: |nilcomplete: 0 i4 kl 1 s3 q4 <i224> ll:1 |asciinum 0: |num60b 48 |at stack: ad d i4 d kl 0 q4 10 |Extra num: mo6 sh <i225> 0 h3 10 di6 q1 d lo d |Processed! nqandnq sh d2 sh <i226> |eg asciisign: h3 45 f i8 i4 n? kl q4 d5 sh <i227> |length into |done! |place: i3 i4 kl i4. <i228> somecalc6tx1= whole ^. *txtcomplete longtxt* somecalc6: too cliptrail l, mostly for coders, which somecalc6tx1 explores 60bit kl <i229> somecalc6tx2= ore ^. *txtcomplete longtxt* numbers, also cliptrail called num60b or just "num6" somecalc6tx2 . These are, m kl <i230> somecalc6tx3= her ^. *txtcomplete longtxt* scientifically cliptrail correct, a ki nd of "encoded somecalc6tx3 programs" rat kl <i231> somecalc6tx4= more ^. *txtcomplete longtxt* than 1st hand cliptrail numbers. The r ange is 17 dig somecalc6tx4 its, and some kl <i232> somecalc6tx5= Be ^. *txtcomplete longtxt* above that. Ok cliptrail with dash, -, as sign. ONLY somecalc6tx5 DIGITS here!! kl <i233> somecalc6tx6= time: ^. *txtcomplete longtxt* SURE that you cliptrail provide meanin gful input! Tw somecalc6tx6 o numbers each kl <i234> somecalc6tx7= or ^. *txtcomplete longtxt* {As coder's to cliptrail ol, this progr am doesn't blo somecalc6tx7 ck nondigits n kl <i235> somecalc6tx8= .} ^. *txtcomplete longtxt* out-of-range i cliptrail nput;nor does it reprocess t somecalc6tx8 oo-long output kl <i236> somecalc6tx9= ^. longtxt* 12345678901234 cliptrail 567 *txtcomplete somecalc6tx9 kl <i237> somecalc6tx10= ^. longtxt* ************** cliptrail *** {just <en ter> to exit.} somecalc6tx10 *txtcomplete kl <i238> somecalc6= |usage, shows |action: |the mm6,di6, |easy way to |mo6,su6,ad6 |find out |in action |some num60b |with input |digit |via prtinput; |sequences |mostly for |by keyboard |programmers:) <i239> prtsuspend lk prt && somecalc6tx3 prt lk somecalc6tx1 prt lk somecalc6tx4 prt lk somecalc6tx2 prt <i240> somecalc6tx5 somecalc6tx7 lk lk prt prt somecalc6tx6 somecalc6tx8 lk lk prt prt <i241> ll:2000000000 somecalc6tx9 lk prtsuspend prt prtrelease somecalc6tx10 lk prt <i242> prtinput se clipleading cliptrail ex sx ix ix lk quotetonum6 s4 n? s3 <i243> prtinput se clipleading cliptrail ex sx ix ix lk quotetonum6 s6 n? s5 <i244> prtsuspend mm6 ^Multiplied: prt i3 num6toquote i4 i5 i6 prt <i245> ^Added: ad6 prt i3 num6toquote i4 i5 i6 prt <i246> ^Substracted: su6 prt i3 num6toquote i4 i5 i6 prt <i247> ^Divided: di6 prt i3 num6toquote i4 i5 i6 prt <i248> ^Modulus: mo6 prt i3 num6toquote i4 prt i5 i6 lo. <i249> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |The somecalc6 |meaningful |can be used |schemes of |by the |encoding |programmer to |info to the |explore what |60bit num6 |is most |format |() |() () <i250> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |In our Open |and from |Robotics |which output |scheme, they |can be |are meant to |decoded, at |be used to |edges of the |encode input |fcm matrix |() |() () <i251> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Next, more |pmn terminal |core robotics |interactively |functions, |to check |some of which |connections |are easily |w/all parts |called at g15 |of the robot |() |() () <i252> crparsed= |as set up |in: quote |in the |gives: quote |config cards, |action: |and typically |replaces any |used on line |crlnmarker |commands |with |before sent |crlnnumber |to roboparts <i253> s4 ll:2000000000 i4 i3 lk 0 s3 le crlnmarker up se lk tx ex <i254> f4 crlnnumber lk f4 jx kl eq n? h4 q3 d3 lo. <i255> pr1cr= f |as "pr1", but crparsed |calls |crparsed |first; useful |when new |texts are |used pr1. <i256> recactarray= |#0:qty couple ^. |Array meant actarraylen |to be used |From config |w/newcouple & sz |fromcouple; && |most recent recactarray |recorded act kl |for robot <i257> clractarray= actarraylen |action: recactarray |clears the lk |recactarray; clrthismany. |done eg after |save to disk, |before next |act recording clractarray <i258> mem= s4 |in: addr i4 |This is a makenumber |programmers 17 |tool, to view 10 |numbers in |ram; 5 x 15 ce |are shown :) bx <i259> ll:15 i4 lk ll:5 makenumber <i260> m2 37 165 ad mm 10 rp ad h4 m1 freestars 50 lo mm lo. <i261> mems= sx |in: startaddr |This is a |programmer's |tool: 75 & 75 |nums from ram |shown until |"q" pressed <i262> ll:2000000000 mem m1 75 mm ix ad <i263> kk or |q,Q: f se 113 eq ex w 81 eq lo. <i264> disknumstod= |Used by ^. |numstodisk cardnumstod= ^. disknumstod posnumstod= basisthis ^. cardnumstod posnumstod basisthis basisthis <i265> initnumstod= |and be sure |in: disknum, |to finish | cardnum |with |action: do |donenumstod |this once |before series |of calls to s2 |numstodisk, s1 <i266> disknumstod posnumstod basisthis |disktonums |so it's okay |uses sc; |to use both |numstodisk |rather |uses lc; |at the same cardnumstod |time basisthis basisthis <i267> i1 i1 n? disknumstod kl se i2 cardnumstod ex kl <i268> 232 sc clrthismany. <i269> donenumstod= |This will |action: do |ensure the |this once |last numbers |after series |are put to |of calls to |disk and also |numstodisk |put a nilcard |of nulls |after this <i270> disknumstod |Note that lk |when getting n? |numbers back |from disk, se |no 'done' |routine is |required ex <i271> posnumstod disknumstod lk lk n? cardnumstod |In case of lk |empty array, rw |there's just |a nilcard cardnumstod d7 danceup <i272> 232 disknumstod sc lk cardnumstod lk clrthismany rw. <i273> numstodisk= |initialized |in: number |by |action: puts |initnumstod |the 32bit |Can be used |number to |to save |next pos in |arrays (can |present |have nil) |card, as sx <i274> disknumstod lk n? se ex <i275> posnumstod ix lk posnumstod 231 lk gt sc ya posnumstod danceup d8 ex <i276> disknumstod cardnumstod lk cardnumstod lk rw danceup <i277> posnumstod ix dancethis sc 232 sc clrthismany kl. <i278> disktondisk= |Used by ^. |disktonums disktoncard= ^. disktondisk disktonpos= basisthis ^. disktoncard disktonpos basisthis basisthis <i279> initdiskton= |{which reads |in: disknum, |an array} | cardnum |action: do |this once |before series |of calls to s2 |disktonums s1 <i280> disktondisk disktonpos basisthis disktoncard basisthis basisthis <i281> i1 i1 n? disktondisk kl se i2 disktoncard ex kl <i282> 232 lc clrthismany. <i283> disktonums= |For any array |gives: number |--which can |action: keeps |also have nil |on reading |--so calling |cards as |funcloop must |initialized |handle qty of |by |calls to this |initdiskton <i284> disktondisk lk n? se ex <i285> disktonpos disktondisk lk lk ye disktoncard lk rr disktoncard d7 danceup <i286> disktonpos disktonpos lk lc ay |At stk, given |by the func danceup <i287> disktonpos disktonpos lk 231 le se ex basisthis. <i288> newcouple= |this is inc |in: a b array |by one {ie, |action: |qty at #0 is |appends a,b |not arraylen} |to the |and a,b put |"couplearray" |to qty * 2 |Arraypos# 0= |and qty * 2 |qty couples; |plus one <i289> s3 i3 s2 lk s1 sl 1 i3 ku s4 <i290> i1 i2 i4 f4 i3 i3 ya ya. <i291> initcouple= s1 |in:couplearay |Note that it |action: sets |leaves the |arraypos#1 to |qty couples |1, done prior |intact |to repeat 1 |calls to f1 |"fromcouple" kl. <i292> donecouple= |fromcouple, |in:couplearay |this will |gives:flag |tell when |action: |array has no |after a call |more couples |to initcouple |to offer, by |and before |comparison |each call to |with pos#0 <i293> s1 i1 lk f1 lk gt. <i294> addtxtandnum= s1 |in: maintext, tx |appendtxt,num |action:adds |appendtxt |then number |to maintext, |must've room sx <i295> ix ix jx i1 makenumber addtexts addtexts. <i296> fromcouple= |all couples |in: array |in array;qty& |gives: a b |array left |action:after |intact; only |initcouple, |counter, at |as long as |pos #1, is |donecouple 0, |changed,after |this gives |init eg to 1 <i297> s3 i2 f3 sl lk up s2 i3 i2 ay sl 1 i3 f3 ay ku. <i298> poschannels= |an array used ^. |to store |present maxqtychan |position sz |of roboparts && |as pr the poschannels |channels; kl |basis=no info <i299> clrposchan= maxqtychan |action: poschannels |clears the lk |info as to clrthismany. |the present |positions of |the servos |etc clrposchan <i300> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |card section: |suit various |HARDWARE |robots; some |SPECIFIC |cards else- |ROBOFUNCTIONS |where in app |fairly easily |may also have |updated to |to be updated |() |() () <i301> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Some of the |this includes |data in the |info as to |next cards |what is |should match |regarded as |the initial |'rest |config cards, |position',etc |() |() () <i302> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |The present |in which |robot setup |channel 0 to |for the next |4 are used, |functions: |from ground |al5d arm with |upwards |ssc32u card |towards grip |() |() () <i303> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |First cam is | |mounted on | |roboelbow; | |second on the | |area that | |holds roboarm | |() |() () <i304> poschanmin= poschanmax= 750. 2250. |minimum |maximum |These fit |For some |the ssc32u |robohardware, |positions; |they are |enforce eg by |diversified |"makefit" |over channels <i305> |prepare all pr1bresttx |relevant lk |config texts: crparsed pr1aresttx pr1cresttx lk lk crparsed crparsed <i306> |prepare all pr1bswingtx |relevant lk |config texts: crparsed pr1aswingtx pr1cswingtx lk lk crparsed crparsed <i307> rrr= |Timing |action: this |involves |sends the |pr1stdmovtim |restposition |NOTE: when |instructions |you change |as set up in |config,change |config to all |numbers in |roboparts |this func,too <i308> pr1aresttx pr1bresttx lk lk pr1 pr1 pr1stdmovtim pr1stdmovtim activepause activepause <i309> pr1cresttx |Next, the lk |poschannels pr1 |must get the |info, too :) poschannels pr1stdmovtim lk activepause sx <i310> |This must fit 1700 |config cards: |channel#1 1500 1 |channel#0 0 ix ix ya ya <i311> 1700 1750 |channel#2 |channel#3 2 3 ix ix ya ya <i312> 750 |channel#4 4 ix ya. <i313> robotswing= |Timing |action: this |involves |sends a std |pr1stdmovtim |configured |NOTE:when you |swing pos to |change config |robot, as a |change info |contrast to |on channels |rrr command; |here, too <i314> pr1aswingtx pr1bswingtx lk lk pr1 pr1 pr1stdmovtim pr1stdmovtim activepause activepause <i315> pr1cswingtx |Next, the lk |poschannels pr1 |must get the |info, too :) poschannels pr1stdmovtim lk activepause sx <i316> |This must fit 1850 |config cards: |channel#1 750 1 |channel#0 0 ix ix ya ya <i317> 1950 1950 |channel#2 |channel#3 2 3 ix ix ya ya <i318> 2220 |channel#4 4 ix ya. <i319> |A "stream" is |robohardware, |here a series |&which has in |of couples of |it eg also |numbers,which |how much time |can be made |the program |into eg a |should wait |text package |after sending |sent to the |the command <i320> |So, for this |1:channel |robohardware |2:position |we use array |3:movetime ms |recactarray |4:apply crln |w/streams of |5:to motors |num-couples; |6:pause ms |first of them |after send |is the TYPE#: |7:complete <i321> robocrtxt= |As set by &9&. |config, this |crln is |suitable crlnnumber |character robocrtxt |in building up |up command to kl |robohardware <i322> robochantxt= |note:a change & #&. |of the core robopostxt= |in first line & p&. |--space put robomstxt= |before #-- & t&. |this allows |Fits ssc32u |parallel |robohardware |channels <i323> roboposinca= |This is inc A ^. |for pgdn/pgup |Fits the |in recact: |ssc32u |robomoves eg |interface |by keyclicks 50 |This var says roboposinca |how much to kl |change posnum <i324> robotiminca= |This is inc A ^. |for pgup/pgdn |recact timing |This var says |how much to 320 |way after a robotiminca |pgup/pgdn kl |move <i325> roboposincb= |This is inc B ^. |for home/end |Fits the |in recact: |ssc32u |robomoves eg |interface |by keyclicks 20 |This var says roboposincb |how much to kl |change posnum <i326> robotimincb= |This is inc B ^. |for home/end |recact timing |This var says |how much to 200 |way after a robotimincb |home/end kl |move <i327> roboposincc= |This is inc C ^. |for f1/f2 |Fits the |in recact: |ssc32u |robomoves eg |interface |by keyclicks 5 |This var says roboposincc |how much to kl |change posnum <i328> robotimincc= |This is inc C ^. |for f1/f2 |recact timing |This var says |how much to 75 |way after a robotimincc |f1/f2 kl |move <i329> torobohw= |ie, to robot ^. |hardware,here |as text quote 260 |This must sz |have no more && |length than torobohw |230; eg made kl |by next funcs <i330> nowrobochan= |function ^. |addtorobohw, nowrobopos= |which is next ^. |defined;when nowroboms= |streams go to ^. |robot they're |These are upd |used to upd |by the |poschannels <i331> updchanpos= |This is |action:uses |called, as a |variables |change from |set by |core, when- |addtorobohw |ever position |to update |is sent from |array |next func |poschannels <i332> poschannels nowrobopos lk lk nowrobochan lk ix sx ya. <i333> addtorobohw= |note:changed |in:type,num |from core; |action:apends |type 1,chan, |text suitable |type 2,pos & |for text |type 3,ms,but |steered robo |can be basis |tronics to |for type 4,cr |"torobohw" |(ignores gt4) <i334> torobohw s4 lk |Note: be sure |Set torobohw |to control |to nil len |such adding |before |to this quote |building it |so len lt 230 |up tx s3 <i335> i3 jx 1 robochantxt eq i4 n? addtxtandnum i4 nowrobochan kl d8 ex <i336> i3 jx 2 robopostxt eq i4 n? addtxtandnum i4 nowrobopos kl dh tn <i337> updchanpos |This is added tn |relative to tn |core to tn |handle the tn |parallel tn |channelwork tn |in eg ex |rectune <i338> i3 jx 3 robomstxt eq i4 n? addtxtandnum i4 nowroboms kl d8 ex <i339> i3 jx 4 robocrtxt eq addtexts n? |Note that |2nd num can |be basis for |type 4,5,7 d4 ex. <i340> perfrobohw= |to robomotors |in:type,num |& nils quote; |action:at |note:this has |type 1-4, it |slight change |adds to quote |of core in it |"torobohw"; torobohw |at t5 {type5} lk |it sends it tx <i341> s5 d3 sx ix i5 6 activepause eq n? ex <i342> ix jx 5 pr1 eq |To robopart1 n? |updchanpos |already calld jx nillify d5 ex <i343> ix i5 addtorobohw. <i344> perf1recact= |this command |action:given |line built & |that the |sent to the |couple# at |robohw; |pos#1 in |perfrobohw, |recactarray |called here, |is set {1->n} |updates also |it will get |poschannels <i345> recactarray torobohw lk lk s4 nillify |Must be done |before first poschannels |commandtext lk s3 <i346> ll:2000000000 i4 donecouple se ex <i347> i4 i8 fromcouple 7 s9 eq s8 se |Is it type 7, |meaning |stream done? ex <i348> i8 i9 |This handles |type 1-4 incl |5 to send to |robohw: perfrobohw lo. <i349> robominimovea= |recactarray |in:direction, |move type A |channel |in direction |action:with |1 or -1 |direction 1 |relative to |or signed, |poschannels, |this adds to |& sends cmd |the top of |to robomotors <i350> sx roboposinca t5 lk recactarray j5 lk mm s1 |Direction poschannels |handled lk s3 s8 <i351> ix poschanmin i3 poschanmax ay |Ranges for |channel |handled i8 makefit ad s9 <i352> |Next the |Note that |stream is |recactarray |added to |should be |top of |very roomy |recactarray, |so that it |in sequence |is in praxis |that fits |always bigger |ssc32u hw |than required <i353> |Before add |function can, |to the top |after build |of the array, |of stream, |the present |call on its |quantity |performance |couples is i1 |noted, so lk |that the t4 <i354> |Assert chan: |Assert pos: |type 1 |type 2 1 2 |chan |position ix i9 i1 i1 newcouple newcouple <i355> |Assert ms: |Note that |type 3 |type#3 is 3 |command to |ms |robohardware, robotiminca |while type#6 lk |allows this i1 |g15pmn prog newcouple |to wait at it <i356> |Assert cr: |Assert send: |type 4 |type 5 4 5 0 0 i1 i1 newcouple newcouple <i357> |Then program |stream is |waits,type 6 |done,type 7 6 7 robotiminca 0 lk i1 i1 newcouple newcouple <i358> |The array has j4 |got the info; up |j4 has the f1 |qty couples kl |prior to this |stream; let's |get it |started: perf1recact. <i359> robominimoveb= |Exactly as |robominimovea |but type B <i360> sx roboposincb t5 lk recactarray j5 lk mm s1 |Direction poschannels |handled lk s3 s8 <i361> ix poschanmin i3 poschanmax ay |Ranges for |channel |handled i8 makefit ad s9 <i362> i1 lk t4 <i363> |Assert chan: |Assert pos: |type 1 |type 2 1 2 |chan |position ix i9 i1 i1 newcouple newcouple <i364> |Assert ms: |type 3 3 |ms robotimincb lk i1 newcouple <i365> |Assert cr: |Assert send: |type 4 |type 5 4 5 0 0 i1 i1 newcouple newcouple <i366> |Then program |stream is |waits,type 6 |done,type 7 6 7 robotimincb 0 lk i1 i1 newcouple newcouple <i367> j4 up f1 kl perf1recact. <i368> robominimovec= |Exactly as |robominimovea |but type C <i369> sx roboposincc t5 lk recactarray j5 lk mm s1 |Direction poschannels |handled lk s3 s8 <i370> ix poschanmin i3 poschanmax ay |Ranges for |channel |handled i8 makefit ad s9 <i371> i1 lk t4 <i372> |Assert chan: |Assert pos: |type 1 |type 2 1 2 |chan |position ix i9 i1 i1 newcouple newcouple <i373> |Assert ms: |type 3 3 |ms robotimincc lk i1 newcouple <i374> |Assert cr: |Assert send: |type 4 |type 5 4 5 0 0 i1 i1 newcouple newcouple <i375> |Then program |stream is |waits,type 6 |done,type 7 6 7 robotimincc 0 lk i1 i1 newcouple newcouple <i376> j4 up f1 kl perf1recact. <i377> saveactarray= s4 |in:dsk#,crd# s3 |action:saves |also gives |recactarray |prt message |here, gives |when done |prt text recactarray |message in lk |case dsk# 0 tx <i378> &cardid?& d3 t1 j1 prt i3 ye ex <i379> jx ^S: qty cards: lk prtcont |qty couples sl |twice that, |plus two i3 u2 i4 s2 initnumstod <i380> ll:2000000000 donenumstod cardnumstod lk m4 i2 su ispro prtnum d7 ex <i381> m1 numstodisk jx q2 ay lo. <i382> loadactarray= s4 |in:dsk#,crd# s3 |action:loads |also gives |recactarray |prt message |from here; |when done |prt text recactarray |message in lk |case dsk# 0 tx <i383> &cardid?& d3 t1 j1 prt i3 ye ex <i384> i3 disktonums i4 |First in |recactarray, |supposedly |qty couples: jx initdiskton kl <i385> |This many ^L: qty cards: |more nums, prtcont |after 1st: jx lk sl up s2 <i386> ll:2000000000 disktoncard lk m4 i2 su ispro prtnum d6 ex <i387> disktonums q2 |Here, i1, |since basis |pos handled: i1 jx ya lo. <i388> actsavloatx1= odule ^. *txtcomplete longtxt* cliptrail Hi! You're an enterprising c hap! This is t actsavloatx1 he save/load m kl <i389> actsavloatx2= to ^. *txtcomplete longtxt* cliptrail for recact, wh ere whatever i s in recactarr actsavloatx2 ay can be put kl <i390> actsavloatx3= ten ^. *txtcomplete longtxt* cliptrail desired positi on of disk, or its content c actsavloatx3 an be overwrit kl <i391> actsavloatx4= t, ^. *txtcomplete longtxt* cliptrail with previousl y stored motor entrainment d actsavloatx4 ata. At presen kl <i392> actsavloatx5= rage: ^. *txtcomplete longtxt* cliptrail content of rec array now requ ires this many actsavloatx5 cards for sto kl <i393> actsavloatx6= } ^. *txtcomplete longtxt* cliptrail {card qty is a n estimate; do pls have a 'r actsavloatx6 oomy approach' kl <i394> actsavloatx7= l: ^. *txtcomplete longtxt* cliptrail Now you can pr ess s=save,l=l oad, or <space actsavloatx7 > when done s& kl <i395> actsavloatx8= case} ^. *txtcomplete longtxt* cliptrail Save: pls type cardid {eg k1 000, be sure o actsavloatx8 f place, lower kl <i396> actsavloatx9= } ^. *txtcomplete longtxt* cliptrail Load: pls type cardid {eg k1 000, lowecase, actsavloatx9 overrides ram kl <i397> actsavloatx10= ===== ^. *txtcomplete longtxt* cliptrail ====={the reca ctarray save/l oad module jus actsavloatx10 t completed}== kl <i398> actsaveload= |also called |action: opens |by recact |recactarray |at <f8> press |save/load prtsuspend |module, can && |be called prt |at terminal && |directly; is prt <i399> actsavloatx1 actsavloatx3 lk lk prt prt actsavloatx2 actsavloatx4 lk lk prt prt <i400> actsavloatx5 sl lk prt u2 232 recactarray di lk u2 lk prtnum <i401> actsavloatx6 actsavloatx7 lk lk prt prt ll:1 ki prtrelease t5 <i402> j5 actsavloatx10 32 lk eq prt n? d4 ex <i403> j5 d6 115 eq actsavloatx8 j5 lk 83 prt eq prtinput or ci n? saveactarray <i404> j5 d6 108 eq actsavloatx9 j5 lk 76 prt eq prtinput or ci n? loadactarray <i405> q1 lo. <i406> recactinfo= ^<pgup>,<pgdn> |action: info pp |for recact ^moves robot; ce pp ^As configured ^Small moves: pp pp ^digit=channel ^<home>,<end> pp pp <i407> ^Smallest: ^also at full pp pp ^<f1>,<f2> ^recactarray} pp pp ^<esc> quits ^{pract puts pp pp ^{autoquits ^it to robot; pp pp <i408> ^<esc> quits ^To append to pp pp ^there, too} ^loaded array, pp pp ^save & load: ^load it, do pp pp ^<f8> ^pract, then pp pp <i409> ^go back to ^it anew; then pp pp ^recact & load ^press keys; pp pp ^SAVE BEFORE pp ^RECACT QUIT! pp. <i410> recact= |pgup/pgdn to |action:use |move this; |keyboard to |esc when done |record robo |--the act is |moves; press |stored & can |0 to 4 for |be put to fcm |channel to |and repeated |roboengines & |by "pract" <i411> clractarray |preserve it; |Array is |overwritten recactarray |at next call lk |to recact; sx |only some |Put the act |recacts are |to disk to |"general" <i412> basis i5 s8 |esc 27 |Channel now 27 eq ll:2000000000 se ki s5 ex <i413> i5 dance |key{pgup}: i8 280 eq n? d3 robominimovea <i414> i5 oneminus |key{pgdn}: i8 281 eq n? d3 robominimovea <i415> i5 dance |key{home}: i8 278 eq n? d3 robominimoveb <i416> i5 oneminus |key{end}: i8 279 eq n? d3 robominimoveb <i417> i5 dance |key{f1}: i8 282 eq n? d3 robominimovec <i418> i5 oneminus |key{f2}: i8 283 eq n? d3 robominimovec <i419> i5 |key{f8}: 289 eq se actsaveload <i420> i5 iswithin 48 n? su t3 d2 j3 0 j3 4 s8 <i421> ix se lk |qty couples |Done rec when sl |array nr full 30 ex ad actarraylen gt lo. <i422> isescpressed= |key and check |gives: flag |whether it is |action: |esc (27); |useful for |other keys |loops; when |ignored |keyboard |pressed, it |will read the ck <i423> f ki n? 27 se ex sh eq. <i424> pract= |this func, |action: given |eg after |streams in |restpos or |recactarray, |other start- |eg by using |pos, resends |keyboard in |all of it |recact, or |to the robo- |from disk, |motors <i425> recactarray |Set to 1st lk |couple: |This func can |be quit in |the middle by |press on |<esc> ix sx initcouple <i426> ll:2000000000 perf1recact ix donecouple isescpressed or se ex lo. <i427> orinfo= pp |action: ^roboapp info |Info about pp |this app ^ Interactive ce pp ^orinfo: ^funcs include pp pp ^g15 pmn fcm <i428> ^vurobocam1 ^recact,pract pp pp ^{or 2 or 3} ^ At least one pp pp &rrr {r.rest}& ^rrr to init pp pp ^robotswing ^arrays, also pp pp <i429> ^robotswing to ^{q quits car} pp pp ^init motors; ^recact keys: pp pp ^source: ^i1 ^ recactinfo pp pp ^ car pp <i430> ^{when setting ^ce screenclr pp pp ^up fcm matrix ^qu quit pp pp ^somecalc6 ^************ pp pp. ^is of help} pp <i431> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |The core is |setting up |before this |how to treat |point; next |the input |we program |from the |fcm for this |robot & some |app, after |screen funcs |() |() () <i432> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Depending on |may be of |how the fcm |importance to |is coded, the |have the |settings for |pattern |such as cam |matching work |input {next} |as intended |() |() () <i433> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |The next |how the fcm |cards, then, |is coded, |ties up to |perhaps also |robohardware |on the |and, again |environment |dependent on |for robotuse |() |() () <i434> |important: |any work- |setup as for |arounds or |robohardware |clarifying |for this robo |comments as |app is listed |to the core |next, after |cards come in |the 430 core |the following |cards; also: |cards <i435> |this app's |at the ssc32u |robohardware: |card for al5d |"first book |"robo-elbow", |scan" roboapp |since in some |uses |setups, #2 |channel#18 |had noise in |rather than |it; cfr the |channel#2 |deeprrr func <i436> |the function |handle#1 is |'crparsed' |at channel#29 |in core works |and when this |perfectly but |is run in |it doesn't |linux, a new |leave quote |deeprrr with |on stack, as |#18 & #19 is |comments say; |at webpage; <i437> |As for func |only be |'commandline' |performed |this uses |when a space |quotes that |is added |typically end |before this |with '~'; |mark--so add |some linux |space in the |commands will |usual case <i438> |It's up to |to apply a |programmer |simplifying |whether to |'threshold' |match on all |to pick out |of, or a |main shapes; |portion of, |some fcm's |the input; |will use many |and whether |approaches! <i439> imcontrast= 260000 ^. imcontrast imbrightness= kl ^. |ie,twoto16 is |{no change:0} |"multiply by !620 |1"; chk these imbrightness |two vars eg kl |via "vumatr" <i440> |The two vars |the bright- |imcontrast & |ness corrects |imbrightness |this before |should be |'makefit' is |USED TOGETHER |called so it |where the |gets 0->255; |contrast is a |THEN, the |multiple and |imthreshold: <i441> imthreshold= |check result ^. |w/rectune or 199 |second image imthreshold |of "vumatr"; kl |all these |Set this to |vars are |between basis |runtime |and 255 and |changable <i442> jumpnum= |5=every 5th ^. |pixel, sets 5 |jump/magnify jumpnum |factor when kl |going from eg |ONLY values |cam to matr; |1 to 5 here: |runtime |1=every pixel |changable <i443> pmatxstart= |to rm noise 4. |at cam-edges; pmatystart= |can only be 2. |1-5; these |9025 pixels |fastvars are |eg 95x95 used |respected |in pmatscore; |chiefly at |fit to robohw |jumpnums > 1 <i444> pmatscore= |exclusively |in:groundmatr |checks nonnil | inputmatr |pixels in |gives:count |groundmatr as |action:using |for nonnil |pmatxstart & |in inputmatr |pmatystart, |{after eg |& 95x95 area, |gemthreshold} <i445> s8 ll:95 s5 pmatystart pmatxstart s4 s3 |Formmatr:i5 basis ll:95 <i446> i3 i3 i4 i4 i5 i8 ww ww n? ye d6 ad <i447> h3 h4 lo lo. <i448> pmatscoretot= |count {up to |in:matr1, |9025} of | matr2 |TOTally equal |gives:count |pixels in |action:using |95x95 area of |pmatxstart & |2 matrixes; |pmatystart, |more usual: |this gives |'pmatscore' <i449> s8 ll:95 s5 pmatystart pmatxstart s4 s3 basis ll:95 <i450> i3 eq i4 i5 ww ad i3 h3 i4 lo i8 h4 ww lo. <i451> gemtomatr= |useful to get |action: this |general |is ONE way to |impressions; |prep match |cfr use in |over caminput |"vumatr";uses |--in which |vars jumpnum, |each 5th |imcontrast & |pixel picked; |imbrightness <i452> jumpnum imcontrast lk lk s4 s5 imbrightness lk t5 <i453> maxiarray 500 lk i4 sx rd t8 j8 sketch 100 lk su tx t9 <i454> ll:100 i4 |gem has y mm |bottom-up: s3 j8 ll:100 i1 |Matr begins |Gem begins |at 1,1 |at basis su <i455> m2 i5 i4 mm mm qb j9 qb ad i3 ix j5 ww ad <i456> 0 jx 255 yy makefit |Necessary for |SOME brite & |contr adjusts i2 lo i1 lo. <i457> gemthreshold= |are set as |action: this |bright and |is EXACTLY |the rest set |as gemtomatr |as basis |but that only |pixels equal imthreshold |to, or above, lk |imthreshold, t8 <i458> jumpnum imcontrast lk lk s4 s5 imbrightness lk t5 <i459> maxiarray 500 lk i4 sx rd t8 j8 sketch 100 lk su tx t9 <i460> ll:100 i4 |gem has y mm |bottom-up: s3 j8 ll:100 i1 |Matr begins |Gem begins |at 1,1 |at basis su <i461> m2 i5 i4 mm mm qb j9 qb ad i3 ix j5 ww ad <i462> j8 jx ge yy 255 mm i2 lo i1 lo. <i463> vumatr= |image eg from |action:A tool |vurobocam1 |for the fcm |{run it 1st}; |programmer: |then, after |this shows |enter, it |imbrightness& |shows effect |imcontrast & |of variable |jumpnum at |imthreshold <i464> newmatrix kk sh freshsketch gemtomatr gemthreshold approvesketch approvesketch. <i465> bigshow= t4 |In: quote, t3 |x,y,chartone, |bgroundtone |action:uses |"ga" rbotfont s4 |to display s3 |quote tx <i466> ll:2000000000 s5 i5 n? se i1 jx ay ex <i467> i5 j3 m1 32 j4 mm i3 ad ga i4 lo. <i468> hugeshow= t4 |In: quote, t3 |x,y,chartone, |bgroundtone |action:uses |huge rbotfont s4 |to display s3 |quote tx <i469> ll:2000000000 s5 i5 n? se i1 jx ay ex <i470> i5 j3 m1 64 j4 mm |gs is bigger i3 |than ga ad gs i4 lo. <i471> runtimematr= |this func can |in:xlen,ylen, |be called in | arraypos |loop, it gets |action:Normal |cleared space |sz&wwyymatrix |in ram & runs |stuff is done |wwyymatrix & |outside of |stores warp |functions; |in arraypos <i472> sx |note that s6 |wwyymatrix s5 |assumes at |ix can be eg |least xtra 50 |a warp to a |places in ram |place in an |So, this func |array, or a |automatically |variable |adds 60 <i473> |Always take mm |extra caution f |to call loops s9 |reserving ram 60 |only as much ad |as needed |reserve ram: i5 rs i6 s1 <i474> i1 i5 ix i6 |This addr |as wwyymatrix |is next |substracts 50 |modified by |wwyymatrix ix kl wwyymatrix <i475> |The wwyy i9 |approach ix |starts from lk |basis; to |{Is ok since |start x,y at |wwyymatrix |dance, give |calcs ww&yy |ram to ylen |by xlen only} |plus 2 or so clrthismany. <i476> sketchto= tx |in: addr |action: the |"sketch" |matrix gets |copied to the |matrix given |by address <i477> |from: |quantity: sketch 15000 lk |to: jx fw. <i478> tosketch= sx |in: addr |action: the |"sketch" |matrix gets |FROM the |matrix given |by address <i479> |from: |quantity: ix 15000 |to: sketch lk fw. <i480> pureforms1= |These arrays ^. |lists pureforms2= |matrices, ie, ^. |'pure forms', pureforms3= |used ^. |creatively |by the fcm |programmer <i481> 20 pureforms2 sz kl && 20 pureforms1 sz kl && 20 pureforms3 sz kl && <i482> ramtoforms= |pureform1-3; |action:this |and puts qty |gives ram |12 in their |to exactly |#0 positions; |12 matrices |after this, |pointed to |the design |by arraypos |shapes can be |1 to 12 in |put to them <i483> pureforms1 pureforms3 lk lk t1 t3 |Note:we inc |ylen so as to pureforms2 |be used with lk |'tosketch'etc t2 |w/fw at 15000 <i484> 12 12 j1 j3 kl kl |Any matr from |{1,1} must 12 |have extra j2 |ylen in kl |runtimematr <i485> ll:12 144 144 106 106 j1 j2 i1 i1 ad ad runtimematr runtimematr <i486> lo. 144 |This func is 106 |of the kind j3 |one can run i1 |during ad |compile: runtimematr ramtoforms <i487> variedrect= |between these |in:x1,y1,x2, |4 coordinates |y2,x3,y3,x4, |at matrfield; |y4,tone |twice use of |action:draws |'newtriangle' |filled rect, |to do the |or sth with |job; free |skewed angles |coor sequence <i488> sx s2 s4 t2 t4 s3 s1 t3 t1 <i489> ix j3 j1 i3 i1 j2 i2 newtriangle <i490> ix j4 j2 i4 i2 j3 i3 newtriangle. <i491> forge595= |{used to make |in:num,factor |eg pureforms} |gives:result mm |action:result ab |is within 5 91 |and 95, after mo |multiplied w/ 5 |factor & mod ad. <i492> ce ^Generating ^g15 pmn fcm pp pp ^fcm pattern ^starting up! pp pp ^matching pure pp &forms..& freestars pp <i493> shape1pure1= freshsketch |action:makes |shapeset#1 |for ll:89 |pureforms1, |and stores i1 |in right 4 |place in ram ad <i494> m1 50 697 ad mm cs 255 matrfield 223 rd lo <i495> 1 shape1pure1 pureforms1 lk ay sketchto. freestars <i496> shape2pure1= freshsketch |action:makes |shapeset#2 |for ll:89 |pureforms1, |and stores i1 |in right 4 |place in ram ad <i497> m1 ts 697 50 mm ad si 255 matrfield 223 rd lo <i498> 2 shape2pure1 pureforms1 lk ay sketchto. freestars <i499> shape3pure1= freshsketch |action:makes basis |shapeset#3 cs |for 223 |pureforms1, rd |and stores 50 |in right ad |place in ram s3 <i500> ll:39 f1 i1 sl sl 4 4 ad ad i3 <i501> i1 50 sl ad 697 mm cs 255 shapelines 223 rd lo <i502> 3 shape3pure1 pureforms1 lk ay sketchto. freestars <i503> shape4pure1= freshsketch |action:makes |shapeset#4 |for |pureforms1, |and stores |in right |place in ram <i504> 5 255 5 95 95 matrixrectf <i505> basis cs 223 rd 50 ad s3 <i506> ll:39 f1 i1 sl 4 4 ad ad i3 <i507> i1 25 sl ad 697 mm cs 0 shapelines 800 rd lo <i508> 4 shape4pure1 pureforms1 lk ay sketchto. freestars <i509> shape5pure1= freshsketch |action:makes |shapeset#5 |for |pureforms1, |and stores |in right |place in ram <i510> 5 255 5 95 95 matrixrectf <i511> basis si 223 rd 50 ad s3 <i512> ll:39 f1 i1 sl 4 4 ad ad i3 <i513> i1 25 sl ad 697 mm si 0 shapelines 800 rd lo <i514> 5 shape5pure1 pureforms1 lk ay sketchto. freestars <i515> shape6pure1= freshsketch |action:makes |shapeset#6 |for |pureforms1, |and stores |in right |place in ram <i516> 5 255 5 95 95 matrixrectf <i517> basis ll:10 si 223 rd 50 ad s3 <i518> ll:39 f2 i2 sl 4 4 ad ad i3 <i519> i2 si sl 600 i1 rd mm 68 50 mm ad <i520> i1 lo 2 mo 255 mm shapelines lo <i521> 6 shape6pure1 pureforms1 lk ay sketchto. freestars <i522> shape7pure1= freshsketch |action:makes |shapeset#7 |for |pureforms1, |and stores |in right |place in ram <i523> 45 255 45 95 95 matrixrectf <i524> basis ll:3 si 223 rd 50 ad s3 <i525> ll:39 f2 i2 sl 4 4 ad ad i3 <i526> i2 cs sl 500 i1 rd mm 58 30 mm ad <i527> i1 lo 2 mo 255 mm shapelines lo <i528> 7 shape7pure1 pureforms1 lk ay sketchto. freestars <i529> shape8pure1= freshsketch |action:makes |shapeset#8 |for |pureforms1, |and stores |in right |place in ram <i530> 50 255 5 95 95 matrixrectf <i531> basis ll:5 si 223 rd 50 ad s3 <i532> ll:39 f2 i2 sl 4 4 ad ad i3 <i533> i2 223 sl rd i1 mm 150 mm 50 cs ad <i534> i1 lo 2 mo 255 mm shapelines lo <i535> 8 shape8pure1 pureforms1 lk ay sketchto. freestars <i536> shape9pure1= freshsketch |action:makes |shapeset#9 |for |pureforms1, |and stores |in right |place in ram <i537> 5 255 5 35 95 matrixrectf <i538> basis ll:5 si 223 rd 50 ad s3 <i539> ll:39 f2 i2 sl 4 4 ad ad i3 <i540> i2 223 sl rd i1 mm 150 mm 50 si ad <i541> i1 lo 2 mo 255 mm shapelines lo <i542> 9 shape9pure1 pureforms1 lk ay sketchto. freestars <i543> shape10pure1= freshsketch |action:makes |shapeset#10 |for |pureforms1, |and stores |in right |place in ram <i544> 20 255 5 95 95 matrixrectf <i545> basis ll:5 si 223 rd 50 ad s3 <i546> ll:39 f2 i2 sl 4 4 ad ad i3 <i547> i2 600 sl rd i1 mm 50 mm 60 si ad <i548> f1 lo 2 mo 255 mm shapelines lo <i549> 10 shape10pure1 pureforms1 lk ay sketchto. freestars <i550> shape11pure1= freshsketch |action:makes |shapeset#11 |for |pureforms1, |and stores |in right |place in ram <i551> 5 255 5 35 25 matrixrectf <i552> basis ll:8 cs 223 rd 50 ad s3 <i553> ll:39 f2 i2 sl 4 4 ad ad i3 <i554> i2 223 sl rd i1 sl mm 50 mm 50 cs ad <i555> i1 lo 2 mo 255 mm shapelines lo <i556> 11 shape11pure1 pureforms1 lk ay sketchto. freestars <i557> shape12pure1= freshsketch |action:makes |shapeset#12 |for |pureforms1, |and stores |in right |place in ram <i558> 5 255 33 44 80 matrixrectf <i559> basis ll:4 cs 300 rd 50 ad s3 <i560> ll:39 f2 i2 sl 4 4 ad ad i3 <i561> i2 300 sl rd i1 mm 150 mm 50 si ad <i562> i1 lo 2 mo 255 mm shapelines lo <i563> 12 shape12pure1 pureforms1 lk ay sketchto. freestars <i564> shape1pure2= freshsketch |action:makes |shapeset#1 |for |pureforms2, |and stores |in right |place in ram <i565> 255 50 95 5 5 95 5 newtriangle <i566> 1 shape1pure2 pureforms2 lk ay sketchto. freestars <i567> shape2pure2= freshsketch |action:makes |shapeset#2 |for |pureforms2, |and stores |in right |place in ram <i568> 255 5 95 5 5 95 50 newtriangle <i569> 2 shape2pure2 pureforms2 lk ay sketchto. freestars <i570> shape3pure2= freshsketch |action:makes |shapeset#3 |for |pureforms2, |and stores |in right |place in ram <i571> ll:25 i1 37837938 i1 forge595 2 mo i1 255 57893215 mm forge595 <i572> i1 i1 6969123 15893219 forge595 forge595 i1 3691580 i1 forge595 31425262 newtriangle forge595 lo <i573> 3 shape3pure2 pureforms2 lk ay sketchto. freestars <i574> shape4pure2= freshsketch |action:makes |shapeset#4 |for |pureforms2, |and stores |in right |place in ram <i575> ll:14 i1 171832 i1 forge595 2 mo i1 255 141592 mm forge595 <i576> i1 i1 193000 585858 forge595 forge595 i1 9992 i1 forge595 14000 newtriangle forge595 lo <i577> 4 shape4pure2 pureforms2 lk ay sketchto. freestars <i578> shape5pure2= freshsketch |action:makes |shapeset#5 |for |pureforms2, |and stores |in right |place in ram <i579> 5 255 5 95 95 matrixrectf <i580> ll:14 i1 450982 m1 forge595 2 mo i1 255 348973 mm forge595 <i581> i1 i1 398022 347261 forge595 forge595 i1 3782 i1 forge595 16723 newtriangle forge595 lo <i582> 5 shape5pure2 pureforms2 lk ay sketchto. freestars <i583> shape6pure2= freshsketch |action:makes |shapeset#6 |for |pureforms2, |and stores |in right |place in ram <i584> 35 255 25 75 65 matrixrectf <i585> ll:55 i1 9823 f1 forge595 2 mo i1 255 5732 mm forge595 <i586> i1 i1 6832 2356 forge595 forge595 i1 3782 i1 forge595 5427 newtriangle forge595 lo <i587> 6 shape6pure2 pureforms2 lk ay sketchto. freestars <i588> shape7pure2= freshsketch |action:makes |shapeset#7 |for |pureforms2, |and stores |in right |place in ram <i589> 35 255 25 75 65 matrixrectf <i590> ll:8 i1 238473 f1 forge595 2 mo i1 255 329833 mm forge595 <i591> i1 i1 432839 237432 forge595 forge595 i1 329843 i1 forge595 239843 newtriangle forge595 lo <i592> 7 shape7pure2 pureforms2 lk ay sketchto. freestars <i593> shape8pure2= freshsketch |action:makes |shapeset#8 |for |pureforms2, |and stores |in right |place in ram <i594> 35 255 25 75 65 matrixrectf <i595> ll:6 i1 548376 f1 forge595 2 mo i1 255 832 mm forge595 <i596> i1 i1 349823 127222 forge595 forge595 i1 90238 i1 forge595 234872 newtriangle forge595 lo <i597> 8 shape8pure2 pureforms2 lk ay sketchto. freestars <i598> shape9pure2= freshsketch |action:makes |shapeset#9 |for |pureforms2, |and stores |in right |place in ram <i599> ll:9 i1 38273 i1 forge595 2 mo i1 255 959039 mm forge595 <i600> i1 i1 435783 32733 forge595 forge595 i1 43744 i1 forge595 32783 newtriangle forge595 lo <i601> 9 shape9pure2 pureforms2 lk ay sketchto. freestars <i602> shape10pure2= freshsketch |action:makes |shapeset#10 |for |pureforms2, |and stores |in right |place in ram <i603> 5 255 5 45 95 matrixrectf <i604> ll:7 i1 97843 f1 forge595 2 mo i1 255 98237 mm forge595 <i605> i1 i1 39484 29834 forge595 forge595 i1 48939 i1 forge595 93843 newtriangle forge595 lo <i606> 10 shape10pure2 pureforms2 lk ay sketchto. freestars <i607> shape11pure2= freshsketch |action:makes |shapeset#11 |for |pureforms2, |and stores |in right |place in ram <i608> 45 255 45 95 95 matrixrectf <i609> ll:3 i1 111115 m1 forge595 2 mo i1 255 11119 mm forge595 <i610> i1 i1 11113 11118 forge595 forge595 i1 111119 i1 forge595 11112 newtriangle forge595 lo <i611> 11 shape11pure2 pureforms2 lk ay sketchto. freestars <i612> shape12pure2= freshsketch |action:makes |shapeset#12 |for |pureforms2, |and stores |in right |place in ram <i613> 20 255 20 85 85 matrixrectf <i614> ll:10 i1 737289 f1 forge595 2 mo i1 255 10192 mm forge595 <i615> i1 i1 38737 28384 forge595 forge595 i1 23984 i1 forge595 27333 newtriangle forge595 lo <i616> 12 shape12pure2 pureforms2 lk ay sketchto. freestars <i617> shape1pure3= freshsketch |action:makes |shapeset#1 |for |pureforms3, |and stores |in right |place in ram <i618> 29 255 9 71 91 matrixrect <i619> 1 shape1pure3 pureforms3 lk ay sketchto. freestars <i620> shape2pure3= freshsketch |action:makes |shapeset#2 |for |pureforms3, |and stores |in right |place in ram <i621> 9 255 29 91 71 matrixrect <i622> 2 shape2pure3 pureforms3 lk ay sketchto. freestars <i623> shape3pure3= freshsketch |action:makes |shapeset#3 |for |pureforms3, |and stores |in right |place in ram <i624> ll:23 i1 333994 forge595 t1 i1 7778889 forge595 t2 <i625> i1 j1 5673935 j2 forge595 t3 i1 31191219 forge595 j3 t4 j4 <i626> j1 j3 j2 j4 i1 i1 10 5 mm mm ad ad 1 1 forge595 forge595 <i627> i1 variedrect 2 mo 255 mm lo <i628> 3 shape3pure3 pureforms3 lk ay sketchto. freestars <i629> shape4pure3= freshsketch |action:makes |shapeset#4 |for |pureforms3, |and stores |in right |place in ram <i630> ll:12 i1 348792 forge595 t1 i1 5853 forge595 t2 <i631> i1 j1 99321 j2 forge595 t3 i1 54549 forge595 j3 t4 j4 <i632> j1 j3 j2 j4 i1 i1 7 3 mm mm ad ad 1 1 forge595 forge595 <i633> i1 variedrect 2 mo 255 mm lo <i634> 4 shape4pure3 pureforms3 lk ay sketchto. freestars <i635> shape5pure3= freshsketch |action:makes |shapeset#5 |for |pureforms3, |and stores |in right |place in ram <i636> ll:33 i1 987573 forge595 t1 i1 5236211 forge595 t2 <i637> i1 j1 8271612 j2 forge595 t3 i1 19882271 forge595 j3 t4 j4 <i638> j1 j3 j2 j4 i1 i1 10 5 mm mm ad ad 1 1 forge595 forge595 <i639> i1 variedrect 2 mo 255 mm lo <i640> 5 shape5pure3 pureforms3 lk ay sketchto. freestars <i641> shape6pure3= freshsketch |action:makes |shapeset#6 |for |pureforms3, |and stores |in right |place in ram <i642> ll:79 i1 9875 forge595 t1 i1 7223 forge595 t2 <i643> i1 j1 6894 j2 forge595 t3 i1 2781 forge595 j3 t4 j4 <i644> j1 j3 j2 j4 i1 i1 3 55 mm mm ad ad 1 1 forge595 forge595 <i645> i1 variedrect 2 mo 255 mm lo <i646> 6 shape6pure3 pureforms3 lk ay sketchto. freestars <i647> shape7pure3= freshsketch |action:makes |shapeset#7 |for |pureforms3, |and stores |in right |place in ram <i648> ll:3 i1 743837 forge595 t1 i1 283993 forge595 t2 <i649> i1 j1 234983 j2 forge595 t3 i1 236583 forge595 j3 t4 j4 <i650> j1 j3 j2 j4 i1 i1 9 12 mm mm ad ad 1 1 forge595 forge595 <i651> i1 variedrect 2 mo 255 mm lo <i652> 7 shape7pure3 pureforms3 lk ay sketchto. freestars <i653> shape8pure3= freshsketch |action:makes |shapeset#8 |for |pureforms3, |and stores |in right |place in ram <i654> ll:10 i1 738832 forge595 t1 i1 236792 forge595 t2 <i655> i1 j1 658983 j2 forge595 t3 i1 112789 forge595 j3 t4 j4 <i656> j1 j3 j2 j4 i1 i1 39 23 mm mm ad ad 1 1 forge595 forge595 <i657> i1 variedrect 2 mo 255 mm lo <i658> 8 shape8pure3 pureforms3 lk ay sketchto. freestars <i659> shape9pure3= freshsketch |action:makes |shapeset#9 |for |pureforms3, |and stores |in right |place in ram <i660> ll:9 i1 23873 forge595 t1 i1 260698 forge595 t2 <i661> i1 j1 32783 j2 forge595 t3 i1 12872 forge595 j3 t4 j4 <i662> j1 j3 j2 j4 i1 i1 9 40 mm mm ad ad 1 1 forge595 forge595 <i663> i1 variedrect 2 mo 255 mm lo <i664> 9 shape9pure3 pureforms3 lk ay sketchto. freestars <i665> shape10pure3= freshsketch |action:makes |shapeset#10 |for |pureforms3, |and stores |in right |place in ram <i666> ll:6 i1 47883 forge595 t1 i1 92837 forge595 t2 <i667> i1 j1 8322 j2 forge595 t3 i1 12938 forge595 j3 t4 j4 <i668> j1 j3 j2 j4 i1 i1 4 56 mm mm ad ad 1 1 forge595 forge595 <i669> i1 variedrect 2 mo 255 mm lo <i670> 10 shape10pure3 pureforms3 lk ay sketchto. freestars <i671> shape11pure3= freshsketch |action:makes |shapeset#11 |for |pureforms3, |and stores |in right |place in ram <i672> ll:4 i1 23873 forge595 t1 i1 898398 forge595 t2 <i673> i1 j1 34873 j2 forge595 t3 i1 12387 forge595 j3 t4 j4 <i674> j1 j3 j2 j4 i1 i1 2 99 mm mm ad ad 1 1 forge595 forge595 <i675> i1 variedrect 2 mo 255 mm lo <i676> 11 shape11pure3 pureforms3 lk ay sketchto. freestars <i677> shape12pure3= freshsketch |action:makes |shapeset#12 |for |pureforms3, |and stores |in right |place in ram <i678> ll:12 i1 11222 forge595 t1 i1 87834 forge595 t2 <i679> i1 j1 68953 j2 forge595 t3 i1 32983 forge595 j3 t4 j4 <i680> j1 j3 j2 j4 i1 i1 9 28 mm mm ad ad 1 1 forge595 forge595 <i681> i1 variedrect 2 mo 255 mm lo <i682> 12 shape12pure3 pureforms3 lk ay sketchto. freestars <i683> vupmat= |gemthreshold, |action: a |to really see |programmer's |how pureforms |tool, eg |work to make |run directly |pmatscore w/ |after vumatr, |an input matr |or after eg |--use Enter |vurobocam1 & |{esc to quit} <i684> |The function |clue for fcm |shows #1 in |coding is to |pureforms1, |find score |pureforms2, |that changes |pureforms3, |in relevant |then #2 in |way when |them, up to |inputscene |#12; |is changed <i685> ce 300 newmatrix 720 approvesketch rp kk ^pmat scores! sh <i686> copysketch lk sketchextra ay lk tosketch sx ce newmatrix ll:12 i1 pureforms1 approvesketch <i687> i1 ix makenumber pmatscore 40 makenumber 720 300 rp 720 rp sketch kk lk sh <i688> i1 pureforms2 lk ay tosketch ce newmatrix approvesketch <i689> i1 ix makenumber pmatscore 40 makenumber 720 300 rp 720 |groundform: rp sketch kk lk sh <i690> i1 pureforms3 lk ay tosketch ce newmatrix approvesketch <i691> i1 ix makenumber pmatscore 40 makenumber 720 300 rp 720 rp sketch lk kk <i692> |Esc? 27 eq se ex lo. <i693> recentpmatnum= && ^. recentpmatnum 70 kl 4 |starts dance mm 70 65 3 ad recentpmatnum sz wwyymatrix <i694> |in this, 280 |pmatscores recentpmatnum |are stored; lk |and, with clrthismany |20 added as |this is used |index, also |by such as |the previous |vupmnums to |scores |compare <i695> vupmnums= |vupmat, not |action: shows |moved};diff |pmatscores |w/prev shown, |for all pure |too; tightly, |forms with |as lines of |present matr |numbers; use |{which is, |eg after |unlike in |gemthreshold <i696> sketch pureforms1 lk lk tx recentpmatnum lk t5 1 &ABC& ix sx ya <i697> pureforms2 pureforms3 lk lk 2 3 ix ix ya ya <i698> ll:3 i2 |sequence at i1 |stack for ix |pmatscore: ay |groundmatr, ay |inputmatr jx pmatscore ll:12 s9 <i699> i9 580 makenumber m1 m2 25 84 mm mm ad 4 ad rp <i700> i2 j9 i1 j5 i2 ww 20 ad i1 j5 t9 yy <i701> i9 i2 i1 j5 yy <i702> |the i9 |difference j9 |between this |patmatnum and su |the previous, |shown in line |underneath |main numbers t4 <i703> j4 685 makenumber m1 m2 25 84 mm mm ad 4 rp lo ad lo <i704> ll:12 658 i1 makenumber bx m1 84 mm 30 ad lo. <i705> deeprrrtx1= ^. cliptrail longtxt* f ./deeprrr.sh crparsed ~ *txtcomplete deeprrrtx1 kl <i706> deeprrrtx2= ^. cliptrail longtxt* f echo "#18P1500 crparsed T888" > /dev/t tyUSB0 ~ deeprrrtx2 *txtcomplete kl <i707> deeprrr= |Note:in this |action:starts |app chan#18 |a robohw |is used, not |specific |chan#2; |command for |this command |deep reset |also resets |of robot,then |all of |calls "rrr" |poschannels <i708> |Hwspecific |deeprrr will |center: |usually cause 1500 |SOME jerking maxqtychan |of robot, so poschannels |plan for that lk |--also, to be dc |sure of reset fc |use it twice <i709> deeprrrtx1 deeprrrtx2 lk lk commandline commandline 200 activepause rrr 200 900 activepause activepause. <i710> store60fact1= |as factors in &xxxxxxxxxxx&. |mm6 used in store60fact2= |encoding and &xxxxxxxxxxx&. |decoding 4 eg |These are two |pmat numbers |"fastarrays" |{eg 0->9999} |used in pairs |as num6 in |for 60bitnums |eg storein60 <i711> ^1 1 store60fact2 ya 1 store60fact1 quotetonum6 ya <i712> ^10000 2 store60fact2 ya 2 store60fact1 quotetonum6 ya <i713> ^100000000 3 store60fact2 ya 3 store60fact1 quotetonum6 ya <i714> ^1000000000000 4 store60fact2 ya 4 store60fact1 quotetonum6 ya <i715> storein60= |gets positive |in: num6, |num, 0->9999, | position, |stored in | number |position 1->4 |gives: num6 |Note:num60 is |action: the |unsigned&must |60b num {a |have basis at |pair of 32b} |this position <i716> s9 f store60fact1 ay w store60fact2 ay <i717> |Convert this mm6 |small num to |60b: 0 i9 |Then, 60b mm |and 60b ad: ad6. <i718> loadfrom60= |will yield a |in: num6, |number, | position |unsigned, |gives: number |from 0 to |action: pos |9999, which |is 1,2,3,or 4 |previously eg |and the num6 |has been put |{pair of 32b} |by storein60 <i719> f 0 store60fact1 10000 ay mo6 w |Convert this store60fact2 |small num ay |to 32b: w di6 sh. <i720> delfrom60= |storein60, |in: num6, |will have the | position |pos content |gives: num6 |set to basis |action: pos s1 |is 1,2,3,4; |The num6, as d |made eg by d <i721> i1 0 store60fact1 10000 ay i1 store60fact2 ay di6 mo6 <i722> i1 mm6 store60fact1 ay i1 store60fact2 ay su6. <i723> save6= 6 |in: a1 a2 a3 ix | a4 a5 a6 ya | arraywarp |action: saves |6 nums to 5 |pos 1 to 6 ix sx ya <i724> 4 2 ix ix ya ya 3 1 ix ix ya ya. <i725> load60b1of12= |select which |in: num60a |60bit number |num60b num60c |{pair} upon |position |which to use |gives:number |loadfrom60; |action: the |unsigned |pos, 1->12, |result from |is used to |0->9999 <i726> s1 1 &xxxxxx& 12 tx iswithin jx d2 save6 basis i1 ex <i727> m1 up jx sr ay up m1 f 4 jx mo ay up w loadfrom60. <i728> put4in2places= |are encoded |in: a b c d |as a single |warp1 warp2 |60bit number, |action: the |of which its |four numbers |highest part |a b c d, must |is put to |be unsigned & |warp1, other |range 0->9999 |part to warp2 <i729> tx 0 sx 0 1 s4 s3 s2 i1 s1 storein60 <i730> 2 4 i2 i4 storein60 storein60 jx 3 kl i3 ix storein60 kl. <i731> vuinputandnum= |and also the |in: cam# |patmatnums; |action:shows |waits at key |gem of |press; a sub- |vucam1,2,3 |routine of |{modify this |rectune |func for |more inputs}; <i732> s5 ^Camera now: pp i5 ce nn <i733> 100 i5 1 eq se activepause vurobocam1 <i734> i5 i5 2 3 eq eq se se vurobocam2 vurobocam3 <i735> gemthreshold ^Press a key! pp kk vupmnums sh. <i736> vuthresandnum= |and also the |in: cam# |patmatnums; |action:camvu |waits at key |w/imthreshold |press; a sub- |for cam1,2,3 |routine of |{modify this |rectune |func for |more inputs}; <i737> s5 ^Processes cam pp i5 ce nn <i738> 100 activepause <i739> i5 i5 1 2 eq eq se se rg1 rg2 <i740> i5 sh 3 eq se rg3 vumatr <i741> vupmnums ^imthreshold: pp ^imcontrast: pp imcontrast imthreshold lk lk nn nn <i742> ^imbrightness: ^jump/magnify: pp pp imbrightness jumpnum lk lk nn nn <i743> ^{press a key} pp kk sh. <i744> |Comment about |input via the |call of 'car' |prt-functions |inside a |In short, do |function that |sth like |uses prtinput |'clipleading' |--car calls |so it gets to |'prtclr', and |new quote- |this clears |space <i745> startcartx= cliptrail ^. longtxt* Pls type cardi d as input to "car": startcartx *txtcomplete kl <i746> startcar= lk |action: asks prt |for input of prtinput |cardid and clipleading |starts car, |is now in |with handling |new |of quotespace |quotespace startcartx car. <i747> plurchanmode= |This is set ^. |to basis at |"plural |upstart of |channel mode" |rectune; its |in rectune? |<bksp> key |a flag |sets it to plurchanmode |dance; its basisthis |<ins> resets <i748> plurchanlist= && ^. plurchanlist kl maxqtychan 15 |cfr ad |initplurchan sz |for layout <i749> plurchtim= |plurchtim is ^. |maxtime plurchqty= |required for ^. |plural recact |Set to basis plurchtim |at bksp in basisthis |rectune & plurchqty |at its start basisthis <i750> initplurchan= |channels have |action:this |up to 1 move |is called by |each; & with |<bksp> in |the time for |rectune so as |the longest |to ready the |move {ie,pgup |array where |/pgn} goes to |up to 18 |plurchantim <i751> plurchanmode |Layout for dancethis |plurchanlist |is in next plurchtim |card basisthis maxqtychan plurchanlist plurchqty lk basisthis clrthismany. <i752> |layout for |at pos#0,info |plurchanlist: |for chan#0, |plurchanqty |at pos#1,info |tells how |for chan#1; |many are set |etc; info is: |{adviced max |3:pgup !3:dn |18; comlen w/ |2:home !2:end |electronics} |1:f1 !1:f1 <i753> minichantimes= robotiminca &xxxxxxxxxxx&. lk |For pgup/pgdn |Used by |plurchan func |A fastarray 3 |with timings minichantimes |for minimoves ya <i754> robotimincb robotimincc lk lk |For home/end |For f1/f2 2 1 minichantimes minichantimes ya ya <i755> minichposinc= roboposinca &xxxxxxxxxxx&. lk |For pgup/pgdn |Used by |plurchan func |A fastarray 3 |w/pos change minichposinc |for minimoves ya <i756> roboposincb roboposincc lk lk |For home/end |For f1/f2 2 1 minichposinc minichposinc ya ya <i757> plurchanmsg= :) ^. *txtcomplete cliptrail longtxt* Please put max 18 moves into each combined plurchanmsg channel move kl <i758> intoplurchan= |that storage |in: keynum, |of 1 move in | channelnum |any channel#, |action: given |{max 18 moves |pgup/dn,home/ |each time} |end or f1/f2 |are put in |this acts, in |plurchlist & |rectune, so |plurchtim <i759> s8 plurchanmode s5 dancethis |{Normally on} basis |Note:this basis |func's made |presumes that |in the slow |initplurchan |context of |is called |keyb read,ok? <i760> plurchqty plurchanmsg lk lk 18 prt lt ex |Quantity ok: plurchqty d4 danceup <i761> i5 sh |key{pgup}: sh 280 eq n? dance d4 three <i762> i5 sh |key{pgdn}: sh 281 eq n? oneminus d4 three <i763> i5 sh |key{home}: sh 278 eq n? dance d4 two <i764> i5 sh |key{end}: sh 279 eq n? oneminus d4 two <i765> i5 sh |key{f1}: sh 282 eq n? dance d4 dance <i766> i5 sh |key{f2}: sh 283 eq n? oneminus d4 dance <i767> mm i8 s3 0 i3 maxqtychan n? makefit se ex s8 <i768> i3 i8 plurchanlist lk ya <i769> i3 plurchtim ab lk minichantimes maxofthis plurchtim ay kl. <i770> thisplurch= sx |in: pos |action: |subroutine of ix |plurchanact; plurchanlist |pos in lk |plurchanlist ay |is nonzero s5 <i771> recactarray i5 lk ab s1 minichposinc ay |change of pos poschannels |for 1, 2 or 3 lk s3 s8 <i772> i5 i8 0 ts ge d3 s8 <i773> ix poschanmin i3 poschanmax ay |Ranges for |channel i8 makefit ad s9 <i774> |Assert chan: |Assert pos: |type 1 |type 2 1 2 |chan |position ix i9 i1 i1 newcouple newcouple. <i775> plurchanact= |stores in the |action: given |recarray; |previous |can be called |calls to |several times |intoplurchan, |in a row; |this carries |the <ins>-key |out the robot |in rectune |move and also |calls this <i776> plurchanmode |Depending on basisthis |commandline |In rectune, |to robohw, |this simply |keep the qty |means that |parallel |it is no |channels in |longer in |each command |<bksp>-mode |in leashes <i777> plurchtim se lk n? ex plurchqty lk plurchanlist n? lk or sx <i778> recactarray i4 lk lk s4 t4 |present qty |of couples poschannels lk |start-channel s3 0 <i779> ll:1 f f ix ay n? d2 thisplurch <i780> f up maxqtychan lo lt se q1 sh <i781> |Assert ms: |this is to |type 3 |robohardware 3 |ms plurchtim lk i4 newcouple <i782> |Assert cr: |Assert send: |type 4 |type 5 4 5 0 0 i4 i4 newcouple newcouple <i783> |Then program |stream is |waits,type 6 |done,type 7 6 7 plurchtim 0 lk i4 i4 newcouple newcouple <i784> |j4 has qty j4 |couples prior up |to this f4 |plural kl |channel |stream; |get it |started: perf1recact. <i785> rectunechact= |that robot |in: keynum, |moves and | channelnum |storage in |action: given |recarray |pgup/dn,home/ |happens;when |end or f1/f2 |plurchanmode, |this acts, in |it stores in |rectune, so |own array 1st <i786> s8 i5 s5 i8 plurchanmode intoplurchan lk |bcn n? d4 ex <i787> i5 dance |key{pgup}: i8 280 eq n? d3 robominimovea <i788> i5 oneminus |key{pgdn}: i8 281 eq n? d3 robominimovea <i789> i5 dance |key{home}: i8 278 eq n? d3 robominimoveb <i790> i5 oneminus |key{end}: i8 279 eq n? d3 robominimoveb <i791> i5 dance |key{f1}: i8 282 eq n? d3 robominimovec <i792> i5 oneminus |key{f2}: i8 283 eq n? d3 robominimovec. <i793> rectunetx1= ual ^. *txtcomplete cliptrail longtxt* Welcome to Rec tune. At app b oot, do deeprr rectunetx1 r's, <f9>. man kl <i794> rectunetx2= bot ^. *txtcomplete cliptrail longtxt* reset of recac tarray by <f7> ; <esc> exits; rectunetx2 <f5> moves ro kl <i795> rectunetx3= views ^. *txtcomplete cliptrail longtxt* by pract; <f8> recact's load save <f9> deep rectunetx3 rrr; <f12> cam kl <i796> rectunetx4= etc ^. *txtcomplete cliptrail longtxt* w/3 x 12 patma tnums {purefor ms}; <f11> sam rectunetx4 e w/threshold kl <i797> rectunetx5= on ^. *txtcomplete cliptrail longtxt* <f4> call 'vup mat', which sh ows which pixe rectunetx5 ls are matched kl <i798> rectunetx6= eshold ^. *txtcomplete cliptrail longtxt* <f3> "car" car dview; ctr-b, -c & -t for br rectunetx6 ight,contr,thr kl <i799> rectunetx7= ct; ^. *txtcomplete cliptrail longtxt* <f10> magnify camview. pgup/ dn,home/end,f1 rectunetx7 /f2 as in reca kl <i800> rectunetx8= annel, ^. *txtcomplete cliptrail longtxt* combine channe ls in single m ove: press <bk rectunetx8 sp>, select ch kl <i801> rectunetx9= ins>! ^. *txtcomplete cliptrail longtxt* then eg pgup, new channel et c; when done w rectunetx9 /bksp, click < kl <i802> rectunetx10= apps:) ^. *txtcomplete cliptrail longtxt* Programmer, pl s rewrite this tool to fit w rectunetx10 ith other robo kl <i803> rectunetx11= : ^. *txtcomplete cliptrail longtxt* Present channe l positions as stored in arr rectunetx11 ay poschannels kl <i804> rectunetx12= p} ^. *txtcomplete cliptrail longtxt* {to select cha nnel: digits 0 -9; lowercase rectunetx12 a for 10 and u kl <i805> rectuneinfo= |action: info |about fkeys |etc in |rectune;meant |to be called |from rectune <i806> rectunetx1 rectunetx3 lk lk prt prt rectunetx2 rectunetx4 lk lk prt prt <i807> rectunetx5 rectunetx7 lk lk prt prt rectunetx6 rectunetx8 lk lk prt prt <i808> rectunetx9 rectunetx11 lk lk prt prt rectunetx10 rectunetx12 lk lk prt prt <i809> 0 ll:7 s3 poschannels lk sx ll:5 <i810> i3 & & prtnumcont prtcont &:& h3 prtcont lo i3 && ix prt ay prtnumcont lo. <i811> rectunetxup= rview ^. *txtcomplete cliptrail longtxt* Welcome to Rec tune! {you've done deeprrr?} rectunetxup Tabulator=ove kl <i812> rectunetxinp= is: ^. *txtcomplete cliptrail longtxt* Camera# is set by Uppercase A=1,B=2,C=3; p rectunetxinp resent input # kl <i813> rectunetxcha= ^. *txtcomplete cliptrail longtxt* pgup/dn,home/e nd,f1/f2 act o n THIS channel rectunetxcha #: kl <i814> rectunetxclr= ^. *txtcomplete cliptrail longtxt* Recactarray no w cleared {bef ore load, it's rectunetxclr also cleared} kl <i815> rectunelenmsg= ght :) ^. *txtcomplete cliptrail longtxt* Recactarray ne aring full; pl s eg save; ke rectunelenmsg ep movesets ti kl <i816> rectunetxbr= *txtcomplete ^. cliptrail longtxt* Pls type new v alue of imbrig htness {-nnnn. rectunetxbr ..nnnn}: kl <i817> rectunetxco= *txtcomplete ^. cliptrail longtxt* Pls type new v alue of imcont rast {65536=2^ rectunetxco 16=unchanged}: kl <i818> rectunetxth= *txtcomplete ^. cliptrail longtxt* Pls type new v alue of imthre shold {0...255 rectunetxth }: kl <i819> rectunetxjm= 1>}: ^. *txtcomplete cliptrail longtxt* JUMP/magnify: pls type 1..5 {eg 3=each 3r rectunetxjm d pixel in <f1 kl <i820> rectune= |much range- |action:this |checks--to do |is a tool for |such as |programmers-- |explore |be sure to |pmatscore's |type input |and finetune |correctly, as |robotmotors |there aren't |etc! :-) <i821> recactarray && lk prt sx && plurchanmode prt basisthis prtrelease ce rectunetxup prtclr lk prtsuspend prt <i822> basis ll:2000000000 s8 &all right& |Channel now prtcont 1 tx |Input now 100 ^x t5 t3 <i823> 59 jx plurchanmode prt lk ad jx up ki kl s5 <i824> jx i5 999 |esc 27 10 27 rp eq se 100 activepause ex <i825> i5 |key{tabl}: 9 eq n? dh <i826> prtsuspend tn rectuneinfo tn rectunetxinp rectunetxcha lk lk prt prt jx prtrelease prtnum i8 tn prtnum <i827> i5 |key{bksp}: 8 eq se initplurchan <i828> i5 |key{ins}: 277 eq se plurchanact <i829> i5 i5 |key{pgup}: i8 280 eq n? d3 rectunechact <i830> i5 i5 |key{pgdn}: i8 281 eq n? d3 rectunechact <i831> i5 i5 |key{home}: i8 278 eq n? d3 rectunechact <i832> i5 i5 |key{end}: i8 279 eq n? d3 rectunechact <i833> i5 i5 |key{f1}: i8 282 eq n? d3 rectunechact <i834> i5 i5 |key{f2}: i8 283 eq n? d3 rectunechact <i835> i5 |key{f3}: 284 eq se startcar <i836> i5 |key{f4}: 285 eq se vupmat <i837> i5 |key{f8}: 289 eq se actsaveload <i838> i5 |key{f5}: 286 eq se pract <i839> i5 rectunetxclr |key{f7}: lk 288 prt eq n? d4 clractarray <i840> i5 |key{f9}: 290 eq se deeprrr <i841> i5 rectunetxjm |key{f10}: lk 291 prt eq prtinput n? intonum jumpnum d7 kl <i842> i5 jx |key{f11}: 292 eq n? d2 vuthresandnum <i843> i5 jx |key{f12}: 293 eq n? d2 vuinputandnum <i844> i5 rectunetxbr |key{ctr-b}: lk 2 prt eq prtinput n? intonum imbrightness d7 kl <i845> i5 rectunetxco |key{ctr-c}: lk 3 prt eq prtinput n? intonum imcontrast d7 kl <i846> i5 rectunetxth |key{ctr-t}: lk 20 prt eq prtinput n? intonum imthreshold d7 kl <i847> i5 iswithin 48 n? su t3 d2 j3 0 j3 9 s8 <i848> i5 iswithin 87 n? su t3 d2 j3 10 j3 31 s8 <i849> i5 iswithin 64 n? su t3 d2 j3 1 j3 3 tx <i850> ix lk |qty couples sl 333 ad actarraylen le <i851> d3 rectunelenmsg lk prt lo. <i852> thesetotriad= |the warp to |in:val1,val2, |the matrix}; |val3,ypos,var |and the val1 |action:the |is put to |VARIABLE that |{0,ypos};val2 |holds a warp |to {1,ypos}; |to a matrix |val3 to |is given {not |{2,ypos} <i853> lk s1 s3 s5 s8 sx <i854> ix i8 0 1 i3 i3 i1 i1 yy yy <i855> i5 2 i3 i1 yy. <i856> pfnumdeltas= |tells the |in: link#1 |differences, |link#2 link#3 |"deltas", |fnwarp |between that |triadmatrwarp |which is in |gives: delta1 |triad vs link |delta2 delta3 |1,2,3 to pf |action: this |nums 1,2,3 >> <i857> |the use of |3 pureform |this routine |sets; each 12 |is meant to |pfnums are in |be after |60bitnums |jumpnum, |in triplet# |threshold etc |8, 9 and 10; |are correctly |triad 'range' |applied; |not used here <i858> |triadmatrix |the idea of |has nums |having 3 such |like 30007 |groups of 3 |{pfset3,#7}, |is that eg by |324 {its num} |rectune one |10002 {100 as |can pick out |range, 02 as |the 3 most |jumpnum}; |telling pfnum <i859> tx |linknumbers |triadwarp |in this fn 49 |{1->100} on ad |stack to pf sx |nodenums,they |fastarray: |use triplet#8 &123& |to 10,ie,pos t1 |31&up for 60b <i860> ix ix wk wk fnwarp fnwarp 31 31 ad ad 3 2 j1 j1 ya ya <i861> |note:a matrix ix |often begins wk |at basis;then fnwarp |use m1 etc 31 |rather than ad |i1:way to 1 |remember, 'm' j1 |as in Matrix ya <i862> ll:3 di |pf set: j1 0 ay m1 s8 jx |position: ww 10000 f mo 10000 s5 <i863> |First num60b: |Second num6: i8 3 lk i8 wk 2 5 i8 i8 wk wk <i864> |Third num6: 6 i8 wk 8 i8 wk <i865> i5 |Comparison, load60b1of12 |positive when |Triadvalue, m |higher value |for Matrix: |than in triad 1 |by substract: m1 su jx ww lo. <i866> quatropf= |via given pf |in:startpfnum |array, using | pfarraywarp |matrix sketch |gives:p q r s |where already |action:gets 4 |imtreshold &c |pmatscores |are applied |from given ad |pos to pos+3 s4 <i867> sketch pmatscore lk sx ll:4 i4 h4 lk ix lo. <i868> practincyber= |input in |action: this |cybernetes |is as pract |node, this |in the open |doesn't look |robotics |up keyboard |core, but |at all:task |in order to |snippet is |allow keyb |always done <i869> recactarray |Set to 1st lk |couple: ix sx initcouple <i870> ll:2000000000 perf1recact ix donecouple se ex lo. <i871> maindance= 1 |in:fundwarp w |action:this |practical 10 |fcm func |sets mainval |{ie, #10} to |dance {ie, 1} kw. <i872> incmainval= 10 |in:fundwarp ad |action:this |practical 1 |fcm func adds w |1 to mainval |{ie, #10} ku. <i873> extrabasis= 0 |in:fundwarp w |action:this |practical 12 |fcm func |sets extraval |{ie, #12} to |dance {ie, 1} kw. <i874> settenthtri= |triplet {ie, |in:number, |position 37} |fundwarp |action:this 37 |practical fcm |func sets the |main value of |the tenth kw. <i875> itsmainextra= |the linked to |in: n, |fund, 1->qty, |thisfundwarp |when n,link#, |gives:mainval |is in range; | extraval |in case n is |action:finds |out of range |main,#10 & |it gives !1 |extra,#12, of |twice instead <i876> tx s9 |qty links: 47 jx wk t7 <i877> i9 oneminus f 1 j7 iswithin d3 ex <i878> i9 f 49 10 ad wk jx wk w 12 fnwarp wk. <i879> fnactivate= |in the given |in:link#, |fund, and |thisfundwarp |sets the #49 |action:this |'active' flag |practical |in the fund |fcm func |linked to, |looks up |to dance; |link#1->100 |cfr fnpassive <i880> 49 1 ad |Start of |links is |Activeflagpos |at next w |warp, so: fnwarp 49 wk kw. <i881> fnpassive= |in the given |in:link#, |fund, and |thisfundwarp |sets the #49 |action:this |'active' flag |practical |in the fund |fcm func |linked to, |looks up |to basis; cfr |link#1->100 |fnactivate <i882> 49 0 ad |Start of |links is |Activeflagpos |at next w |warp, so: fnwarp 49 wk kw. <i883> |When sequence |tell that sub |of subactions |action is |required, one |going on;when |might use #10 |it is 5, the |mainval for |subaction is |subactionnum, |done {whether |& extraval |with success |{#12} to 1 to |or not} <i884> |so that when |case of issue |all done, |with carrying |success is |it out; |told by two |subactionnum |billion as |is 1->n,where |mainval; but |n usually is |basis goes to |equal to qty |mainval in |of subactlink <i885> |Note that |a loop over |plural |the states of |approaches |the various |can perfectly |subactions |well be used |inside the fn |in a single |function |fcm matrix: |tells |in which case |progress <i886> |Also note |for various |that what may |possible |seem to be |issues, to |'redundancy' |reduce risks |in info as |of issue with |stored in |the robot |nodes may be |functionality |a safety net | <i887> |next handful |doneenough or |of funcs are |triedenough |meant to be |completes it; |used together |and the func |so that |subactstate |carryout |gives report |starts a sub- |on unfolding |action, while |sequence <i888> |"sub-actions" |they self- |set up in |passivate by |this way have |doneenough or |#49 active |triedenough |set to basis, |which also |then carryout |modifies main |activates |and extra val |them, while |accordingly <i889> |Note that any |only up to a |fund can do |certain |anything by |point {ie, up |virtue of its |to a certain |algorithm:and |mainval},then |one may for |do checks & |instance use |selective use |subactstate |of carryout <i890> subactstate= |is given an |in:fundwarp |analysis, cfr |gives: |next card; | statenum |it fixes a 0 |actions: a |in mainval to |fund of type |1 and then |"sequential |also sets |subactions" |extra to 0 <i891> |subactstate |subaction; |returns: |thousand: can |1:subaction |start mainval |goes on; |subaction in |tenmillion: |case this |success in |link# is in |subaction; |range;values |million:tried |100,101:issue <i892> tx |In case of |100 or 101, |it suggests 10 |that a node jx |has a wk |peculiar |combination s3 |of values <i893> i3 jx ye maindance dance s3 jx d6 extrabasis <i894> i3 d2 1 100 hundred iswithin ex <i895> 12 d2 jx wk s5 i5 thousand ye ex <i896> i3 jx itsmainextra |This has |range check |for link# s2 s1 <i897> i1 n? 1 100 d2 iswithin i2 1 eq dance an ex <i898> i2 n? 5 d2 million ex hundred eq up. <i899> carryout= |puts dance to |in:link#, |mainval & 0 |thisfundwarp |to extraval |action:puts |of linked to |activeflag on |fn; & sets |as for fn w/ |extraval of |this link# |THIS fn to 1: |{1->100}, & |is subacting <i900> sx 1 ix jx 49 49 ad wk fnwarp tx kw <i901> 1 1 jx ix 10 12 kw 0 jx 12 kw kw. <i902> doneenough= |The two |in:fundwarp |billion |action:this |signifies |practical fcm |success; |func sets fn |it also sets |to passive & |extraval to 5 |two billion |Compare |to mainval |'triedenough' <i903> tx 5 jx 2000000000 12 kw 0 jx jx 10 49 kw kw. <i904> isitcompleted= |and 5 to |in:fundwarp |exttraval, |gives:flag |WHEN mainval |this gives |has a larger |dance & sets |value than |fn passive & |qty of links; |two billion |Alternative |to mainval, |to doneenough <i905> tx d2 jx 10 wk jx 47 wk basis gt ex <i906> 2000000000 0 jx jx 10 49 kw kw 5 jx 12 kw dance. <i907> triedenough= |and 5 to |in:fundwarp |extraval; |action:this |this is used |practical fcm |when the |func sets fn |attempted |to passive & |activity |basis to |didn't quite |mainval |go through <i908> tx 0 jx 0 49 kw 5 jx jx 10 12 kw kw. <i909> cybermsg1= be in ^. *txtcomplete longtxt* cliptrail Hi! Time to sm ile! Somehow s omething isn't cybermsg1 as it should kl <i910> cybermsg2= make ^. *txtcomplete longtxt* cliptrail this program. If you aren't the programmer cybermsg2 of it, do pls kl <i911> cybermsg3= key ^. *txtcomplete longtxt* cliptrail a note of exac tly what prcee ded this issue cybermsg3 . Then press a kl <i912> cybermsg4= :-) ^. *txtcomplete longtxt* cliptrail on keyboard; b e sure to rest art pc and rob cybermsg4 ot machinery. kl <i913> exitmsgissue= prtclr |in: msgnum prtsuspend |action: fnloopcont |exits fcm w/ basisthis |message from |this program cybermsg1 t2 lk ce prt <i914> cybermsg2 cybermsg4 lk lk prt cybermsg3 lk prt prt <i915> &Messagenum: & prtrelease prtcont &{note num}& prt kk sh j2 prtnum ce. <i916> addnexus= |ups ITS qty |in:fundname |of links, & |action:when |puts THERE |making new |link to fn |funds, this |presently |finds a |being made; |previously |compare: |made fund, |"connectfund" <i917> tx ce jx jx fnamw pp sx kk ix sh ye ex |ie, info when d6 |not found <i918> |up qty links: f3 ix |calling place 47 |must watch wk |max qty links |{ie, 100} ix 47 s3 kw <i919> thisfund lk 49 f3 ad ix kw. <i920> connectfund= |qty of links |in:fundname |it has; the |action:when |name of the |making new |fund to be |funds this |connected to |puts a new |is given to |link to it, |this routine; |& incs the |cmp addnexus <i921> tx ce jx jx fnamw pp sx kk ix sh ye ex |ie, info when d6 |not found <i922> thisfund ix lk wtofnnum fnwarp tx s1 <i923> |up qty links: f3 jx |calling place 47 |must watch wk |max qty links |{ie, 100} jx 47 s3 kw <i924> i1 49 f3 ad jx kw. <i925> dorecorded= |so on {within |in:snippetnum |disk size}; |action:loads |then makes |recarray from |robot move by |k-disk, num 1 |practincyber |is k10100, |{it also does |num 2 is at |prtsuspend & |k10200, and |prtrelease} <i926> s3 prtsuspend 11 loadactarray |disk&card prtrelease 10000 100 i3 mm ad practincyber. <i927> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Next, some |change these |numbers that |to accomodate |fit book scan |variations in |app, pureform |how app is |matching nums |used; webpage |from rectune; |tells how |() |() () <i928> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Here we use |respectively, |3 sets of 12 |pureform#10 |pureforms and |in 3rd set, |we write eg |and form#7 |30010 & 10007 |in 7th set, |so as to mean |as notation |() |() () <i929> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Here we use |insight is |three pfnums |expressed; |for a match |a 3x3 matrix |job--together |for each task |with function |fn explained |where more |in next card: |() |() () <i930> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |First, a num |1350,max 9995 |like 30005: |Then, a num |3 is 3rd set |like 123405 |of pforms,#5 |where 1234 is |in it; then |range,& 05 is |a score,like |jump/magnify |() |() () <i931> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |In this app, |like 100, and |jump/magnify |tells ca how |is same in a |how score can |task; note |sway,+ or -; |that range is |w/jumpnum 05 |often small, |it is: 10005 |() |() () <i932> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |Soon, we give |matrix is set |each task in |up; and we |this app a |associate |tasknum or id |matrices of |to organize |patmatnums w/ |how the fcm |the tasknums |() |() () <i933> |^^^^^^^^^^^^^ |^^^^^^^^^^^^^ |For taskfunds |twobillion |{named eg tk5 |means success |or t2501a or |{didn't do:0} |such} mainnum |When done, |holds phase#, |they "self- |1->n, where |passify" |() |() () <i934> |prelim: note, |of a range of |important:ALL |suitable task |tasks that |snippets, and |are outlined |refined as |next will be |the book scan |re-organised |roboapp is |AFTER |gradually |entrainments |completed! :) <i935> |tk1 task#1 |behave this |"get main |way: 20004 & |piece of |30007 changes |rubber" |at too left |The pure- |eg 85, and at |forms nums |too right |in t1pf |eg !150 |given next <i936> t1pf= 3 ^. 3 80 t1pf sz |Let's bear && |in mind that |matrices t1pf |start at 0,0 kl wwyymatrix <i937> 20004 30007 1039 324 10003 10003 0 1 |prelim:new |prelim |nums to come t1pf t1pf thesetotriad thesetotriad <i938> 30010 |This info is 1276 |picked up by 10003 |the fcm node 2 |for the task |prelim |and used via |the 60bit t1pf |encoding of thesetotriad |analysisnodes <i939> |t1a task#1a |subtask to |"place the |tk1 {"tk1" |roboarm so |has len 3, |cam points |minlen of |to where |names here}; |rubber is |assumed to |be" <i940> |t1b task#1b |"use pfnums |to select |correct way |of getting |rubber" |nonsequential |func in use: |since it uses |pfnumdeltas |conditions <i941> |t1b1 task#1b1 |subtask to |"get main |t1b |piece of |rubber when |it is |perfectly |placed" <i942> |t1b2 task#1b2 |subtask to |"get main |t1b |piece of |rubber when |it is ca 1cm |too much to |the left" <i943> |t1b3 task#1b3 |subtask to |"get main |t1b |piece of |rubber when |it is ca 1cm |too much to |the right" <i944> |tk5 task#5 |The 2nd piece |"place main |of rubber is |piece of |used only |rubber under |when deeply |text at right |into scanning |page" |the book, not |at the first |pages <i945> |t25 task#25 |"get other |piece of |rubber" <i946> |task#2501 |subtask to |"get other |t25 |piece of |rubber when |it is |perfectly |placed" <i947> |task#2502 |subtask to |"get other |t25 |piece of |rubber when |it is ca 1cm |too much to |the left" <i948> |task#2503 |subtask to |"get other |t25 |piece of |rubber when |it is ca 1cm |too much to |the right" <i949> |task#30 |"place other |piece of |rubber under |text at right |page" <i950> |task#50 |"photograph |all of the |right book |page & store |at disk" <i951> |task#5001 |subtask to |"photograph |t50 |via camera#2 |and store at |disk" <i952> |task#5002 |subtask to |"photograph |t50 |via camera#3 |and store at |disk" <i953> |task#80 |"retrieve |other rubber |from book |and place |under book" <i954> |task#180 |"retrieve |main rubber |from book |and use it |to leaf to |next page" <i955> maxfundnum= && 10000. fundnet 150 kl maxfundnum mm 150 200 maxfundnum ad fundnet sz wwyymatrix <i956> fundnet |than enough lk |of nodes; thisfcmnet |next, kl |fcmindex is |For this |set up in |app, this is |the normal |very much |way, to |more than |sort levels <i957> maxfundnum fcmindqty 50 basisthis ad maxfundnum sz thisfcmnet lk && fcmindex fcmindex lk kl initwarpindex <i958> getcamvu1= ^getcamvu1 |in:tr#,fnwarp tx sh vurobocam1 501 jx doneenough. fnactcherish <i959> 10000 basis |act#: 501 basis ^getcamvu1 setfundlevel fneasyact <i960> |this fund is |activated |by tasks: basis 49 adjustfund <i961> getcamvu2= ^getcamvu2 |in:tr#,fnwarp tx sh vurobocam2 502 jx doneenough. fnactcherish <i962> basis |act#: 502 basis ^getcamvu2 fneasyact <i963> |this fund is |activated |by tasks: basis 49 adjustfund <i964> getcamvu3= ^getcamvu3 |in:tr#,fnwarp tx sh vurobocam3 503 jx doneenough. fnactcherish <i965> basis |act#: 503 basis ^getcamvu3 fneasyact <i966> |this fund is |activated |by tasks: basis 49 adjustfund <i967> applygemth= ^applygemth |in:tr#,fnwarp tx sh gemthreshold 555 jx doneenough. fnactcherish <i968> 10100 basis |we've same |names for fn |act#: |& func here 555 |often, but |it isn't basis |necessary :) ^applygemth setfundlevel fneasyact <i969> |this fund is |activated |by tasks: basis 49 adjustfund <i970> 10500 setfundlevel <i971> patmatpf1= |Does feature |in:tr#,fnwarp |analysis by tx |first pure sh |forms family |and encodes pureforms1 |as 60bit nums lk |to triplet s1 |8, 9 and 10 <i972> 1 jx i1 33 quatropf ad jx 31 ad put4in2places <i973> 5 jx i1 36 quatropf ad jx 34 ad put4in2places <i974> 9 jx i1 39 quatropf ad put4in2places jx 37 jx ad doneenough. <i975> ^patmatpf1 558 fnactcherish <i976> basis |act#: 558 basis ^patmatpf1 fneasyact <i977> |this fund is |activated |by tasks: basis 49 adjustfund <i978> patmatpf2= |Does feature |in:tr#,fnwarp |analysis by tx |second pure sh |forms family |and encodes pureforms2 |as 60bit nums lk |to triplet s1 |8, 9 and 10 <i979> 1 jx i1 33 quatropf ad jx 31 ad put4in2places <i980> 5 jx i1 36 quatropf ad jx 34 ad put4in2places <i981> 9 jx i1 39 quatropf ad put4in2places jx 37 jx ad doneenough. <i982> ^patmatpf2 559 fnactcherish <i983> basis |act#: 559 basis ^patmatpf2 fneasyact <i984> |this fund is |activated |by tasks: basis 49 adjustfund <i985> patmatpf3= |Does feature |in:tr#,fnwarp |analysis by tx |third pure sh |forms family |and encodes pureforms3 |as 60bit nums lk |to triplet s1 |8, 9 and 10 <i986> 1 jx i1 33 quatropf ad jx 31 ad put4in2places <i987> 5 jx i1 36 quatropf ad jx 34 ad put4in2places <i988> 9 jx i1 39 quatropf ad put4in2places jx 37 jx ad doneenough. <i989> ^patmatpf3 560 fnactcherish <i990> basis |act#: 560 basis ^patmatpf3 fneasyact <i991> |this fund is |activated |by tasks: basis 49 adjustfund <i992> cybernettx1= nous ^. *txtcomplete longtxt* cliptrail First book sca n roboapp is p erforming. <sp cybernettx1 ace> for conti kl <i993> cybernettx2= sc> ^. *txtcomplete longtxt* cliptrail action, or to pause; <enter> to go on betw cybernettx2 een pauses; <e kl <i994> cybernettx3= ^. *txtcomplete longtxt* cliptrail {possibly seve ral times} to exit the roboa cybernettx3 pp. kl <i995> cyberinfoprt= ce |Action: prtsuspend |some general prtclr |info, |do a 'prt- |called by |release'after |cybnernetes 22 prtlinenum kl <i996> cybernettx1 cybernettx3 lk lk prt prt. cybernettx2 lk prt <i997> cyberinfobig= |Action: |some large |font words |called by |cybnernetes <i998> ^roboapp: 550 100 255 0 bigshow <i999> ^first ^book 550 550 180 260 255 255 0 0 hugeshow hugeshow <i1000> ^scan 100 550 |This makes 340 |very sure 255 |screen is 0 |refresh when |next syscalls |w/pausefactor hugeshow activepause. <i1001> appdoneinfo= |Action: |a subroutine ^completed! |for main fn, 50 |cybernetes, 690 |tell that it 0 |is done 255 hugeshow. <i1002> sayactiontx1= ^. longtxt* cliptrail Present action is # *txtcomplete sayactiontx1 kl <i1003> sayactiontx2= *txtcomplete ^. longtxt* cliptrail Robot is in it s 'pause betwe en actions' mo sayactiontx2 de now kl <i1004> sayactiontx3= *txtcomplete ^. longtxt* cliptrail Robot is in it s 'continous a ction mode' no sayactiontx3 w kl <i1005> sayactionmode= s2 |in:actionnum, s1 | modeflag |action: a |subroutine |of cybernetes |that tells |action & mode <i1006> sayactiontx1 lk prtcont i1 prtnum <i1007> prtrelease sh sayactiontx3 lk sayactiontx2 i2 se w prt. <i1008> cyberntx1= ^. longtxt* cliptrail robot activity *txtcomplete cyberntx1 kl <i1009> cyberinittx1= dures! ^. *txtcomplete longtxt* cliptrail In a brief mom ent, the motor s will go thro cyberinittx1 ugh init proce kl <i1010> cyberinittx2= ots! ^. *txtcomplete longtxt* cliptrail During any ini t, please keep absolutely cl cyberinittx2 ear of the rob kl <i1011> cyberinittx3= inits! ^. *txtcomplete longtxt* cliptrail Protect childr en--indeed any thing sensitiv cyberinittx3 e--during robo kl <i1012> cyberinittx4= ment ^. *txtcomplete longtxt* cliptrail Each roboapp c omes with inst ructions for c cyberinittx4 orrect environ kl <i1013> cyberinittx5= at, in ^. *txtcomplete longtxt* cliptrail for use of it: follow it! An d then you are cyberinittx5 also aware th kl <i1014> cyberinittx6= pens. ^. *txtcomplete longtxt* cliptrail starting the r obot, you take responsibilit cyberinittx6 y for what hap kl <i1015> cyberreset= |so that after |action: |a call on |this sets the |this {eg just |cybernetes |before fcm is |main foundry |called again} |to something |startup |remsembling |should occur; |startup state |uses 'fnamw' <i1016> &cybernetes& jx fnamw n? |This is the |name of the se |steering fn tx ex <i1017> fnloopcont 1 49 jx dancethis kw <i1018> 0 0 10 12 jx jx kw kw <i1019> 1 0 48 37 jx jx kw kw. <i1020> cyberinit= ce |action: prtclr |does rrr and prtsuspend |deeprrr, cyberinittx1 |clears screen lk |first and |tells what |it is doing! prt <i1021> cyberinittx2 cyberinittx4 lk lk prt prt cyberinittx3 cyberinittx5 lk lk prt prt <i1022> cyberinittx6 lk &welcome!& 50 250 255 0 prtrelease prt hugeshow <i1023> &stand by for& 50 450 255 0 hugeshow <i1024> &robot init!& 1000 50 activepause 650 255 0 rrr hugeshow deeprrr. <i1025> themodeofkey= |With mode |in:mode |dance, ki |gives:keynum |is called in |action: With |every case |mode basis, |{ie, mode |keynum is 0 |basis is |or, given ck, |'continous |the ki result |mode'} <i1026> s3 se 0 ex i3 n? ck n? sh an ki. <i1027> cybernetes= |at start up, |in:tr#,fnwarp |mainvalue & |This is the |1st val of |act for the |triplet#10 |ruling fund |are expected |at level60000 |to be basis & |in this app; |activeflag |reset info: |dance <i1028> sx |Also, 1st val |of triplet#10 |{pos 37} is, |at startup, |assumed to be |basis sh <i1029> ix 10 wk n? se cyberinit <i1030> ix i5 1 subactstate eq se s5 ex <i1031> ix ix 10 37 wk wk |activity |mode:basis is |number is |continous, |in i3: |dance means |use of enter s3 t8 <i1032> cyberinfoprt cyberinfobig j8 i3 themodeofkey j8 sayactionmode t5 <i1033> j5 j8 |key{space}: n? 32 eq n? ix settenthtri d5 ex <i1034> j5 fnloopcont |key{esc}: basisthis 27 eq n? d3 ex <i1035> 10000000 d6 i5 eq thousand 1000000 s5 i5 ix eq incmainval or ix n? extrabasis <i1036> ix appdoneinfo isitcompleted fnloopcont n? basisthis |note that in |this form,the |fn accepts |million state d4 ex <i1037> 1000 i5 i5 exitmsgissue eq d3 ex <i1038> 10 ix wk ix carryout <i1039> cyberntx1 100 lk 35 685 255 0 bigshow activepause. <i1040> ^cybernetes |So this is 800 |the main |This means |function in |'steering', |the steering |a root in |fund we next |"cybernetics" |set up at |robot control |level #60000 fnactcherish |is act#800 <i1041> 60000 basis |act#: 800 basis ^cybernetes setfundlevel fneasyact <i1042> |Cybernetes |It has links |foundry has, |added in task |of course, |level, using |high |counter: |priority: 1 0 48 47 adjustfund adjustfund <i1043> |prelim: note, |of a range of |important:ALL |suitable task |tasks that |snippets, and |are outlined |refined as |next will be |the book scan |re-organised |roboapp is |AFTER |gradually |entrainments |completed! :) <i1044> 70000 setfundlevel <i1045> tk1= |task #1, or |in:tr#,fnwarp |t1; note that sx |minlen of sh |name of both |funcs and 3 |foundries are jumpnum |3, so we say kl |tk1 <i1046> ix i5 1 subactstate eq se s5 ex <i1047> 10000000 d6 i5 eq thousand 1000000 s5 i5 ix eq incmainval or ix n? extrabasis <i1048> ix |Note that 10 |both wk |subactstate & |i9:activity |card before |number |this may have |modified this |mainval; it's s9 |now updated <i1049> ix i9 isitcompleted ix se ex carryout. <i1050> ^tk1 351 fnactcherish <i1051> basis |act#: 351 basis ^tk1 fneasyact <i1052> |this fund is basis |activated 47 |by cybernetes adjustfund |prelim:insert |fn w/snippet: basis |t1a,roboarm 49 |to assumed adjustfund |pos of rubber <i1053> ^getcamvu1 ^applygemth connectfund connectfund ^patmatpf1 connectfund ^patmatpf2 connectfund <i1054> ^patmatpf3 |subtask for connectfund |tk1; it, in |turn, calls |the next |on proper |foundry, t1b, |subtask, |lists itself |selectively |up as the ^cybernetes |completing addnexus <i1055> 80000 |At this |level, it |starts |getting |nearer the |60bit nums |to steer the setfundlevel |roboactions <i1056> t1b= |task #1b;this |in:tr#,fnwarp |is the sx |completing |prelim:this |subtask of t1 |func hasn't |and this one |been checked |performs |yet |selectively sh |from pmatnums <i1057> |Linknums: |Fundwarp: 1 ix 2 |Compare!!! 3 pfnumdeltas |pfnums triad: t3 t1pf t2 lk t1 <i1058> !70 an 65 j1 iswithin !25 j2 j3 !80 gt 60 iswithin an <i1059> n? d6 four ix carryout ix doneenough ex <i1060> 65 j1 ge 60 j2 ge an <i1061> d6 five ix carryout ix doneenough ex <i1062> |ie, it will six |always try to ix |pick it up; carryout |a check on |whether the |roboarm has |got it is for ix |a next fn doneenough. <i1063> ^t1b 151 fnactcherish <i1064> basis |act#: 151 basis ^t1b fneasyact <i1065> |this fund is basis |activated 47 |by tk1 adjustfund |prelim:hook |it up to tk1 basis 49 adjustfund <i1066> ^patmatpf1 |These first connectfund |are used for |input only; ^patmatpf2 |this isn't connectfund |your normal |sequential ^patmatpf3 |fund :-) connectfund <i1067> |prelim:make |t1b1,2,3 & |hook them up |to this one <i1068> 81001 basis &output1& setfundlevel fneasy <i1069> 81002 basis &output2& setfundlevel fneasy <i1070> 81003 basis &output3& setfundlevel fneasy <i1071> fbsinfo= pp |action: info ^roboapp:first |re first pp |book scan ^book scan; ce pp ^fbsinfo: ^to start, pp pp ^g15 pmn fcm <i1072> ^place book & ^Note: be sure pp pp ^type fcm ^to init robot pp pp ^Std options: ^first, eg by pp pp ^type orinfo ^deeprrr,ok?:) pp pp <i1073> ^To check eg ^after use of pp pp ^imbrightness ^eg vurobocam1 pp pp ^& imcontrast, ^View pattern pp pp ^type vumatr ^match scores: pp pp <i1074> ^vupmat {after ^Good luck!!! pp pp. ^eg vumatr} pp ^For pmat work pp ^try: rectune pp <i1075> &fbsinfo& zz This is "deeprrr.sh", called by the G15 PMN program above to initialise the SSC32U card: # TUNED TO WARM UP SERVOS FOR FIRST BOOK SCAN # WHEN NECESSARY TUNE FURTHER TO YOUR OWN SET OF SERVOS # EXPANDS ON THE OPENROBOTICS CORE DEEPRRR FOR SSC32U # start it by ./deeprrr.sh # Depending on how deep reset the electronics and hardware # requires, it may be of value to run it a couple of times echo "#29 P1250 T750" > /dev/ttyUSB0 sleep 0.8 echo "#29 P1650 T750" > /dev/ttyUSB0 sleep 0.8 echo "#29 P1250 T750" > /dev/ttyUSB0 sleep 0.8 echo "#0 P1500 #1 P1800 #2 P1500 #3 P1500" > /dev/ttyUSB0 echo "#4 P1500 #5 P1500 #6 P1500 #7 P1500" > /dev/ttyUSB0 echo "#8 P1500 #9 P1500 #10 P1500" > /dev/ttyUSB0 echo "#11 P1500 #12 P1500 #13 P1500 #14 P1500" > /dev/ttyUSB0 echo "#15 P1500 #16 P1500 #17 P1500 #18 P1500" > /dev/ttyUSB0 echo "#19 P1500 #20 P1500 #21 P1500" > /dev/ttyUSB0 echo "#22 P1500 #23 P1500 #24 P1500 #25 P1500" > /dev/ttyUSB0 echo "#26 P1500 #27 P1500 #28 P1500" > /dev/ttyUSB0 echo "#30 P1500 #31 P1500" > /dev/ttyUSB0 echo "#18 P1500 T500" > /dev/ttyUSB0 sleep 1.1 echo "#18 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500" > /dev/ttyUSB0 echo "#0 P1500" > /dev/ttyUSB0 echo "#0 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#1 P1800" > /dev/ttyUSB0 echo "#1 P1800" > /dev/ttyUSB0 echo "#1 P1700 T250" > /dev/ttyUSB0 sleep 0.3 echo "#2 P1500" > /dev/ttyUSB0 echo "#2 P1500" > /dev/ttyUSB0 echo "#2 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#3 P1500" > /dev/ttyUSB0 echo "#3 P1500" > /dev/ttyUSB0 echo "#3 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#4 P1500" > /dev/ttyUSB0 echo "#4 P1500" > /dev/ttyUSB0 echo "#4 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#5 P1500" > /dev/ttyUSB0 echo "#5 P1500" > /dev/ttyUSB0 echo "#5 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#6 P1500" > /dev/ttyUSB0 echo "#6 P1500" > /dev/ttyUSB0 echo "#6 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#7 P1500" > /dev/ttyUSB0 echo "#7 P1500" > /dev/ttyUSB0 echo "#7 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#8 P1500" > /dev/ttyUSB0 echo "#8 P1500" > /dev/ttyUSB0 echo "#8 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#9 P1500" > /dev/ttyUSB0 echo "#9 P1500" > /dev/ttyUSB0 echo "#9 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#10 P1700" > /dev/ttyUSB0 echo "#10 P1700" > /dev/ttyUSB0 echo "#10 P1700 T250" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500 #1 P1700 #2 P1500 #3 P1500" > /dev/ttyUSB0 echo "#4 P1500 #5 P1500 #6 P1500 #7 P1500" > /dev/ttyUSB0 echo "#8 P1500 #9 P1500 #10 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500 #1 P1700 #2 P1500 #3 P1500" > /dev/ttyUSB0 echo "#4 P1500 #5 P1500 #6 P1500 #7 P1500" > /dev/ttyUSB0 echo "#8 P1500 #9 P1500 #10 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500" > /dev/ttyUSB0 echo "#0 P1500" > /dev/ttyUSB0 echo "#0 P1500 T500" > /dev/ttyUSB0 sleep 0.5 echo "#1 P1700" > /dev/ttyUSB0 echo "#1 P1700" > /dev/ttyUSB0 echo "#1 P1700 T250" > /dev/ttyUSB0 sleep 0.3 echo "#2 P1500" > /dev/ttyUSB0 echo "#2 P1500" > /dev/ttyUSB0 echo "#2 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#3 P1500" > /dev/ttyUSB0 echo "#3 P1500" > /dev/ttyUSB0 echo "#3 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#4 P1500" > /dev/ttyUSB0 echo "#4 P1500" > /dev/ttyUSB0 echo "#4 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#5 P1500" > /dev/ttyUSB0 echo "#5 P1500" > /dev/ttyUSB0 echo "#5 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#6 P1500" > /dev/ttyUSB0 echo "#6 P1500" > /dev/ttyUSB0 echo "#6 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#7 P1500" > /dev/ttyUSB0 echo "#7 P1500" > /dev/ttyUSB0 echo "#7 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#8 P1500" > /dev/ttyUSB0 echo "#8 P1500" > /dev/ttyUSB0 echo "#8 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#9 P1500" > /dev/ttyUSB0 echo "#9 P1500" > /dev/ttyUSB0 echo "#9 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#10 P1500" > /dev/ttyUSB0 echo "#10 P1500" > /dev/ttyUSB0 echo "#10 P1500 T250" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500 #1 P1700 #2 P1500 #3 P1500" > /dev/ttyUSB0 echo "#4 P1500 #5 P1500 #6 P1500 #7 P1500" > /dev/ttyUSB0 echo "#8 P1500 #9 P1500 #10 P1500" > /dev/ttyUSB0 sleep 0.3 echo "#0 P1500 #4 P750 #8 P1500 T1000" > /dev/ttyUSB0 sleep 1.1 echo "#1 P1700 #5 P1500 #7 P1500 T1000" > /dev/ttyUSB0 sleep 1.1 echo "#3 P1750 #2 P1700 #9 P1500 #10 P1500 T1000" > /dev/ttyUSB0 sleep 1.1 echo "#18 P1500 T500" > /dev/ttyUSB0 sleep 1.1 echo "#18 P1600 T750" > /dev/ttyUSB0 sleep 1.1 echo "#18 P1450 T750" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1450" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1450" > /dev/ttyUSB0 sleep 0.3 echo "#18 P1450" > /dev/ttyUSB0 sleep 0.3 echo "#29 P1250 T750" > /dev/ttyUSB0 sleep 0.8 echo "#29 P1650 T750" > /dev/ttyUSB0 sleep 0.8 echo "#29 P1250 T750" > /dev/ttyUSB0 sleep 0.8