-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCanonical.vb
More file actions
executable file
·66 lines (60 loc) · 3.06 KB
/
Canonical.vb
File metadata and controls
executable file
·66 lines (60 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Imports System.Text.RegularExpressions
Public Class Canonical
Private Shared _oCanonicalTypes As List(Of String)
Public Shared Function CanonicalName(ByVal sName As String) As String
Dim sReturnNameString As String = Trim(sName)
Dim arrString As Char() = sReturnNameString.ToCharArray
If sName.Length > 0 Then
If IsNumeric(arrString(0)) Then ' if the leading character is numeric
sReturnNameString = "_" & sReturnNameString ' add a prefix underscore
End If
sReturnNameString = Regex.Replace(sReturnNameString, "[\- \\/\(\)\=]", "_") ' otherwise, just replace these characters with underscore
' note that we are allowing the period character to allow for namespace specs
End If
Return sReturnNameString
End Function
Public Shared Function IsCanonicalType(sTypeName As String) As Boolean
Dim bIsCanonicalType As Boolean = False
If _oCanonicalTypes Is Nothing Then
_oCanonicalTypes = New List(Of String)
_oCanonicalTypes.Add("SECONDS")
_oCanonicalTypes.Add("MILLISECONDS")
_oCanonicalTypes.Add("BYTE_STRING")
_oCanonicalTypes.Add("SHORT_STRING")
_oCanonicalTypes.Add("VOLTAGE_DIFF_ADC_COUNTS")
_oCanonicalTypes.Add("OTHER_ADC_COUNTS_U16")
_oCanonicalTypes.Add("CLICKS_U16")
_oCanonicalTypes.Add("VOLTAGE_ADC_COUNTS_U16")
_oCanonicalTypes.Add("CURRENT_ADC_COUNTS_U16")
_oCanonicalTypes.Add("POWER_ADC_COUNTS_U16")
_oCanonicalTypes.Add("TEMPERATURE_ADC_COUNTS_U16")
_oCanonicalTypes.Add("OTHER_ADC_COUNTS_U32")
_oCanonicalTypes.Add("CLICKS_U32")
_oCanonicalTypes.Add("VOLTAGE_ADC_COUNTS_U32")
_oCanonicalTypes.Add("CURRENT_ADC_COUNTS_U32")
_oCanonicalTypes.Add("POWER_ADC_COUNTS_U32")
_oCanonicalTypes.Add("TEMPERATURE_ADC_COUNTS_U32")
_oCanonicalTypes.Add("CENTIWATTS")
_oCanonicalTypes.Add("CENTIVOLTS")
_oCanonicalTypes.Add("CENTIAMPS")
_oCanonicalTypes.Add("MILLIVOLTS")
_oCanonicalTypes.Add("CENTIHERTZ")
_oCanonicalTypes.Add("bool")
_oCanonicalTypes.Add("float")
_oCanonicalTypes.Add("byte")
_oCanonicalTypes.Add("uchar")
_oCanonicalTypes.Add("uint")
_oCanonicalTypes.Add("uint16")
_oCanonicalTypes.Add("int")
_oCanonicalTypes.Add("ulong")
_oCanonicalTypes.Add("long")
_oCanonicalTypes.Add("char")
_oCanonicalTypes.Add("unsigned long")
_oCanonicalTypes.Add("unsigned int")
_oCanonicalTypes.Add("unsigned char")
_oCanonicalTypes.Add("unsigned byte")
End If
bIsCanonicalType = _oCanonicalTypes.Contains(sTypeName)
Return bIsCanonicalType
End Function
End Class