|
18 | 18 | import java.util.logging.Logger; |
19 | 19 |
|
20 | 20 | import org.epics.util.array.ListNumber; |
| 21 | +import org.epics.util.number.UByte; |
| 22 | +import org.epics.util.number.UInteger; |
| 23 | +import org.epics.util.number.ULong; |
| 24 | +import org.epics.util.number.UShort; |
21 | 25 | import org.epics.vtype.Display; |
22 | 26 | import org.epics.vtype.DisplayProvider; |
23 | 27 | import org.epics.vtype.VBoolean; |
@@ -219,7 +223,30 @@ private static String formatNumber(final Number value, final Display display, |
219 | 223 | if (option == FormatOption.HEX) |
220 | 224 | { |
221 | 225 | final StringBuilder buf = new StringBuilder(); |
222 | | - long longValue = value.longValue(); |
| 226 | + long longValue; |
| 227 | + if (value instanceof Byte valueByte) { |
| 228 | + longValue = Byte.toUnsignedLong(valueByte); |
| 229 | + } else if (value instanceof Short valueShort) { |
| 230 | + longValue = Short.toUnsignedLong(valueShort); |
| 231 | + } else if (value instanceof Integer valueInt) { |
| 232 | + longValue = Integer.toUnsignedLong(valueInt); |
| 233 | + } else if (value instanceof Long valueLong) { |
| 234 | + longValue = valueLong; |
| 235 | + } else if (value instanceof Float valueFloat) { |
| 236 | + longValue = valueFloat.longValue(); |
| 237 | + } else if (value instanceof Double valueDouble) { |
| 238 | + longValue = valueDouble.longValue(); |
| 239 | + } else if (value instanceof UByte valueUByte) { |
| 240 | + longValue = valueUByte.longValue(); |
| 241 | + } else if (value instanceof UShort valueUShort) { |
| 242 | + longValue = valueUShort.longValue(); |
| 243 | + } else if (value instanceof UInteger valueUInteger) { |
| 244 | + longValue = valueUInteger.longValue(); |
| 245 | + } else if (value instanceof ULong valueULong) { |
| 246 | + longValue = valueULong.longValue(); |
| 247 | + } else { |
| 248 | + longValue = value.longValue(); |
| 249 | + } |
223 | 250 | String hexString = Long.toHexString(longValue); |
224 | 251 | buf.append(hexString.toUpperCase()); |
225 | 252 | for (int i=buf.length(); i<precision; ++i) |
|
0 commit comments