インスタンスメソッドの追加もブラウザ上で行う。SerialPortMorphのブラウザのを開いて、"instance" ボタンがある。これは「インスタンス」の属性や振る舞いを書いていくときのモードである。
メソッドの整理整頓のために、カテゴリinitilization, accessing, variable creation を作った。
内容:インスタンスを初期化するメソッドが入っている。
メソッド名:initialize
内容:インスタンス変数を扱うメソッドが入っている。
メソッド名:
portNumber, portNumber:, getPortNumber, setPortNumber:
serialPort, serialPort:, getSerialPort, setSerialPort:
receivedData, receivedData:, getReceivedData, setReceivedData:
内容:シリアルポートとマイコンに関係するメソッドが入っている。Serial5.morphのコマンドと内容がほとんど同じ。
メソッド名:openPort:, closePort, send:, wait:, receive
メソッドの具体的な内容は次のようになる。
initialize super initialize. portNumber := -1. receivedData := 0変数は定義した後、初期化する必要がある(初期化しないと nil のままである)。初期化を自動化するため、initialize というメソッドを定義しておくと、自動的にそれが適切なタイミングで呼ばれるようになっている。portNumber は開いているシリアルポートの番号を示すので、まだ何もしていない状態ではportNumber を -1 にする。receivedData はマイコンから受け取ったデータを示すので、初期値を 0 にする。
インスタンス変数portNumberを扱うには、次のようなメソッドがなければならない。
portNumberの値を返すメソッド
portNumber ^portNumberportNumberに値を代入するメソッド
portNumber: t portNumber := tportNumberの値を読むメソッド
getPortNumber ^portNumberportNumberの値を設定するメソッド
setPortNumber:t portNumber := pt
同じようにインすタン変数serialPort, ReceivedDataに対しても同じようばメソッドを定義する必要がある。
openPort:, closePort, send:, wait:, receive これらのメソッドの内容はSerial5.morphとほとんど同じである。