模擬微波通訊簡易小專案 多型整合

2021-10-05 05:46:34 字數 2007 閱讀 7909

橙色框出部分為控制台輸入, 模擬心跳包反饋的目前活動的儀器. 可見若兩台機器中的331工作中收到331心跳包反饋, 則繼續工作, 收到其他心跳包反饋則停止工作, 切換到335工作. 335同理.

設計類圖:

設計思路: odu335繼承已有儀器odu的方法與字段( 變數 ), 極大簡化公升級更新所需編碼量. override強調重寫父類方法獲取名字(string name() )及獲取心跳包反饋( bool heartbeat() ).

父類:odu.h

#pragma once

#include

using namespace std;

/*實現:發射頻率(txfreq-frequence),

接收頻率(rxfreq),

發射功率(txpower-transmit power),

的讀取與設定;

接收電平(rxl-receive level)

的讀取;

心跳包(heartbeat)

正在工作型別與工作狀態的獲取;

獲取裝置名稱(name)與裝置型別(type)

初始化:

txfre = 34400;

rxfre = 31100;

txpower = 20;

rxl = 0;

type = odu_type::odu_type_331;

*/enum class odu_type

;#define odu_type_331_flag "331"

#define odu_type_335_flag "335"

class odu

;

odu.cpp

#include

"odu.h"

odu:

:odu

(odu_type odutype)

int odu:

:gettxfreq()

void odu:

:settxfreq

(int txfreq)

//只有繼承的才可以加冒號寫rxfreq(rxfreq)

int odu:

:getrxfreq()

void odu:

:setrxfreq

(int rxfreq)

int odu:

:gettxpower()

void odu:

:settxpower

(int txpower)

int odu:

:getrxlevel()

bool odu:

:heartbeat()

//else if (odu_type_335_flag == response)//這個在odu335中改寫即可

//return false;

}string odu:

:name()

子類:

odu335.h

#pragma once

#include

"odu.h"

class odu335 : public odu

;

odu335.cpp

#include

"odu335.h"

odu335:

:odu335

(odu_type odutype)

:odu

(odutype)

bool odu335:

:heartbeat()

return false;

}string odu335:

:name()

微波通訊技術

一 微波通訊的發展 微波的頻帶很寬,數量級在 109 1012hz 之間,比從長波到短波的頻帶 0 10hz 要拓寬一千赫,因而對訊號的容量很大。由於電台的數量龐大,無線電中的短波十分擁擠,相互間的干擾較為嚴重,解決這一困難的唯方法是向微波段發展。目前電視廣播的 vhf波段的頻率是 30 300mh...

雙機模擬通訊

基本知識 1 資料緩衝器 sbuf 接受或傳送的資料都要先送到 sbuf 快取。有兩個,乙個快取,另乙個接受,用同一直接位址 99h,傳送時用指令將資料送到 sbuf 即可啟動傳送 接收時用指令將 sbuf 中接收到的資料取出。2 序列控制暫存器 pcon scon 用於序列通訊方式的選擇,收發控制...

模擬通訊和數字通訊

無論何種通訊系統,目的都是要完成一點到另一點的資訊傳遞,這樣可以吧通訊系統概括為乙個統一的模型,如圖1.圖1信源 信源指發出資訊的資訊源,即資訊的發出者。變換器 變換器的功能是將信源發出的資訊變換成適合在通道上傳輸的訊號。通道 通道是訊號傳輸的媒介,可分為有線通道和無線通道 空氣 雜訊源 在實際通訊...