Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * T X _ D A T A -- Writes n bytes of data to communication device.
- */
- /*
- * Call with: k = pointer to Kermit struct. p = pointer to data to
- * transmit. n = length. Returns: X_OK on success. X_ERROR on failure to
- * write - i/o error.
- */
- int
- tx_data (struct k_data *k, UCHAR * p, int n)
- {
- int x;
- int i;
- int max = 10; /* Loop breaker */
- long usecs;
- UCHAR * p1;
- debug (DB_LOG, "TX_DATA write n=", 0, n);
- usleep (k->send_pause_us);
- #if SIMULATED_RTT > 0
- sleep (SIMULATED_RTT);
- #endif
- printf("TX_DATA write n=%d\n",n);
- for(i=0;i<n;i++){
- printf("_(%c)_",*(p+i));
- }
- while (n > 0)
- { /* Keep trying till done */
- printf("\nretrying tx_data x=%d n=%d\n", x, n);
- for(i=0;i<n;i++){
- x = write (ttyfd, (p+i), 1);
- printf("%d]_%2.0x(%c)_\n",i,*(p),*(p));
- usleep (1000000);
- n -= x;
- p += x;
- }
- printf("end\n");
- //x = write (ttyfd, p, n);
- max--;
- debug (DB_LOG, "TX_DATA write x=", 0, x);
- if (x == -1 && max > 0)
- {
- usecs = k->s_maxlen * (10000000L / k->baud);
- debug (DB_LOG, "TX_DATA sleeping usecs", 0, usecs);
- usleep (usecs);
- continue;
- }
- if (x < 0 || max < 1) /* Errors are fatal */
- {
- debug (DB_LOG, "TX_DATA X_ERROR, max", 0, max);
- return (X_ERROR);
- }
- //n -= x;
- //p += x;
- }
- return (X_OK); /* Success */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement