パソコンからの信号をRS485に変換する中継器のプログラムです。
Dependencies: arrc_mbed
Fork of USB2RS485 by
main.cpp@0:e84e65778a06, 2021-03-23 (annotated)
- Committer:
- TanakaRobo
- Date:
- Tue Mar 23 09:09:27 2021 +0000
- Revision:
- 0:e84e65778a06
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TanakaRobo | 0:e84e65778a06 | 1 | #include <mbed.h> |
TanakaRobo | 0:e84e65778a06 | 2 | #include <scrp_slave.hpp> |
TanakaRobo | 0:e84e65778a06 | 3 | |
TanakaRobo | 0:e84e65778a06 | 4 | //パソコンのScrpMonitorから送った信号をそのままRS485で送信します。 |
TanakaRobo | 0:e84e65778a06 | 5 | //USBで受信したデータをMILLポートから出力します。 |
TanakaRobo | 0:e84e65778a06 | 6 | //cmd 0,253,254は使えません。 |
TanakaRobo | 0:e84e65778a06 | 7 | |
TanakaRobo | 0:e84e65778a06 | 8 | ScrpSlave slave(PA_9 ,PA_10,PA_12,SERIAL_TX,SERIAL_RX,255);//全受信モード |
TanakaRobo | 0:e84e65778a06 | 9 | |
TanakaRobo | 0:e84e65778a06 | 10 | bool rs485(int rx_data, int &tx_data){ |
TanakaRobo | 0:e84e65778a06 | 11 | if(slave.receivePort() == 1){//USBから受信した時にMILLポートから送信する。 |
TanakaRobo | 0:e84e65778a06 | 12 | slave.send1(slave.receiveId(), slave.receiveCmd(), rx_data); |
TanakaRobo | 0:e84e65778a06 | 13 | } |
TanakaRobo | 0:e84e65778a06 | 14 | return false; |
TanakaRobo | 0:e84e65778a06 | 15 | } |
TanakaRobo | 0:e84e65778a06 | 16 | |
TanakaRobo | 0:e84e65778a06 | 17 | void response(uint8_t id,uint8_t cmd, int16_t data){ |
TanakaRobo | 0:e84e65778a06 | 18 | slave.send2(id, cmd, data, false);//返ってきたレスポンスをUSBに送信する。 |
TanakaRobo | 0:e84e65778a06 | 19 | } |
TanakaRobo | 0:e84e65778a06 | 20 | |
TanakaRobo | 0:e84e65778a06 | 21 | int main(){ |
TanakaRobo | 0:e84e65778a06 | 22 | for(int i = 0;i < 256;i++){ |
TanakaRobo | 0:e84e65778a06 | 23 | slave.addCMD(i, rs485); |
TanakaRobo | 0:e84e65778a06 | 24 | } |
TanakaRobo | 0:e84e65778a06 | 25 | slave.attachResponse(response); |
TanakaRobo | 0:e84e65778a06 | 26 | while(true); |
TanakaRobo | 0:e84e65778a06 | 27 | } |