Skip to content

Commit

Permalink
split typedef.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
AmyangXYZ committed Feb 2, 2024
1 parent f5b8a43 commit 55a039c
Show file tree
Hide file tree
Showing 18 changed files with 174 additions and 154 deletions.
4 changes: 2 additions & 2 deletions src/core/network.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ export class NetworkHub {
}

connect(v1: number, v2: number) {
const node1 = this.Nodes.value.find(n => n.id === v1)
const node2 = this.Nodes.value.find(n => n.id === v2)
const node1 = this.Nodes.value.find((n) => n.id === v1)
const node2 = this.Nodes.value.find((n) => n.id === v2)

if (!node1 || !node2) {
console.error('Connection error: node(s) not found.')
Expand Down
2 changes: 1 addition & 1 deletion src/core/nodes/end_system.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from '../node'
import { Node } from './node'
import {
PKT_TYPE,
type Message,
Expand Down
2 changes: 1 addition & 1 deletion src/core/nodes/five_g_gnb.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from '../node'
import { Node } from './node'
import {
PKT_TYPE,
type Message,
Expand Down
2 changes: 1 addition & 1 deletion src/core/nodes/five_g_ue.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from '../node'
import { Node } from './node'
import {
PKT_TYPE,
type Message,
Expand Down
4 changes: 2 additions & 2 deletions src/core/node.ts → src/core/nodes/node.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { type Message, type MsgHandler, type Packet, type PktHandler } from './typedefs'
import { type Message, type MsgHandler, type Packet, type PktHandler, type RoutingTable } from '../typedefs'

export class Node {
id: number = 0
Expand All @@ -8,7 +8,7 @@ export class Node {
rx_cnt: number = 0
queue: Packet[] = []
ASN: number = 0
routingTable: { [dst: number]: number } = {}
routingTable: RoutingTable = {}
msgHandlers: { [type: number]: MsgHandler } = {}
pktHandlers: { [type: number]: PktHandler } = {}

Expand Down
2 changes: 1 addition & 1 deletion src/core/nodes/tsch.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from '../node'
import { Node } from './node'
import {
PKT_TYPE,
type Message,
Expand Down
2 changes: 1 addition & 1 deletion src/core/nodes/tsn.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from '../node'
import { Node } from './node'
import {
PKT_TYPE,
type Message,
Expand Down
142 changes: 0 additions & 142 deletions src/core/typedefs.ts

This file was deleted.

6 changes: 6 additions & 0 deletions src/core/typedefs/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export interface Config {
seed: number
num_nodes: number
grid_size: number
tx_range: number
}
10 changes: 10 additions & 0 deletions src/core/typedefs/flow.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export interface Flow {
id: number
e2e_src: number
e2e_dst: number
deadline: number
period: number
workload: number
path: number[] // id's of all nodes in path
editing: boolean // whether or not the user can edit in FlowsPanel
}
14 changes: 14 additions & 0 deletions src/core/typedefs/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export * from './config'
export * from './node'
export * from './message'
export * from './packet'
export * from './link'
export * from './routing'
export * from './flow'
export * from './schedule'

export const PROTOCOL_TYPE = <{ [name: string]: string }>{
TSCH: '802.15.4',
TSN: '802.1',
FIVE_G: '5G NR'
}
12 changes: 12 additions & 0 deletions src/core/typedefs/link.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export interface Link {
// undirected for visualization
uid: number // cantor pairing, uid=0.5*(v1+v2)*(v1+v2+1)+v2
v1: number
v2: number
type: number
}

export enum LINK_TYPE {
WIRED,
WIRELESS
}
36 changes: 36 additions & 0 deletions src/core/typedefs/message.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import type { Flow } from './flow'

// Message is used for direct communication (debug, cmd, stats) between nodes and controller
export interface Message {
type: number
id: number // node id
payload: any
}

export type MsgHandler = (msg: Message) => void

export enum MSG_TYPE {
INIT,
ASN,
DONE, // finished all activities of the current slot
ROUTING,
FLOW, // install periodic flow
STAT
}

export interface InitMsgPayload {
id: number
neighbors: number[]
}

export interface ASNMsgPayload {
asn: number
}

export interface RoutingMsgPayload {
[dst: number]: number
}

export interface FlowMsgPayload {
flows: Flow[]
}
37 changes: 37 additions & 0 deletions src/core/typedefs/node.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
export enum NODE_TYPE {
TSCH,
TSN,
FIVE_G_GNB,
FIVE_G_UE,
END_SYSTEM_SERVER = 11,
END_SYSTEM_SENSOR_CAMERA,
END_SYSTEM_SENSOR_TEMP,
END_SYSTEM_SENSOR_PRESSURE,
END_SYSTEM_SENSOR_HUMIDITY,
END_SYSTEM_ACTUATOR_ROBOTIC_ARM,
END_SYSTEM_ACTUATOR_PNEUMATIC
}

export const NODE_TYPE_DISPLAY_NAME = <{ [name: string]: string }>{
[NODE_TYPE.TSCH]: 'TSCH Node',
[NODE_TYPE.TSN]: 'TSN Bridge',
[NODE_TYPE.FIVE_G_GNB]: '5G gNB',
[NODE_TYPE.FIVE_G_UE]: '5G UE',
[NODE_TYPE.END_SYSTEM_SERVER]: 'Edge Server',
[NODE_TYPE.END_SYSTEM_SENSOR_CAMERA]: 'Camera',
[NODE_TYPE.END_SYSTEM_SENSOR_TEMP]: 'Temperature Sensor',
[NODE_TYPE.END_SYSTEM_SENSOR_PRESSURE]: 'Pressure Sensor',
[NODE_TYPE.END_SYSTEM_SENSOR_HUMIDITY]: 'Humidity Sensor',
[NODE_TYPE.END_SYSTEM_ACTUATOR_ROBOTIC_ARM]: 'Robotic Arm',
[NODE_TYPE.END_SYSTEM_ACTUATOR_PNEUMATIC]: 'Pneumatic Actuator'
}

export interface Node {
id: number
type: number
pos: [number, number]
neighbors: number[]
tx_cnt: number
rx_cnt: number
w: Worker | undefined
}
23 changes: 23 additions & 0 deletions src/core/typedefs/packet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Packet is transfered among nodes, at data-link layer
export interface Packet {
uid: number
protocol: string
type: number
e2e_src: number
e2e_dst: number
mac_src: number
mac_dst: number
asn: number
len: number
payload: any

// for display on packet sniffer
id: number
children: any
}

export type PktHandler = (pkt: Packet) => void

export enum PKT_TYPE {
DATA
}
11 changes: 11 additions & 0 deletions src/core/typedefs/routing.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export interface RoutingGraph {
[id: number]: number[]
}

export interface RoutingTable {
[id: number]: number
}

export enum ADDR {
BROADCAST = -1
}
15 changes: 15 additions & 0 deletions src/core/typedefs/schedule.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// the global network schedule
export interface Cell {
slot: number
type: number
mac_src: number
mac_dst: number
flow_id: number
flow_k: number
flow_h: number
}

export enum CELL_TYPE {
DATA,
MGMT
}
4 changes: 1 addition & 3 deletions src/views/HomeView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ import EventLogs from '@/components/EventLogs.vue'
<FlowsPanelVue style="position: absolute; bottom: 480px; right: 16px; width: 380px; z-index: 999" />
<PacketSniffer style="position: absolute; bottom: 16px; right: 16px; width: 380px; z-index: 999" />
<transition name="el-zoom-in-center">
<ScheduleTable
style="position: absolute; left: 16px; top: 48px; min-width: 336px; width: 32%; z-index: 999"
/>
<ScheduleTable style="position: absolute; left: 16px; top: 48px; min-width: 336px; width: 32%; z-index: 999" />
</transition>
</template>

0 comments on commit 55a039c

Please sign in to comment.