Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions WebContent/WEB-INF/jsp/pointEdit/textRenderer.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@
<td class="formField"><input id="textRendererTimeConversionExponent" type="text" value="<c:catch var="exception"><c:out value="${form.textRenderer.conversionExponent}" /></c:catch>"/></td>
</tr>
</tbody>
<tbody id="textRendererBinaryNumber" style="display:none;">
</tbody>
<tbody id="textRendererHexadecimal" style="display:none;">
</tbody>
</table>
</div>

Expand Down Expand Up @@ -248,6 +252,10 @@
} else if (typeName == "textRendererTime")
DataPointEditDwr.setTimeTextRenderer($get("textRendererTimeFormat"),
$get("textRendererTimeConversionExponent"), callback);
else if (typeName == "textRendererHexadecimal")
DataPointEditDwr.setHexadecimalRenderer(callback);
else if (typeName == "textRendererBinaryNumber")
DataPointEditDwr.setBinaryRenderer(callback);
else
callback();
};
Expand Down
6 changes: 6 additions & 0 deletions src/com/serotonin/mango/view/text/BaseTextRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ static void ensureDefinitions() {
d.add(PlainRenderer.getDefinition());
d.add(RangeRenderer.getDefinition());
d.add(TimeRenderer.getDefinition());
d.add(BinaryRenderer.getDefinition());
d.add(HexadecimalRenderer.getDefinition());
definitions = d;
}
}
Expand Down Expand Up @@ -212,6 +214,10 @@ else if (def == RangeRenderer.getDefinition())
clazz = RangeRenderer.class;
else if (def == TimeRenderer.getDefinition())
clazz = TimeRenderer.class;
else if (def == BinaryRenderer.getDefinition())
clazz = BinaryRenderer.class;
else if (def == HexadecimalRenderer.getDefinition())
clazz = HexadecimalRenderer.class;
else
throw new ShouldNeverHappenException("What's this?: " + def.getName());

Expand Down
79 changes: 79 additions & 0 deletions src/com/serotonin/mango/view/text/BinaryRenderer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.serotonin.mango.view.text;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import com.serotonin.json.JsonRemoteEntity;
import com.serotonin.mango.DataTypes;
import com.serotonin.mango.rt.dataImage.types.MangoValue;
import com.serotonin.mango.view.ImplDefinition;

