preliminary-changes-2
This commit is contained in:
@ -21,26 +21,30 @@ namespace pxsim {
|
||||
export class ColorSensorNode extends UartSensorNode {
|
||||
id = NodeType.ColorSensor;
|
||||
|
||||
//private colors: number[] = [0];
|
||||
private color: number = 0;
|
||||
private colors: number[] = [0, 0, 0];
|
||||
|
||||
constructor(port: number) {
|
||||
super(port);
|
||||
this.mode = -1;
|
||||
this.modeReturnArr = false;
|
||||
}
|
||||
|
||||
getDeviceType() {
|
||||
return DAL.DEVICE_TYPE_COLOR;
|
||||
}
|
||||
|
||||
isModeReturnArr() {
|
||||
return this.modeReturnArr;
|
||||
}
|
||||
|
||||
setColors(colors: number[]) {
|
||||
this.colors = colors;
|
||||
this.setChangedState();
|
||||
}
|
||||
|
||||
setColor(colors: number) {
|
||||
this.colors = [colors];
|
||||
this.color = colors;
|
||||
this.setChangedState();
|
||||
}
|
||||
|
||||
@ -54,9 +58,16 @@ namespace pxsim {
|
||||
|
||||
setMode(mode: number) {
|
||||
this.mode = mode;
|
||||
if (this.mode == ColorSensorMode.RefRaw) this.color = 512;
|
||||
else if (this.mode == ColorSensorMode.RgbRaw) this.colors = [128, 128, 128];
|
||||
else this.color = 50; // Reflection or ambiend light
|
||||
if (this.mode == ColorSensorMode.RefRaw) {
|
||||
this.color = 512;
|
||||
this.modeReturnArr = false;
|
||||
} else if (this.mode == ColorSensorMode.RgbRaw) {
|
||||
this.colors = [128, 128, 128];
|
||||
this.modeReturnArr = true;
|
||||
} else { // Reflection or ambiend light
|
||||
this.color = 50;
|
||||
this.modeReturnArr = false;
|
||||
}
|
||||
this.changed = true;
|
||||
this.modeChanged = true;
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ namespace pxsim {
|
||||
protected mode: number;
|
||||
protected valueChanged: boolean;
|
||||
protected modeChanged: boolean;
|
||||
protected modeReturnArr: boolean;
|
||||
|
||||
constructor(port: number) {
|
||||
super(port);
|
||||
@ -19,65 +20,15 @@ namespace pxsim {
|
||||
return false;
|
||||
}
|
||||
|
||||
public isModeReturnArr() {
|
||||
return this.modeReturnArr;
|
||||
}
|
||||
|
||||
public getValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
setMode(mode: number) {
|
||||
this.mode = mode;
|
||||
this.changed = true;
|
||||
this.modeChanged = true;
|
||||
}
|
||||
|
||||
getMode() {
|
||||
return this.mode;
|
||||
}
|
||||
|
||||
getDeviceType() {
|
||||
return DAL.DEVICE_TYPE_NONE;
|
||||
}
|
||||
|
||||
public hasData() {
|
||||
return true;
|
||||
}
|
||||
|
||||
valueChange() {
|
||||
const res = this.valueChanged;
|
||||
this.valueChanged = false;
|
||||
return res;
|
||||
}
|
||||
|
||||
modeChange() {
|
||||
const res = this.modeChanged;
|
||||
this.modeChanged = false;
|
||||
return res;
|
||||
}
|
||||
|
||||
setChangedState() {
|
||||
this.changed = true;
|
||||
this.valueChanged = false;
|
||||
}
|
||||
}
|
||||
|
||||
export class SensorExtendedNode extends BaseNode {
|
||||
|
||||
protected mode: number;
|
||||
protected valueChanged: boolean;
|
||||
protected modeChanged: boolean;
|
||||
|
||||
constructor(port: number) {
|
||||
super(port);
|
||||
}
|
||||
|
||||
public isUart() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public isAnalog() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public getValue() {
|
||||
public getValues() {
|
||||
return [0];
|
||||
}
|
||||
|
||||
@ -85,6 +36,7 @@ namespace pxsim {
|
||||
this.mode = mode;
|
||||
this.changed = true;
|
||||
this.modeChanged = true;
|
||||
this.modeReturnArr = false;
|
||||
}
|
||||
|
||||
getMode() {
|
||||
@ -143,19 +95,4 @@ namespace pxsim {
|
||||
}
|
||||
}
|
||||
|
||||
export class UartSensorExtendedNode extends SensorNode {
|
||||
|
||||
constructor(port: number) {
|
||||
super(port);
|
||||
}
|
||||
|
||||
hasChanged() {
|
||||
return this.changed;
|
||||
}
|
||||
|
||||
public getValues() {
|
||||
return [0];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -91,7 +91,13 @@ namespace pxsim {
|
||||
if (node && node.isUart()) {
|
||||
// Actual
|
||||
const index = 0; //UartOff.Actual + port * 2;
|
||||
util.map16Bit(data, UartOff.Raw + DAL.MAX_DEVICE_DATALENGTH * 300 * port + DAL.MAX_DEVICE_DATALENGTH * index, Math.floor(node.getValue()))
|
||||
//console.log(node.isModeReturnArr()); // Узнать возвращает ли режим датчика массив значений
|
||||
let value, values;
|
||||
if (!node.isModeReturnArr()) {
|
||||
value = Math.floor(node.getValue());
|
||||
util.map16Bit(data, UartOff.Raw + DAL.MAX_DEVICE_DATALENGTH * 300 * port + DAL.MAX_DEVICE_DATALENGTH * index, value);
|
||||
} else values = node.getValues();
|
||||
//util.map16Bit(data, UartOff.Raw + DAL.MAX_DEVICE_DATALENGTH * 300 * port + DAL.MAX_DEVICE_DATALENGTH * index, value);
|
||||
// Status
|
||||
data[UartOff.Status + port] = node.valueChange() ? UartStatus.UART_PORT_CHANGED : UartStatus.UART_DATA_READY;
|
||||
}
|
||||
|
Reference in New Issue
Block a user