/******************************************************************/

#include <iocslib.h>
#include "defines.h"
#include "rs232c.h"

/******************************************************************/

int ComOuts0(unchar *s,long otm,long itm,int acks)
/* RS-232C文字列送信（時間切れリトライなし）*/
/* s:送信文字列 , otm:送信待ち時間 , itm:ACK/NAK待ち時間 , acks:ACK待ち回数 */
/* リターン値：0=送信ｏｋ , <0=エラー */
{
int c,ret,ack=-1;
unchar sum;
unchar *ss;
	ss=s;
	do {
		if (acks>0 && (++ack)>acks) return(TRYERR);
		
		/* Send message */
		/*printsn(ss,"-->");*/
		s=ss;
		sum=0;
		do {
			c=*s++;
			ret=ComOutWait(otm);
			if (ret==2) return(BERR);
			if (ret) return(OERR);
			OUT232C(c);
			sum+=c;
		} while (c!=0);
		
		/* Send check sum */
		ret=ComOutWait(otm);
		if (ret==2) return(BERR);
		if (ret) return(OERR);
		OUT232C(sum);
		
		/* Wait ACK */
		ret=ComInWait(itm);
		if (ret==2) return(BERR);
		if (ret) return(IERR);
	} while (INP232C()!=ACK && acks>=0); /* ACK出ない時はリトライ */
	return(0);
}

/******************************************************************/
