Skip to content

Commit

Permalink
Merge table columns
Browse files Browse the repository at this point in the history
  • Loading branch information
adrianscheit committed Feb 5, 2025
1 parent f22b087 commit b00b867
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
3 changes: 1 addition & 2 deletions pages/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@ <h3>Sniffer</h3>
<th>Slave address</th>
<th>Function</th>
<th>Data length</th>
<th>From master to slave</th>
<th>From slave to master</th>
<th>Data</th>
</tr>
</thead>
<tbody></tbody>
Expand Down
4 changes: 2 additions & 2 deletions src/data-field.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ class AddressQuantity {

class Booleans {
static readonly bitsInByte: number[] = [0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01];
readonly onOff: boolean[];
readonly booleans: boolean[];

constructor(data: number[]) {
if (data[0] !== data.length - 1) {
throw new Error(`Invalid data format for Booleans!`);
}
this.onOff = data.slice(1).flatMap((byte) => Booleans.bitsInByte.map((bit) => !!(bit & byte)));
this.booleans = data.slice(1).flatMap((byte) => Booleans.bitsInByte.map((bit) => !!(bit & byte)));
}
}

Expand Down
19 changes: 13 additions & 6 deletions src/dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,21 @@ export const insertFrameRow = (frame: Frame, className: '' | 'send' = ''): void
`${frame.functionCode} ${getFunctionCodeDescription(frame.functionCode)}`,
`${frame.data.length}`,
].map((it) => new TableDataColumn(it, className));
if (frame.isNoValidDataFormat()) {
[frame.fromMasterToSlaveError, frame.fromSlaveToMasterError]
.forEach((it) => columns.push(new TableDataColumn(`${it} ${getBytesAsHex(frame.data)}`, 'error')));

if (frame.isUnknownFrame()) {
columns.push(new TableDataColumn(`Unknown frame: ${getBytesAsHex(frame.data)}`, 'error'));
} else if (frame.isNoValidDataFormat()) {
columns.push(new TableDataColumn(`This frame format does not fit to the function:
fromMasterToSlaveError=${frame.fromMasterToSlaveError}
fromSlaveToMasterError=${frame.fromSlaveToMasterError}
, for: ${getBytesAsHex(frame.data)}`, 'error'));
} else {
[frame.fromMasterToSlave, frame.fromSlaveToMaster]
.forEach((it) => columns.push(new TableDataColumn(JSON.stringify(it, undefined, 2))));
columns.push(new TableDataColumn(
JSON.stringify(frame.fromMasterToSlave) +
JSON.stringify(frame.fromSlaveToMaster)
));
}

insertSniffedRow(columns);
};
export const insertErrorRow = (errorMessage: string): void => {
Expand All @@ -77,7 +85,6 @@ export const insertErrorRow = (errorMessage: string): void => {
``,
``,
``,
``,
errorMessage,
].map((it) => new TableDataColumn(it, 'error')));
};
Expand Down
4 changes: 4 additions & 0 deletions src/frame.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ export class Frame {
return !!this.fromMasterToSlaveError && !!this.fromSlaveToMasterError;
}

isUnknownFrame(): boolean {
return !this.isNoValidDataFormat() && !this.fromMasterToSlave && !this.fromSlaveToMaster;
}

protected getError(e: any): string {
return `${e.message}`;
}
Expand Down
1 change: 0 additions & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ document.querySelector('form[name=send]')!.addEventListener('submit', event => {
bytes.push(parseInt(data.substring(i, i + 2), 16));
}
const frameBytes = new Uint8Array([formData.slaveAddress, formData.functionCode, ...bytes]);
console.log(formData, frameBytes);
insertFrameRow(new Frame(Array.from(frameBytes)), 'send');
});

Expand Down

0 comments on commit b00b867

Please sign in to comment.