MDX-15,20の制御用library

Committer:
suupen
Date:
Sun Oct 16 12:42:34 2016 +0000
Revision:
2:8446eb1774c4
Parent:
1:1751fee99a0d
Child:
3:3bf2936b8d9b
?????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 1:1751fee99a0d 1 #include "MDX20.h"
suupen 1:1751fee99a0d 2 #include "BufferedSerial.h"
suupen 1:1751fee99a0d 3
suupen 1:1751fee99a0d 4
suupen 1:1751fee99a0d 5 MDX20::MDX20(PinName tx, PinName rx, PinName cts) : _serial(tx, rx), _cts(cts, PullUp)
suupen 1:1751fee99a0d 6 {
suupen 1:1751fee99a0d 7
suupen 1:1751fee99a0d 8 _serial.baud(9600);
suupen 1:1751fee99a0d 9 _serial.format(8,Serial::None,1);
suupen 1:1751fee99a0d 10 }
suupen 1:1751fee99a0d 11
suupen 1:1751fee99a0d 12 MDX20::~MDX20()
suupen 1:1751fee99a0d 13 {
suupen 1:1751fee99a0d 14 }
suupen 1:1751fee99a0d 15
suupen 2:8446eb1774c4 16 void MDX20::clearPositon(void)
suupen 2:8446eb1774c4 17 {
suupen 2:8446eb1774c4 18 D_position[Z_x] = 0;
suupen 2:8446eb1774c4 19 D_position[Z_y] = 0;
suupen 2:8446eb1774c4 20 D_position[Z_z] = 0;
suupen 2:8446eb1774c4 21 }
suupen 2:8446eb1774c4 22 void MDX20::answerPositon(int16_t *position)
suupen 2:8446eb1774c4 23 {
suupen 2:8446eb1774c4 24 *(position + Z_x) = D_position[Z_x];
suupen 2:8446eb1774c4 25 *(position + Z_y) = D_position[Z_y];
suupen 2:8446eb1774c4 26 *(position + Z_z) = D_position[Z_z];
suupen 2:8446eb1774c4 27
suupen 2:8446eb1774c4 28 }
suupen 2:8446eb1774c4 29
suupen 2:8446eb1774c4 30 void MDX20::integralPosition(char *data)
suupen 2:8446eb1774c4 31 {
suupen 2:8446eb1774c4 32
suupen 2:8446eb1774c4 33 }
suupen 2:8446eb1774c4 34
suupen 1:1751fee99a0d 35 /**
suupen 1:1751fee99a0d 36 * MDX-15/20へのデータ送信
suupen 1:1751fee99a0d 37 * @@para *data : データ一行の先頭アドレス
suupen 1:1751fee99a0d 38 * @@para uint8_t : 0:送信キャンセル 1:送信完了
suupen 1:1751fee99a0d 39 */
suupen 1:1751fee99a0d 40 uint8_t MDX20::sendData(char* data)
suupen 1:1751fee99a0d 41 {
suupen 1:1751fee99a0d 42 uint8_t ans = 0; // 0:送信キャンセル 1:送信完了
suupen 1:1751fee99a0d 43
suupen 2:8446eb1774c4 44 while(_cts != 0) {}
suupen 2:8446eb1774c4 45 wait(0.1); // このwait timeがないとMDX-20からのwait指示を読み飛ばす
suupen 2:8446eb1774c4 46 // printf("%s\r\n",data);
suupen 2:8446eb1774c4 47 _serial.printf("%s\r\n",data);
suupen 2:8446eb1774c4 48 ans = 1;
suupen 2:8446eb1774c4 49
suupen 1:1751fee99a0d 50 return (ans);
suupen 1:1751fee99a0d 51 }
suupen 1:1751fee99a0d 52
suupen 1:1751fee99a0d 53 int MDX20::putc(int c)
suupen 1:1751fee99a0d 54 {
suupen 1:1751fee99a0d 55 _serial.putc(c);
suupen 1:1751fee99a0d 56 return c;
suupen 1:1751fee99a0d 57 }
suupen 1:1751fee99a0d 58
suupen 2:8446eb1774c4 59 uint8_t MDX20::initial(void)
suupen 2:8446eb1774c4 60 {
suupen 2:8446eb1774c4 61 uint8_t ans;
suupen 2:8446eb1774c4 62 ans &= sendData(";;^IN");
suupen 2:8446eb1774c4 63 ans &= sendData("!MC0");
suupen 2:8446eb1774c4 64 ans &= sendData("^PA");
suupen 2:8446eb1774c4 65 ans &= sendData("Z0,0,0");
suupen 2:8446eb1774c4 66 clearPositon();
suupen 2:8446eb1774c4 67 return (ans);
suupen 2:8446eb1774c4 68 }
suupen 2:8446eb1774c4 69
suupen 2:8446eb1774c4 70 uint8_t MDX20::final(void)
suupen 2:8446eb1774c4 71 {
suupen 2:8446eb1774c4 72 uint8_t ans;
suupen 2:8446eb1774c4 73 ans &= sendData("!MC0");
suupen 2:8446eb1774c4 74 ans &= sendData("^PA");
suupen 2:8446eb1774c4 75 ans &= sendData("Z0,0,0");
suupen 2:8446eb1774c4 76 clearPositon();
suupen 2:8446eb1774c4 77 ans &= sendData("^IN");
suupen 2:8446eb1774c4 78 return (ans);
suupen 2:8446eb1774c4 79 }
suupen 2:8446eb1774c4 80
suupen 2:8446eb1774c4 81 uint8_t MDX20::zeroSetting(void)
suupen 2:8446eb1774c4 82 {
suupen 2:8446eb1774c4 83 uint8_t ans;
suupen 2:8446eb1774c4 84
suupen 2:8446eb1774c4 85 ans &= sendData("!X00");
suupen 2:8446eb1774c4 86 ans &= sendData("!Y00");
suupen 2:8446eb1774c4 87 ans &= sendData("!Z00");
suupen 2:8446eb1774c4 88 clearPositon();
suupen 2:8446eb1774c4 89 return (ans);
suupen 2:8446eb1774c4 90 }
suupen 2:8446eb1774c4 91 uint8_t MDX20::XYZMove(int16_t x, int16_t y, int16_t z)
suupen 2:8446eb1774c4 92 {
suupen 2:8446eb1774c4 93 uint8_t ans;
suupen 2:8446eb1774c4 94 char buffer[100];
suupen 2:8446eb1774c4 95
suupen 2:8446eb1774c4 96 ans &= sendData("!MC0");
suupen 2:8446eb1774c4 97 ans &= sendData("^PR");
suupen 2:8446eb1774c4 98 sprintf(buffer, "Z%05d,%05d,%05d",x, y, z);
suupen 2:8446eb1774c4 99 ans &= sendData(buffer);
suupen 2:8446eb1774c4 100
suupen 2:8446eb1774c4 101 return (ans);
suupen 2:8446eb1774c4 102 }