@JsonRemoteEntity
public class BinaryRenderer extends BaseTextRenderer {
public static final String TYPE_NAME = "textRendererBinaryNumber";

private static ImplDefinition definition = new ImplDefinition(
TYPE_NAME,
"BINARY",
"textRenderer.binary.number",
new int[] { DataTypes.NUMERIC }
);

public static ImplDefinition getDefinition() {
return definition;
}

public BinaryRenderer() {
// no op
}

@Override
public String getTypeName() {
return TYPE_NAME;
}

@Override
public ImplDefinition getDef() {
return definition;
}

@Override
public String getMetaText() {
return null;
}

@Override
protected String getTextImpl(MangoValue value, int hint) {
if (value == null)
return UNKNOWN_VALUE;

long i = (long) value.getDoubleValue();
String bin = Long.toBinaryString(i);
int groups = (bin.length() + 3) / 4;
int totalBits = groups * 4;
String padded = String.format("%" + totalBits + "s", bin).replace(' ', '0');
StringBuilder sb = new StringBuilder();
for (int g = 0; g < groups; g++) {
if (g > 0) sb.append(' ');
sb.append(padded, g * 4, g * 4 + 4);
}
return sb.toString();
}

@Override
protected String getColourImpl(MangoValue value) {
return null;
}

private static final long serialVersionUID = -1;
private static final int version = 1;

private void writeObject(ObjectOutputStream out) throws IOException {
out.writeInt(version);
}

private void readObject(ObjectInputStream in) throws IOException {
in.readInt(); // version
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
*/
@JsonRemoteEntity
public class BinaryTextRenderer extends BaseTextRenderer {
private static ImplDefinition definition = new ImplDefinition(BinaryTextRenderer.TYPE_NAME, "BINARY",
private static ImplDefinition definition = new ImplDefinition(BinaryTextRenderer.TYPE_NAME, "BINARY (T/F)",
"textRenderer.binary", new int[] { DataTypes.BINARY });

public static ImplDefinition getDefinition() {
Expand Down
72 changes: 72 additions & 0 deletions src/com/serotonin/mango/view/text/HexadecimalRenderer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.serotonin.mango.view.text;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import com.serotonin.json.JsonRemoteEntity;
import com.serotonin.mango.DataTypes;
import com.serotonin.mango.rt.dataImage.types.MangoValue;
import com.serotonin.mango.view.ImplDefinition;


@JsonRemoteEntity
public class HexadecimalRenderer extends BaseTextRenderer {
public static final String TYPE_NAME = "textRendererHexadecimal";

private static ImplDefinition definition = new ImplDefinition(
TYPE_NAME,
"HEX",
"textRenderer.hex",
new int[] { DataTypes.NUMERIC }
);

public static ImplDefinition getDefinition() {
return definition;
}

public HexadecimalRenderer() {
// no op
}

@Override
public String getTypeName() {
return TYPE_NAME;
}

@Override
public ImplDefinition getDef() {
return definition;
}

@Override
public String getMetaText() {
return null;
}

@Override
protected String getTextImpl(MangoValue value, int hint) {
if (value == null)
return UNKNOWN_VALUE;

long i = (long) value.getDoubleValue();
String hex = Long.toHexString(i).toUpperCase();
return "0x" + hex;
}

@Override
protected String getColourImpl(MangoValue value) {
return null;
}

private static final long serialVersionUID = -1;
private static final int version = 1;

private void writeObject(ObjectOutputStream out) throws IOException {
out.writeInt(version);
}

private void readObject(ObjectInputStream in) throws IOException {
in.readInt();
}
}
15 changes: 5 additions & 10 deletions src/com/serotonin/mango/web/dwr/DataPointEditDwr.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,7 @@
import com.serotonin.mango.view.chart.StatisticsChartRenderer;
import com.serotonin.mango.view.chart.TableChartRenderer;
import com.serotonin.mango.view.event.*;
import com.serotonin.mango.view.text.AnalogRenderer;
import com.serotonin.mango.view.text.BinaryTextRenderer;
import com.serotonin.mango.view.text.MultistateRenderer;
import com.serotonin.mango.view.text.MultistateValue;
import com.serotonin.mango.view.text.NoneRenderer;
import com.serotonin.mango.view.text.PlainRenderer;
import com.serotonin.mango.view.text.RangeRenderer;
import com.serotonin.mango.view.text.RangeValue;
import com.serotonin.mango.view.text.TextRenderer;
import com.serotonin.mango.view.text.TimeRenderer;
import com.serotonin.mango.view.text.*;
import com.serotonin.mango.vo.DataPointVO;
import com.serotonin.mango.vo.User;
import com.serotonin.mango.vo.event.PointEventDetectorVO;
Expand Down Expand Up @@ -118,6 +109,10 @@ public void setRangeRenderer(String format, List<RangeValue> values) {
setTextRenderer(r);
}

public void setHexadecimalRenderer() {setTextRenderer(new HexadecimalRenderer()); }

public void setBinaryRenderer(){setTextRenderer(new BinaryRenderer());}

public void setTimeTextRenderer(String format, int conversionExponent) {
setTextRenderer(new TimeRenderer(format, conversionExponent));
}
Expand Down
4 changes: 3 additions & 1 deletion webapp-resources/messages_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3454,7 +3454,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported
dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3457,8 +3457,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3497,8 +3497,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_fi.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3582,8 +3582,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3451,8 +3451,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_lu.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3470,8 +3470,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_nl.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3572,8 +3572,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_pl.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3594,8 +3594,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
3 changes: 2 additions & 1 deletion webapp-resources/messages_pt.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3609,8 +3609,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=Arquivo OK!
dsEdit.checkFile.notFound=Arquivo não encontrado!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_ru.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3605,8 +3605,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
5 changes: 3 additions & 2 deletions webapp-resources/messages_zh.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3557,8 +3557,9 @@ systemSettings.amChart.limitFactor=Limit factor
systemSettings.amChartsSaved=AmCharts settings have been saved
systemSettings.scadaConfTitle=Scada-LTS environment settings
systemSettings.scadaConfCheck=Check configuration
textRenderer.binary.number=Binary number
textRenderer.hex=Hexadecimal
validate.unsupportedDataType=Data type {0} is not supported

dsEdit.checkFile.found=File OK!
dsEdit.checkFile.notFound=File not found!
scadalts.security.js.validator.error=Script is invalid!
scadalts.security.js.validator.error=Script is invalid!
Loading