add float32 view
This commit is contained in:
@ -32,7 +32,7 @@
|
|||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="labelFirstRegister">
|
<widget class="QLabel" name="labelFirstRegister">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>First reister:</string>
|
<string>First register:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
<property name="buddy">
|
||||||
<cstring>spinBoxFirstRegister</cstring>
|
<cstring>spinBoxFirstRegister</cstring>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QSpinBox" name="spinBoxFirstRegister">
|
<widget class="QSpinBox" name="spinBoxFirstRegister">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>9999</number>
|
<number>65535</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QSpinBox" name="spinBoxCount">
|
<widget class="QSpinBox" name="spinBoxCount">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>9999</number>
|
<number>65535</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -6,6 +6,7 @@ enum {
|
|||||||
ColumnHex,
|
ColumnHex,
|
||||||
ColumnBinary,
|
ColumnBinary,
|
||||||
ColumnAscii,
|
ColumnAscii,
|
||||||
|
ColumnFloat32,
|
||||||
ColumnCount
|
ColumnCount
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -54,6 +55,17 @@ QVariant ModbusTableModel::data(const QModelIndex &index, int role) const
|
|||||||
Q_ASSERT(index.row() < values.size());
|
Q_ASSERT(index.row() < values.size());
|
||||||
|
|
||||||
const auto &value = values[index.row()];
|
const auto &value = values[index.row()];
|
||||||
|
const bool hasNext = index.row() < values.size()-1;
|
||||||
|
|
||||||
|
union {
|
||||||
|
float valueAsFloat32;
|
||||||
|
quint16 arr [2];
|
||||||
|
};
|
||||||
|
if(hasNext){
|
||||||
|
arr[1]=value;
|
||||||
|
arr[0]=values[index.row()+1];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
switch (role)
|
switch (role)
|
||||||
{
|
{
|
||||||
@ -64,6 +76,7 @@ QVariant ModbusTableModel::data(const QModelIndex &index, int role) const
|
|||||||
case ColumnHex: return QString::number(value, 16).rightJustified(4, '0').insert(2, ' ');
|
case ColumnHex: return QString::number(value, 16).rightJustified(4, '0').insert(2, ' ');
|
||||||
case ColumnBinary: return QString::number(value, 2) .rightJustified(16, '0').insert(8, ' ');
|
case ColumnBinary: return QString::number(value, 2) .rightJustified(16, '0').insert(8, ' ');
|
||||||
case ColumnAscii: return QString{QChar{(value&0xFF00)>>8}} + QChar{value&0x00FF};
|
case ColumnAscii: return QString{QChar{(value&0xFF00)>>8}} + QChar{value&0x00FF};
|
||||||
|
case ColumnFloat32: return hasNext ? QString::number(valueAsFloat32,'f'): "";
|
||||||
}
|
}
|
||||||
__builtin_unreachable();
|
__builtin_unreachable();
|
||||||
break;
|
break;
|
||||||
@ -74,6 +87,7 @@ QVariant ModbusTableModel::data(const QModelIndex &index, int role) const
|
|||||||
case ColumnHex:
|
case ColumnHex:
|
||||||
case ColumnBinary:
|
case ColumnBinary:
|
||||||
case ColumnAscii:
|
case ColumnAscii:
|
||||||
|
case ColumnFloat32:
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
__builtin_unreachable();
|
__builtin_unreachable();
|
||||||
@ -101,6 +115,7 @@ QVariant ModbusTableModel::headerData(int section, Qt::Orientation orientation,
|
|||||||
case ColumnHex: return tr("Hex");
|
case ColumnHex: return tr("Hex");
|
||||||
case ColumnBinary: return tr("Binary");
|
case ColumnBinary: return tr("Binary");
|
||||||
case ColumnAscii: return tr("Ascii");
|
case ColumnAscii: return tr("Ascii");
|
||||||
|
case ColumnFloat32: return tr("Float32");
|
||||||
}
|
}
|
||||||
__builtin_unreachable();
|
__builtin_unreachable();
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user