Skip to content

Commit 4cf970f

Browse files
committed
v0.0.3
1 parent 50cc70d commit 4cf970f

40 files changed

Lines changed: 1333 additions & 26 deletions

cls/MTConnect/BO/DataTypesBuilderOperation.cls

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// v1.1 <br>
1+
/// v1.2 <br>
22
/// Creates a MTConnect Datatype based on a <CLASS>MTConnect.MSG.CreateDataTypeRequest</CLASS>.
33
/// Currently only works with %String and %Double.
44
Class MTConnect.BO.DataTypesBuilderOperation Extends Ens.BusinessOperation
@@ -86,10 +86,10 @@ Method Execute(pRequest As MTConnect.MSG.CreateDataTypeRequest, Output pResponse
8686
Set pResponse = ##class(Ens.StringResponse).%New()
8787

8888
If tSc{
89-
Set pResponse.StringValue = className_" created"
89+
Set pResponse.StringValue = className_" created!"
9090
}
9191
Else{
92-
Set pResponse.StringValue = className_" could not be created"
92+
Set pResponse.StringValue = className_" could not be created!"
9393
}
9494
Return tSc
9595
}
@@ -133,6 +133,23 @@ Method InsertIsValid(cdef As %Dictionary.ClassDefinition, className As %String,
133133
}
134134
Do mdef.Implementation.WriteLine(" Return $$$OK")
135135
}
136+
ElseIf pRequest.DataType = "%Integer"{
137+
Set mdef.Implementation.LineTerminator = $C(13,10)
138+
Do mdef.Implementation.WriteLine(" If '$ISVALIDNUM(%val){")
139+
Do mdef.Implementation.WriteLine(" Return $$$ERROR(%val_"" is not a valid Integer!"")")
140+
Do mdef.Implementation.WriteLine(" }")
141+
If pRequest.AllowedNumericMaxValue '= ""{
142+
Do mdef.Implementation.WriteLine(" If %val > "_pRequest.AllowedNumericMaxValue_"{")
143+
Do mdef.Implementation.WriteLine(" Return $$$ERROR(%val_"" is higher than allowed: "_pRequest.AllowedNumericMaxValue_""")")
144+
Do mdef.Implementation.WriteLine(" }")
145+
}
146+
If pRequest.AllowedNumericMinValue '= ""{
147+
Do mdef.Implementation.WriteLine(" If %val < "_pRequest.AllowedNumericMinValue_"{")
148+
Do mdef.Implementation.WriteLine(" Return $$$ERROR(%val_"" is lower than allowed: "_pRequest.AllowedNumericMinValue_""")")
149+
Do mdef.Implementation.WriteLine(" }")
150+
}
151+
Do mdef.Implementation.WriteLine(" Return $$$OK")
152+
}
136153
ElseIf pRequest.DataType = "%String"{
137154
Set mdef.Implementation.LineTerminator = $C(13,10)
138155
If pRequest.AllowedStringValues = ""{
@@ -196,7 +213,7 @@ Method InsertDisplayToLogical(cdef As %Dictionary.ClassDefinition, className As
196213
//Add parameter
197214
Do mdef.FormalSpecSet("%val:%String")
198215
//Add returntype
199-
If pRequest.DataType = "%Double"{
216+
If pRequest.DataType = "%Double" || pRequest.DataType = "%Integer"{
200217
Set mdef.ReturnType = pRequest.DataType
201218
}
202219
Else{
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Class MTConnect.DataTypes.ACCUMULATEDTIME Extends %String [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.ACCUMULATEDTIME
5+
{
6+
#dim result as MTConnect.DataTypes.ACCUMULATEDTIME
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = $REPLACE(%val,"s","")
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
Return $$$OK
15+
}
16+
17+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.ACCUMULATEDTIME) As %String
18+
{
19+
If %val = ""{Return "UNAVAILABLE"}
20+
Return %val_"s"
21+
}
22+
23+
ClassMethod Normalize(%val) As MTConnect.DataTypes.ACCUMULATEDTIME
24+
{
25+
#dim result as MTConnect.DataTypes.ACCUMULATEDTIME
26+
Set result = %val
27+
Return result
28+
}
29+
30+
}
31+

cls/MTConnect/DataTypes/ANGLE.cls

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Class MTConnect.DataTypes.ANGLE Extends %Double [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.ANGLE
5+
{
6+
#dim result as MTConnect.DataTypes.ANGLE
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = $REPLACE(%val,"°","")
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
If '$ISVALIDDOUBLE(%val){
15+
Return $$$ERROR(%val_" is not a valid Double!")
16+
}
17+
Return $$$OK
18+
}
19+
20+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.ANGLE) As %String
21+
{
22+
If %val = ""{
23+
Return "UNAVAILABLE"
24+
}
25+
Return %val_"°"
26+
}
27+
28+
ClassMethod Normalize(%val) As MTConnect.DataTypes.ANGLE
29+
{
30+
#dim result as MTConnect.DataTypes.ANGLE
31+
Set result = %val
32+
Return result
33+
}
34+
35+
}
36+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
Class MTConnect.DataTypes.ANGULARVELOCITY Extends %Double [ ClassType = datatype ]
2+
{
3+
4+
/// performs validation of data for the property, using property parameters if appropriate
5+
/// <li>%val: Where %val is the value to be validated</li>
6+
/// <li><b>returns</b>: This method should return an error status if the value is invalid and should otherwise return $$$OK</li>
7+
/// <EXAMPLE> Do ##class(MTConnect.DataTypes.NoneType).IsValid()</EXAMPLE>
8+
ClassMethod IsValid(%val) As %Status
9+
{
10+
If $ISVALIDDOUBLE(%val){
11+
Return $$$OK
12+
}
13+
Return $$$ERROR(%val_" is not a valid ANGULARVELOCITY!")
14+
}
15+
16+
/// converts the data for the property into a standard form or format.
17+
/// <li>%val: Where %val is the value to be validated</li>
18+
/// <li><b>returns</b>: a suitable type class</li>
19+
/// <EXAMPLE> Do ##class(MTConnect.DataTypes.NoneType).Normalize()</EXAMPLE>
20+
ClassMethod Normalize(%val) As MTConnect.DataTypes.ANGULARVELOCITY
21+
{
22+
#dim result as MTConnect.DataTypes.ANGULARVELOCITY
23+
Set result = %val
24+
Return result
25+
}
26+
27+
/// converts a display value into a logical value
28+
/// <li>%val: Where %val is the value to be converted </li>
29+
/// <li><b>returns</b>: Type is a suitable type class</li>
30+
/// <EXAMPLE> Do ##class(MTConnect.DataTypes.NoneType).DisplayToLogical()</EXAMPLE>
31+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.ANGULARVELOCITY
32+
{
33+
#dim result as MTConnect.DataTypes.ANGULARVELOCITY
34+
If %val = "UNAVAILABLE"{Return ""}
35+
Set result = $REPLACE(%val,"°/(1000 * min)","")
36+
Return result
37+
}
38+
39+
/// converts a logical value into a display value
40+
/// <li>%val: Where %val is the value to be converted </li>
41+
/// <li><b>returns</b>: Type is a suitable type class</li>
42+
/// <EXAMPLE> Do ##class(MTConnect.DataTypes.NoneType).DisplayToLogical()</EXAMPLE>
43+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.ANGULARVELOCITY) As %String
44+
{
45+
If %val = ""{
46+
Return "UNAVAILABLE"
47+
}
48+
Return %val_"°/(1000 * min)"
49+
}
50+
51+
}
52+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Class MTConnect.DataTypes.AVAILABILITY Extends %String [ ClassType = datatype, ProcedureBlock ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.AVAILABILITY
5+
{
6+
#dim result as MTConnect.DataTypes.AVAILABILITY
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = %val
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
Return $$$OK
15+
}
16+
17+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.AVAILABILITY) As %String
18+
{
19+
If %val = ""{Return "UNAVAILABLE"}
20+
Return %val
21+
}
22+
23+
ClassMethod Normalize(%val) As MTConnect.DataTypes.AVAILABILITY
24+
{
25+
#dim result as MTConnect.DataTypes.AVAILABILITY
26+
Set result = %val
27+
Return result
28+
}
29+
30+
}
31+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Class MTConnect.DataTypes.AXISFEEDRATE Extends %Double [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.AXISFEEDRATE
5+
{
6+
#dim result as MTConnect.DataTypes.AXISFEEDRATE
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = $REPLACE(%val,"mm/(1000 * min)","")
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
If '$ISVALIDDOUBLE(%val){
15+
Return $$$ERROR(%val_" is not a valid Double!")
16+
}
17+
Return $$$OK
18+
}
19+
20+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.AXISFEEDRATE) As %String
21+
{
22+
If %val = ""{Return "UNAVAILABLE"}
23+
Return %val_"mm/(1000 * min)"
24+
}
25+
26+
ClassMethod Normalize(%val) As MTConnect.DataTypes.AXISFEEDRATE
27+
{
28+
#dim result as MTConnect.DataTypes.AXISFEEDRATE
29+
Set result = %val
30+
Return result
31+
}
32+
33+
}
34+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Class MTConnect.DataTypes.AXISSTATE Extends %String [ ClassType = datatype, ProcedureBlock ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.AXISSTATE
5+
{
6+
#dim result as MTConnect.DataTypes.AXISSTATE
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = %val
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
Return $$$OK
15+
}
16+
17+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.AXISSTATE) As %String
18+
{
19+
If %val = ""{Return "UNAVAILABLE"}
20+
Return %val
21+
}
22+
23+
ClassMethod Normalize(%val) As MTConnect.DataTypes.AXISSTATE
24+
{
25+
#dim result as MTConnect.DataTypes.AXISSTATE
26+
Set result = %val
27+
Return result
28+
}
29+
30+
}
31+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Class MTConnect.DataTypes.CONCENTRATION Extends %Double [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.CONCENTRATION
5+
{
6+
#dim result as MTConnect.DataTypes.CONCENTRATION
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = $REPLACE(%val,"%","")
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
If '$ISVALIDDOUBLE(%val){
15+
Return $$$ERROR(%val_" is not a valid Double!")
16+
}
17+
If %val > 100{
18+
Return $$$ERROR(%val_" is higher than allowed: 100")
19+
}
20+
If %val < 0{
21+
Return $$$ERROR(%val_" is lower than allowed: 0")
22+
}
23+
Return $$$OK
24+
}
25+
26+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.CONCENTRATION) As %String
27+
{
28+
If %val = ""{Return "UNAVAILABLE"}
29+
Return %val_"%"
30+
}
31+
32+
ClassMethod Normalize(%val) As MTConnect.DataTypes.CONCENTRATION
33+
{
34+
#dim result as MTConnect.DataTypes.CONCENTRATION
35+
Set result = %val
36+
Return result
37+
}
38+
39+
}
40+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Class MTConnect.DataTypes.CONTROLLERMODE Extends %String [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.CONTROLLERMODE
5+
{
6+
#dim result as MTConnect.DataTypes.CONTROLLERMODE
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = %val
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
Set allowedList = $LFS("AUTOMATIC,SEMI_AUTOMATIC,MANUAL,MANUAL_DATA_INPUT,EDIT")
15+
For i = 1 : 1 : $LL(allowedList) {
16+
If %val = $LG(allowedList,i){
17+
Return $$$OK
18+
}
19+
}
20+
Return $$$ERROR("Value "_%val_" is not allowed!")
21+
}
22+
23+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.CONTROLLERMODE) As %String
24+
{
25+
If %val = ""{Return "UNAVAILABLE"}
26+
Return %val
27+
}
28+
29+
ClassMethod Normalize(%val) As MTConnect.DataTypes.CONTROLLERMODE
30+
{
31+
#dim result as MTConnect.DataTypes.CONTROLLERMODE
32+
Set result = %val
33+
Return result
34+
}
35+
36+
}
37+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Class MTConnect.DataTypes.DOORSTATE Extends %String [ ClassType = datatype ]
2+
{
3+
4+
ClassMethod DisplayToLogical(%val As %String) As MTConnect.DataTypes.DOORSTATE
5+
{
6+
#dim result as MTConnect.DataTypes.DOORSTATE
7+
If %val = "UNAVAILABLE"{Return ""}
8+
Set result = %val
9+
Return result
10+
}
11+
12+
ClassMethod IsValid(%val) As %Status
13+
{
14+
Set allowedList = $LFS("CLOSED,UNLATCHED")
15+
For i = 1 : 1 : $LL(allowedList) {
16+
If %val = $LG(allowedList,i){
17+
Return $$$OK
18+
}
19+
}
20+
Return $$$ERROR("Value "_%val_" is not allowed!")
21+
}
22+
23+
ClassMethod LogicalToDisplay(%val As MTConnect.DataTypes.DOORSTATE) As %String
24+
{
25+
If %val = ""{Return "UNAVAILABLE"}
26+
Return %val
27+
}
28+
29+
ClassMethod Normalize(%val) As MTConnect.DataTypes.DOORSTATE
30+
{
31+
#dim result as MTConnect.DataTypes.DOORSTATE
32+
Set result = %val
33+
Return result
34+
}
35+
36+
}
37+

0 commit comments

Comments
 (0)