lens_protocol 0.1.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.envrc +2 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +16 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -3
- data/Gemfile.lock +47 -34
- data/README.md +2 -2
- data/examples/oma/R1000_1.oma +213 -213
- data/examples/oma/R1000_2.oma +213 -213
- data/examples/oma/STHKFMT.oma +358 -0
- data/lens_protocol.gemspec +2 -2
- data/lib/lens_protocol/errors.rb +3 -0
- data/lib/lens_protocol/oma/builder.rb +18 -0
- data/lib/lens_protocol/oma/formatter.rb +10 -2
- data/lib/lens_protocol/oma/line.rb +16 -0
- data/lib/lens_protocol/oma/message.rb +5 -59
- data/lib/lens_protocol/oma/parser.rb +17 -9
- data/lib/lens_protocol/oma/record.rb +0 -1
- data/lib/lens_protocol/oma/types/array.rb +21 -0
- data/lib/lens_protocol/oma/types/chiral.rb +31 -0
- data/lib/lens_protocol/oma/types/ignored.rb +15 -0
- data/lib/lens_protocol/oma/types/matrix.rb +17 -0
- data/lib/lens_protocol/oma/types/single.rb +21 -0
- data/lib/lens_protocol/oma/types/trcfmt.rb +77 -0
- data/lib/lens_protocol/oma/types/type.rb +74 -0
- data/lib/lens_protocol/oma/types/values/tracing_dataset.rb +42 -0
- data/lib/lens_protocol/oma/types.rb +81 -79
- data/lib/lens_protocol/oma.rb +1 -1
- data/lib/lens_protocol/version.rb +1 -1
- data/lib/lens_protocol.rb +10 -6
- data/shell.nix +9 -0
- metadata +27 -21
- data/lib/lens_protocol/oma/type/base.rb +0 -97
- data/lib/lens_protocol/oma/type/integer.rb +0 -15
- data/lib/lens_protocol/oma/type/numeric.rb +0 -24
- data/lib/lens_protocol/oma/type/r.rb +0 -17
- data/lib/lens_protocol/oma/type/text.rb +0 -8
- data/lib/lens_protocol/oma/type/trcfmt.rb +0 -30
@@ -0,0 +1,358 @@
|
|
1
|
+
OMAV=03.10
|
2
|
+
ACCN=999999
|
3
|
+
ADD=1.75;1.75
|
4
|
+
AVAL=13.80;13.80
|
5
|
+
AX=65;135
|
6
|
+
BACK=84.19;84.19
|
7
|
+
BCDRPIN=0.00;0.00
|
8
|
+
BCDRPUP=8.00;8.00
|
9
|
+
BCERIN=0.0;0.0
|
10
|
+
BCERUP=0.0;0.0
|
11
|
+
BCNRPIN=2.50;2.50
|
12
|
+
BCNRPUP=-13.00;-13.00
|
13
|
+
BCOCIN=0.00;0.00
|
14
|
+
BCOCUP=0.00;0.00
|
15
|
+
BCSBIN=0.00;0.00
|
16
|
+
BCSBUP=0.00;0.00
|
17
|
+
BCSGIN=0.00;0.00
|
18
|
+
BCSGUP=4.00;4.00
|
19
|
+
BCTHK=12.80;12.80
|
20
|
+
BETHK=14.70;14.70
|
21
|
+
BEVM=35.00;35.00
|
22
|
+
BEVP=2;2
|
23
|
+
BLKD=63.0;63.0
|
24
|
+
CBUMP=6.00;6.00
|
25
|
+
CIRC=151.761;151.761
|
26
|
+
CLIENT=11372
|
27
|
+
CLNAME=11372
|
28
|
+
CORRLEN=17;17
|
29
|
+
CRIB=70;70
|
30
|
+
CRIBFMTOK=0
|
31
|
+
CTHICK=4.90;4.40
|
32
|
+
CYL=-0.75;-0.75
|
33
|
+
DBL=19.00
|
34
|
+
DIA=80;80
|
35
|
+
DO=B
|
36
|
+
ERDRIN=0.00;0.00
|
37
|
+
ERDRUP=8.00;8.00
|
38
|
+
ERNRIN=3.50;3.50
|
39
|
+
ERNRUP=-13.00;-13.00
|
40
|
+
ETYP=1
|
41
|
+
FCBCIN=2.80;2.80
|
42
|
+
FCBCUP=0.00;0.40
|
43
|
+
FCOCIN=7.0;8.0
|
44
|
+
FCOCUP=-1.5;-1.5
|
45
|
+
FCRV=0;0
|
46
|
+
FCSGIN=6.98;7.98
|
47
|
+
FCSGUP=2.50;2.50
|
48
|
+
FED=59;59
|
49
|
+
FINCMP=0.20;0.20
|
50
|
+
FMFR=TST
|
51
|
+
FPINB=0.00;0.00
|
52
|
+
FRAM=4
|
53
|
+
FRNT=85.68;85.68
|
54
|
+
FTYP=2
|
55
|
+
FUPC=4
|
56
|
+
GAX=0;0
|
57
|
+
GBASE=-3.31;-3.81
|
58
|
+
GBASEX=-3.292;-3.805
|
59
|
+
GCROS=-4.25;-4.81
|
60
|
+
GCROSX=-4.243;-4.780
|
61
|
+
GTHK=4.90;4.40
|
62
|
+
HBOX=54.96;54.96
|
63
|
+
INSADD=1.77;1.78
|
64
|
+
INSAX=65.00;135.00
|
65
|
+
INSCTHK=4.96;4.47
|
66
|
+
INSCYL=-0.75;-0.75
|
67
|
+
INSDRAX=65.00;135.00
|
68
|
+
INSDRCYL=-0.75;-0.75
|
69
|
+
INSDRSPH=2.50;2.00
|
70
|
+
INSNRAX=60.00;139.00
|
71
|
+
INSNRCYL=-0.73;-0.79
|
72
|
+
INSNRSPH=4.26;3.80
|
73
|
+
INSPRPRVA=270;270
|
74
|
+
INSPRPRVM=0.12;0.12
|
75
|
+
INSSPH=2.50;2.00
|
76
|
+
IPD=30.00;29.00
|
77
|
+
JOB=L438942100
|
78
|
+
KPRVA=338;194
|
79
|
+
KPRVM=1.03;1.02
|
80
|
+
LDADD=1.77;1.78
|
81
|
+
LDDRAX=65;135
|
82
|
+
LDDRCYL=-0.75;-0.75
|
83
|
+
LDDRSPH=2.50;2.00
|
84
|
+
LDNAM=C85900;C85900
|
85
|
+
LDNRAX=60;139
|
86
|
+
LDNRCYL=-0.73;-0.79
|
87
|
+
LDNRSPH=4.26;3.80
|
88
|
+
LDPATH=00L438942100R.stf;00L438942100L.stf
|
89
|
+
LDPRVA=270;270
|
90
|
+
LDPRVM=0.12;0.12
|
91
|
+
LDVEN=essilor;essilor
|
92
|
+
LIND=1.498;1.498
|
93
|
+
LMATID=47;47
|
94
|
+
LMATTYPE=1;1
|
95
|
+
LMFR=ESSILOR;ESSILOR
|
96
|
+
LNAM=2590;2590
|
97
|
+
LTYP=PR;PR
|
98
|
+
LTYPE=PR FF;PR FF
|
99
|
+
LTYPEB=PR FF;PR FF
|
100
|
+
LTYPEF=SV;SV
|
101
|
+
MADD=0.00;0.00
|
102
|
+
MBASE=6.25;6.25
|
103
|
+
MINCTR=4.85;4.35
|
104
|
+
MINEDG=1.60;1.60
|
105
|
+
MINTHKCD=0.60;0.60
|
106
|
+
OCHT=22.00;22.00
|
107
|
+
OPC=0192301885;0192301885
|
108
|
+
OTHK=4.96;4.47
|
109
|
+
PHOTO=0
|
110
|
+
PINB=0.25;0.25
|
111
|
+
PIND=1.498;1.498
|
112
|
+
POLAR=0
|
113
|
+
POLISH=1
|
114
|
+
PTOK=1
|
115
|
+
PTPRVA=270;270
|
116
|
+
PTPRVM=0.12;0.12
|
117
|
+
REM=lo mas fino y estetico posible
|
118
|
+
RNGD=63.0;63.0
|
119
|
+
RNGH=5.3;5.3
|
120
|
+
RPRVA=173;-3
|
121
|
+
RPRVM=-1.28;-1.25
|
122
|
+
RXNM=10671905
|
123
|
+
SBBCIN=2.5;-2.5
|
124
|
+
SBBCUP=0.0;0.0
|
125
|
+
SBFCIN=0.00;0.00
|
126
|
+
SBFCUP=0.00;0.00
|
127
|
+
SBOCIN=4.20;5.20
|
128
|
+
SBOCUP=-1.50;-1.90
|
129
|
+
SBSGIN=7.00;8.00
|
130
|
+
SBSGUP=2.50;2.50
|
131
|
+
SGOCIN=0.00;0.00
|
132
|
+
SGOCUP=-4.00;-4.00
|
133
|
+
SPH=2.50;2.00
|
134
|
+
STATUS=0
|
135
|
+
STHKFMT=1;72;E;R
|
136
|
+
R=2574;2659;2745;2838;2891;2846;2741;2594;2460;2344
|
137
|
+
R=2245;2161;2090;2037;1997;1977;1961;1949;1940;1957
|
138
|
+
R=1979;2015;2062;2127;2209;2305;2416;2541;2684;2814
|
139
|
+
R=2918;2946;2903;2845;2775;2712;2655;2602;2549;2504
|
140
|
+
R=2458;2410;2364;2324;2281;2237;2192;2147;2104;2064
|
141
|
+
R=2029;2001;1977;1958;1943;1940;1942;1947;1955;1970
|
142
|
+
R=1993;2018;2044;2074;2107;2146;2189;2236;2288;2350
|
143
|
+
R=2420;2495
|
144
|
+
T=0346;0338;0327;0313;0300;0293;0293;0297;0304;0311
|
145
|
+
T=0315;0318;0321;0322;0324;0324;0322;0321;0318;0317
|
146
|
+
T=0314;0309;0304;0297;0289;0279;0266;0250;0230;0208
|
147
|
+
T=0187;0174;0173;0177;0183;0188;0191;0193;0195;0194
|
148
|
+
T=0194;0194;0195;0196;0201;0207;0216;0227;0238;0250
|
149
|
+
T=0263;0275;0287;0299;0309;0319;0328;0337;0343;0349
|
150
|
+
T=0354;0358;0361;0363;0364;0365;0365;0365;0365;0361
|
151
|
+
T=0359;0354
|
152
|
+
STHKFMT=1;72;E;L
|
153
|
+
R=2655;2712;2775;2845;2903;2946;2918;2814;2684;2541
|
154
|
+
R=2416;2305;2209;2127;2062;2015;1979;1957;1940;1949
|
155
|
+
R=1961;1977;1997;2037;2090;2161;2245;2344;2460;2594
|
156
|
+
R=2741;2846;2891;2838;2745;2659;2574;2495;2420;2350
|
157
|
+
R=2288;2236;2189;2146;2107;2074;2044;2018;1993;1970
|
158
|
+
R=1955;1947;1942;1940;1943;1958;1977;2001;2029;2064
|
159
|
+
R=2104;2147;2192;2237;2281;2324;2364;2410;2458;2504
|
160
|
+
R=2549;2602
|
161
|
+
T=0164;0165;0165;0165;0167;0174;0192;0213;0234;0252
|
162
|
+
T=0266;0278;0286;0293;0299;0302;0306;0308;0308;0310
|
163
|
+
T=0311;0311;0310;0308;0306;0303;0300;0295;0288;0282
|
164
|
+
T=0276;0273;0277;0288;0300;0309;0317;0324;0329;0332
|
165
|
+
T=0336;0337;0338;0339;0339;0338;0336;0334;0330;0325
|
166
|
+
T=0319;0312;0303;0294;0282;0272;0259;0246;0233;0220
|
167
|
+
T=0207;0195;0183;0174;0167;0162;0161;0160;0160;0161
|
168
|
+
T=0163;0163
|
169
|
+
SVAL=5.86;5.35
|
170
|
+
SWIDTH=0.0;0.0
|
171
|
+
TEXT_11= ;
|
172
|
+
TEXT_12= ;
|
173
|
+
TEXT_13= ;
|
174
|
+
TEXT_14= ;
|
175
|
+
TEXT_15= ;
|
176
|
+
TEXT_16= ;
|
177
|
+
THKA=355;190
|
178
|
+
THKP=2.78;2.67
|
179
|
+
THKR=35.00;35.00
|
180
|
+
THNA=240;305
|
181
|
+
THNP=0.11;0.14
|
182
|
+
THNR=35.00;35.00
|
183
|
+
TIND=1.530;1.530
|
184
|
+
TRCFMT=1;360;E;R;F
|
185
|
+
R=2574;2591;2609;2626;2642;2659;2676;2693;2709;2727
|
186
|
+
R=2745;2764;2782;2801;2820;2838;2857;2873;2881;2888
|
187
|
+
R=2891;2886;2881;2872;2859;2846;2830;2812;2794;2768
|
188
|
+
R=2741;2714;2683;2653;2623;2594;2565;2537;2511;2485
|
189
|
+
R=2460;2436;2413;2390;2367;2344;2323;2302;2282;2263
|
190
|
+
R=2245;2227;2210;2193;2177;2161;2145;2130;2116;2102
|
191
|
+
R=2090;2079;2068;2057;2047;2037;2027;2017;2009;2003
|
192
|
+
R=1997;1992;1988;1984;1980;1977;1973;1970;1967;1964
|
193
|
+
R=1961;1959;1956;1954;1952;1949;1947;1945;1943;1941
|
194
|
+
R=1940;1943;1947;1950;1954;1957;1961;1965;1969;1974
|
195
|
+
R=1979;1985;1991;1999;2006;2015;2024;2033;2043;2052
|
196
|
+
R=2062;2073;2083;2096;2112;2127;2143;2159;2175;2192
|
197
|
+
R=2209;2226;2245;2264;2283;2305;2326;2348;2370;2393
|
198
|
+
R=2416;2439;2463;2489;2515;2541;2569;2597;2626;2655
|
199
|
+
R=2684;2712;2739;2766;2791;2814;2837;2859;2880;2901
|
200
|
+
R=2918;2934;2948;2948;2949;2946;2938;2930;2922;2912
|
201
|
+
R=2903;2893;2882;2871;2858;2845;2832;2818;2803;2789
|
202
|
+
R=2775;2760;2747;2735;2723;2712;2701;2690;2678;2667
|
203
|
+
R=2655;2644;2633;2623;2612;2602;2591;2580;2569;2559
|
204
|
+
R=2549;2540;2531;2522;2513;2504;2495;2486;2477;2467
|
205
|
+
R=2458;2449;2439;2429;2420;2410;2400;2391;2381;2373
|
206
|
+
R=2364;2356;2348;2340;2332;2324;2315;2307;2298;2290
|
207
|
+
R=2281;2272;2263;2255;2246;2237;2228;2219;2210;2201
|
208
|
+
R=2192;2183;2174;2164;2155;2147;2138;2129;2121;2112
|
209
|
+
R=2104;2095;2087;2079;2071;2064;2056;2049;2042;2035
|
210
|
+
R=2029;2023;2017;2012;2006;2001;1995;1991;1986;1981
|
211
|
+
R=1977;1972;1968;1965;1961;1958;1954;1951;1948;1946
|
212
|
+
R=1943;1942;1941;1940;1940;1940;1940;1940;1941;1941
|
213
|
+
R=1942;1943;1944;1945;1946;1947;1948;1949;1951;1953
|
214
|
+
R=1955;1957;1959;1962;1966;1970;1975;1979;1984;1989
|
215
|
+
R=1993;1998;2003;2008;2013;2018;2023;2028;2034;2039
|
216
|
+
R=2044;2050;2055;2061;2067;2074;2080;2087;2094;2101
|
217
|
+
R=2107;2114;2122;2129;2137;2146;2154;2163;2171;2180
|
218
|
+
R=2189;2198;2207;2216;2226;2236;2246;2257;2267;2278
|
219
|
+
R=2288;2299;2311;2322;2336;2350;2364;2378;2392;2406
|
220
|
+
R=2420;2435;2449;2465;2480;2495;2511;2526;2542;2558
|
221
|
+
TRCFMT=1;360;E;L;F
|
222
|
+
R=2655;2667;2678;2690;2701;2712;2723;2735;2747;2760
|
223
|
+
R=2775;2789;2803;2818;2832;2845;2858;2871;2882;2893
|
224
|
+
R=2903;2912;2922;2930;2938;2946;2949;2948;2948;2934
|
225
|
+
R=2918;2901;2880;2859;2837;2814;2791;2766;2739;2712
|
226
|
+
R=2684;2655;2626;2597;2569;2541;2515;2489;2463;2439
|
227
|
+
R=2416;2393;2370;2348;2326;2305;2283;2264;2245;2226
|
228
|
+
R=2209;2192;2175;2159;2143;2127;2112;2096;2083;2073
|
229
|
+
R=2062;2052;2043;2033;2024;2015;2006;1999;1991;1985
|
230
|
+
R=1979;1974;1969;1965;1961;1957;1954;1950;1947;1943
|
231
|
+
R=1940;1941;1943;1945;1947;1949;1952;1954;1956;1959
|
232
|
+
R=1961;1964;1967;1970;1973;1977;1980;1984;1988;1992
|
233
|
+
R=1997;2003;2009;2017;2027;2037;2047;2057;2068;2079
|
234
|
+
R=2090;2102;2116;2130;2145;2161;2177;2193;2210;2227
|
235
|
+
R=2245;2263;2282;2302;2323;2344;2367;2390;2413;2436
|
236
|
+
R=2460;2485;2511;2537;2565;2594;2623;2653;2683;2714
|
237
|
+
R=2741;2768;2794;2812;2830;2846;2859;2872;2881;2886
|
238
|
+
R=2891;2888;2881;2873;2857;2838;2820;2801;2782;2764
|
239
|
+
R=2745;2727;2709;2693;2676;2659;2642;2626;2609;2591
|
240
|
+
R=2574;2558;2542;2527;2511;2495;2480;2465;2449;2435
|
241
|
+
R=2420;2406;2392;2378;2364;2350;2336;2322;2311;2299
|
242
|
+
R=2288;2278;2267;2257;2246;2236;2226;2216;2207;2198
|
243
|
+
R=2189;2180;2171;2163;2154;2146;2137;2129;2122;2114
|
244
|
+
R=2107;2101;2094;2087;2080;2074;2067;2061;2055;2050
|
245
|
+
R=2044;2039;2034;2028;2023;2018;2013;2008;2003;1998
|
246
|
+
R=1993;1989;1984;1979;1975;1970;1966;1962;1959;1957
|
247
|
+
R=1955;1953;1951;1949;1948;1947;1946;1945;1944;1943
|
248
|
+
R=1942;1941;1941;1940;1940;1940;1940;1940;1941;1942
|
249
|
+
R=1943;1946;1948;1951;1954;1958;1961;1965;1968;1972
|
250
|
+
R=1977;1981;1986;1991;1995;2001;2006;2012;2017;2023
|
251
|
+
R=2029;2035;2042;2049;2056;2064;2071;2079;2087;2095
|
252
|
+
R=2104;2112;2121;2129;2138;2147;2155;2164;2174;2183
|
253
|
+
R=2192;2201;2210;2219;2228;2237;2246;2255;2263;2272
|
254
|
+
R=2281;2290;2298;2307;2315;2324;2332;2340;2348;2356
|
255
|
+
R=2364;2373;2381;2391;2400;2410;2420;2429;2439;2449
|
256
|
+
R=2458;2467;2477;2486;2495;2504;2513;2522;2531;2540
|
257
|
+
R=2549;2559;2569;2580;2591;2602;2612;2623;2633;2644
|
258
|
+
UNI=0;0
|
259
|
+
VBOX=39.01;39.01
|
260
|
+
VEN=MODVCA
|
261
|
+
XSTATUS=R;1110;External module returns warning;W
|
262
|
+
XSTATUS=L;1110;External module returns warning;W
|
263
|
+
_ADDENGCODE=J2688;J2688
|
264
|
+
_BACK=84.190;84.190
|
265
|
+
_BATORIC=0
|
266
|
+
_BLKINSC=azul0;azul0
|
267
|
+
_BLKRNG=0063;0063
|
268
|
+
_CALCMODE=AUTO;AUTO
|
269
|
+
_COMMENT=lo mas fino y estetico posible
|
270
|
+
_CRIBBC=65;65
|
271
|
+
_CRIBTYPE=R;R
|
272
|
+
_CTO=1;1
|
273
|
+
_DENSITY=1.3;1.3
|
274
|
+
_DIA2=80;80
|
275
|
+
_DIAPHYS=80;80
|
276
|
+
_DIASALES=77;78
|
277
|
+
_DIASB=80;80
|
278
|
+
_DIGIT=257;275;289;274;246;225;209;200;196;194;198;206;221;242;268;292;290;278;266;255;246;236;228;219;210;203;198;194;194;196;199;204;211;219;229;242;
|
279
|
+
_DLP1=010702501112000000;010702501112000000
|
280
|
+
_DLP1DM=070;070
|
281
|
+
_DLP1TYP=01;01
|
282
|
+
_DLP2=000702500000000000;000702500000000000
|
283
|
+
_DLP2DM=070;070
|
284
|
+
_DLP2TYP=00;00
|
285
|
+
_DLP3=000702500000000000;000702500000000000
|
286
|
+
_DLP3DM=070;070
|
287
|
+
_DLP3TYP=00;00
|
288
|
+
_DOBLEND=0
|
289
|
+
_DODECENTER=0
|
290
|
+
_EDI=0
|
291
|
+
_EID=10671905
|
292
|
+
_ENTRYDATE=20200303
|
293
|
+
_ENTRYTIME=16:28:22
|
294
|
+
_ENTRYTYPE=I
|
295
|
+
_ENVELOPE=,;,
|
296
|
+
_FININKCODE=C324;C324
|
297
|
+
_FORCEDBATORIC=0
|
298
|
+
_FRNT=85.680;85.680
|
299
|
+
_FRONTTORIC=0
|
300
|
+
_GBASEX=-3.093;-3.575
|
301
|
+
_GCROSX=-3.987;-4.491
|
302
|
+
_GPRVA=338;194
|
303
|
+
_GPRVM=1.03;1.02
|
304
|
+
_JOBX=10671905
|
305
|
+
_LDESC=Varilux Comfort DS Orma;Varilux Comfort DS Orma
|
306
|
+
_LDS_CTHICK=4.90;4.40
|
307
|
+
_LDS_STHKA=322.00;221.00
|
308
|
+
_LDS_STHKP=4.30;4.00
|
309
|
+
_LDS_STHNA=157.00;348.00
|
310
|
+
_LDS_STHNP=2.30;2.20
|
311
|
+
_LENSGROUP=PR;PR
|
312
|
+
_LENTIOPT=0
|
313
|
+
_LMATID2=47;47
|
314
|
+
_LMATID3=47;47
|
315
|
+
_LMATID4=47;47
|
316
|
+
_LNAM=2590;2590
|
317
|
+
_MARGIN=3.00;3.00
|
318
|
+
_MATCHCRIB=0
|
319
|
+
_MATCODE=ORN498;ORN498
|
320
|
+
_MATTYPE=OR;OR
|
321
|
+
_MAXSAGR=121.249;107.888
|
322
|
+
_MAXSAGV=51.6;58.3
|
323
|
+
_MBASEACT=1;1
|
324
|
+
_MINSAGR=228.963;183.188
|
325
|
+
_MINSAGV=26.9;33.7
|
326
|
+
_MINSUM=3.80;3.80
|
327
|
+
_NOCALC=0
|
328
|
+
_OCONTROLS= 0 1 ; 0 1
|
329
|
+
_OMITADD=0
|
330
|
+
_ORDTYPE=I
|
331
|
+
_PHOTO=N;N
|
332
|
+
_PRINTLOCAL=0
|
333
|
+
_PROCESS=Essilor
|
334
|
+
_PRPON=1;1
|
335
|
+
_RECTYPE=F
|
336
|
+
_RNGZ=7.035;7.035
|
337
|
+
_SCSBCCA=0.00;0.00
|
338
|
+
_SCSBRD=0.00;0.00
|
339
|
+
_SHEIGHT=0.0;0.0
|
340
|
+
_SLABOFF=0
|
341
|
+
_SPORT=0
|
342
|
+
_STHKB=3.79;3.48
|
343
|
+
_STHKI=4.18;3.83
|
344
|
+
_STHKO=2.60;2.29
|
345
|
+
_STHKT=3.89;3.73
|
346
|
+
_STOCKRX=R;R
|
347
|
+
_SUPRAD=0.00;0.00
|
348
|
+
_SURFACE1=SP;SP
|
349
|
+
_SURFACE2=FP;FP
|
350
|
+
_THKA=325;220
|
351
|
+
_THKP=4.36;4.05
|
352
|
+
_THKR=19.47;19.52
|
353
|
+
_THNA=160;340
|
354
|
+
_THNP=2.42;2.25
|
355
|
+
_THNR=31.80;27.21
|
356
|
+
_USER=VCA
|
357
|
+
_VARINSET=0
|
358
|
+
_XCALC=ESS;ESS
|
data/lens_protocol.gemspec
CHANGED
@@ -24,10 +24,10 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'activesupport', '>= 4.0'
|
25
25
|
spec.add_dependency 'nokogiri'
|
26
26
|
spec.add_development_dependency "bundler", "~> 2.0"
|
27
|
-
spec.add_development_dependency "rake", "~>
|
27
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
28
28
|
spec.add_development_dependency "rspec", "~> 3.0"
|
29
29
|
spec.add_development_dependency "guard-rspec"
|
30
30
|
spec.add_development_dependency 'pry'
|
31
|
-
spec.add_development_dependency 'pry-byebug'
|
32
31
|
spec.add_development_dependency 'sinatra'
|
32
|
+
spec.add_development_dependency 'rubocop', '~> 0.80.0'
|
33
33
|
end
|
data/lib/lens_protocol/errors.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
class Builder
|
4
|
+
def build hash, types: {}
|
5
|
+
types = TYPES.merge(types)
|
6
|
+
|
7
|
+
hash.reduce Message.new do |message, (label, value)|
|
8
|
+
wrapped_value = types[label].wrap(value, hash, label)
|
9
|
+
if wrapped_value == :ignored
|
10
|
+
message
|
11
|
+
else
|
12
|
+
message.add_record(label, wrapped_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -13,10 +13,18 @@ module LensProtocol
|
|
13
13
|
|
14
14
|
def format_lines message, types: {}
|
15
15
|
types = TYPES.merge(types)
|
16
|
-
message.records.
|
17
|
-
|
16
|
+
message.records.flat_map do |label, record|
|
17
|
+
format_record label, record.value, types
|
18
18
|
end
|
19
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def format_record label, value, types
|
24
|
+
lines = types[label].format(label, value)
|
25
|
+
lines = lines.is_a?(Array) ? lines : [lines]
|
26
|
+
lines.map &:to_s
|
27
|
+
end
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
Line = Struct.new(:label, :data, :raw, keyword_init: true) do
|
4
|
+
def self.parse raw_line
|
5
|
+
raise ParsingError.new('The label separator is missing', raw_line) unless raw_line.include?('=')
|
6
|
+
|
7
|
+
label, data = raw_line.split('=', -1)
|
8
|
+
Line.new label: label, data: data, raw: raw_line
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
"#{label}=#{data}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -4,15 +4,12 @@ module LensProtocol
|
|
4
4
|
attr_reader :records
|
5
5
|
|
6
6
|
# Builds a message from a hash of record labels to record value.
|
7
|
-
def self.from_hash
|
8
|
-
|
9
|
-
message.add_record(label, value)
|
10
|
-
end
|
7
|
+
def self.from_hash *args
|
8
|
+
OMA.generate *args
|
11
9
|
end
|
12
10
|
|
13
|
-
def initialize records: {}
|
11
|
+
def initialize records: {}
|
14
12
|
@records = records
|
15
|
-
@context = context
|
16
13
|
end
|
17
14
|
|
18
15
|
def add_record label, value
|
@@ -20,29 +17,6 @@ module LensProtocol
|
|
20
17
|
self
|
21
18
|
end
|
22
19
|
|
23
|
-
def add_record_or_insert_values label, values
|
24
|
-
@records[label] ||= Record.new(label: label, value: [])
|
25
|
-
@records[label].value << values
|
26
|
-
self
|
27
|
-
end
|
28
|
-
|
29
|
-
def add_record_or_concat_values label, values
|
30
|
-
@records[label] ||= Record.new(label: label, value: [])
|
31
|
-
@records[label].value.concat values
|
32
|
-
self
|
33
|
-
end
|
34
|
-
|
35
|
-
def add_record_side_values label, side, values
|
36
|
-
@records[label] ||= Record.new(label: label, value: [[], []])
|
37
|
-
@records[label].value[side].concat values
|
38
|
-
self
|
39
|
-
end
|
40
|
-
|
41
|
-
def set_context key, value
|
42
|
-
@context[key] = value
|
43
|
-
self
|
44
|
-
end
|
45
|
-
|
46
20
|
def value_of label, default = nil
|
47
21
|
if include? label
|
48
22
|
@records[label].value
|
@@ -60,46 +34,18 @@ module LensProtocol
|
|
60
34
|
@records.empty?
|
61
35
|
end
|
62
36
|
|
63
|
-
def context key
|
64
|
-
@context[key]
|
65
|
-
end
|
66
|
-
|
67
37
|
def to_hash
|
68
38
|
Hash[*@records.flat_map { |label, record| [label, record.value] }]
|
69
39
|
end
|
70
40
|
|
71
|
-
# Returns the "R" reconds decoded radiuses according to the tracing format.
|
72
|
-
def radius_data
|
73
|
-
return [] unless value_of('TRCFMT') && value_of('R')
|
74
|
-
[0, 1].map do |side|
|
75
|
-
format_number, = value_of('TRCFMT')[side]
|
76
|
-
case format_number.to_i
|
77
|
-
when 0 # side not present
|
78
|
-
[]
|
79
|
-
when 1 # ASCII format
|
80
|
-
value_of('R')[side]
|
81
|
-
else # unknown format
|
82
|
-
return []
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
41
|
# Converts the "R" record values to polar coordinates.
|
88
42
|
def tracing_in_polar_coordinates
|
89
|
-
|
90
|
-
end
|
91
|
-
|
92
|
-
def radiuses_to_polar radiuses
|
93
|
-
radiuses.map.with_index { |r, i| [i * 2 * Math::PI / radiuses.size, r] }
|
43
|
+
value_of('TRCFMT', []).map { |tracing_dataset| tracing_dataset&.in_polar_coordinates || [] }
|
94
44
|
end
|
95
45
|
|
96
46
|
# Converts the "R" record values to rectangular coordinates.
|
97
47
|
def tracing_in_rectangular_coordinates
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
def radiuses_to_rectangular radiuses
|
102
|
-
radiuses_to_polar(radiuses).map { |(a, r)| [r * Math.cos(a), r * Math.sin(a)].map { |v| v.round 2 } }
|
48
|
+
value_of('TRCFMT', []).map { |tracing_dataset| tracing_dataset&.in_rectangular_coordinates || [] }
|
103
49
|
end
|
104
50
|
|
105
51
|
# Returns an array of SVG strings, one for each side. If the tracing format is not recognized
|
@@ -3,22 +3,30 @@ module LensProtocol
|
|
3
3
|
class Parser
|
4
4
|
def parse oma_str, types: {}
|
5
5
|
types = TYPES.merge(types)
|
6
|
-
normalize_line_endings(oma_str)
|
7
|
-
|
8
|
-
.reduce(Message.new) { |message, line| parse_line line, message, types }
|
6
|
+
lines = convert_to_structured_lines normalize_line_endings(oma_str).split("\n")
|
7
|
+
parse_lines lines, types, Message.new
|
9
8
|
end
|
10
9
|
|
11
10
|
private
|
12
11
|
|
13
|
-
def parse_line line, message, types
|
14
|
-
raise ParsingError.new('The label separator is missing', line) unless line.include?('=')
|
15
|
-
label, = line.split('=')
|
16
|
-
types[label].parse(line, message)
|
17
|
-
end
|
18
|
-
|
19
12
|
def normalize_line_endings str
|
20
13
|
str.to_s.gsub /\r\n?/, "\n"
|
21
14
|
end
|
15
|
+
|
16
|
+
def convert_to_structured_lines lines
|
17
|
+
lines.map { |line| Line.parse line }
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse_lines lines, types, message
|
21
|
+
line, *next_lines = lines
|
22
|
+
if line
|
23
|
+
value, next_lines = types[line.label].parse(line, next_lines)
|
24
|
+
message.add_record(line.label, value) if value
|
25
|
+
parse_lines next_lines, types, message
|
26
|
+
else
|
27
|
+
message
|
28
|
+
end
|
29
|
+
end
|
22
30
|
end
|
23
31
|
end
|
24
32
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
module Types
|
4
|
+
class Array < Type
|
5
|
+
def parse line, next_lines
|
6
|
+
values = parse_values line.data
|
7
|
+
[values, next_lines]
|
8
|
+
end
|
9
|
+
|
10
|
+
def wrap value, _message_hash, label
|
11
|
+
raise ValidationError, "#{label}: Expected an array of values. Got #{value}" unless value.is_a?(::Array)
|
12
|
+
value
|
13
|
+
end
|
14
|
+
|
15
|
+
def format label, values
|
16
|
+
build_line label, format_values(values)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
module Types
|
4
|
+
class Chiral < Type
|
5
|
+
def parse line, next_lines
|
6
|
+
values = make_chiral parse_values line.data
|
7
|
+
[values, next_lines]
|
8
|
+
end
|
9
|
+
|
10
|
+
def wrap value, _message_hash, _label
|
11
|
+
make_chiral Array(value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def format label, values
|
15
|
+
data = values.select(&:present?).empty? ? '' : format_values(values)
|
16
|
+
build_line label, data
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def make_chiral values
|
22
|
+
if values.size <= 1
|
23
|
+
[values[0], values[0]]
|
24
|
+
else
|
25
|
+
values[0..1]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
module Types
|
4
|
+
class Matrix < Type
|
5
|
+
def parse line, next_lines
|
6
|
+
same_label_lines, next_lines = next_lines.partition { |other_line| other_line.label == line.label }
|
7
|
+
values = [line, *same_label_lines].map { |line| parse_values line.data }
|
8
|
+
[values, next_lines]
|
9
|
+
end
|
10
|
+
|
11
|
+
def format label, values
|
12
|
+
values.map { |v| build_line label, format_values(v) }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module LensProtocol
|
2
|
+
module OMA
|
3
|
+
module Types
|
4
|
+
class Single < Type
|
5
|
+
def parse line, next_lines
|
6
|
+
value = parse_value line.data
|
7
|
+
[value, next_lines]
|
8
|
+
end
|
9
|
+
|
10
|
+
def wrap value, _message_hash, label
|
11
|
+
raise ValidationError, "#{label}: Expected a single value. Got #{value}" if value.respond_to?(:each)
|
12
|
+
value
|
13
|
+
end
|
14
|
+
|
15
|
+
def format label, value
|
16
|
+
build_line label, format_value(value)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|