예제 #1
0
/*-----------------------------------------------------------------------------------*/
u8_t
slipdev_send(void)
{
  u16_t i;
  u8_t *ptr;
  u8_t c;

  slipdev_char_put(SLIP_END);

  ptr = &uip_buf[UIP_LLH_LEN];
  for(i = 0; i < uip_len; ++i) {
    if(i == UIP_TCPIP_HLEN) {
      ptr = (char *)uip_appdata;
    }
    c = *ptr++;
    switch(c) {
    case SLIP_END:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_END);
      break;
    case SLIP_ESC:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_ESC);
      break;
    default:
      slipdev_char_put(c);
      break;
    }
  }
  slipdev_char_put(SLIP_END);

  return UIP_FW_OK;
}
예제 #2
0
/*-----------------------------------------------------------------------------------*/
void
slipdev_send(void)
{
  u16_t i;
  u8_t *ptr;
  u8_t c;

  slipdev_char_put(SLIP_END);

  ptr = uip_buf;
  for(i = 0; i < uip_len; ++i) {
    if(i == 40) {
      ptr = (u8_t *)uip_appdata;
    }
    c = *ptr++;
    switch(c) {
    case SLIP_END:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_END);
      break;
    case SLIP_ESC:
      slipdev_char_put(SLIP_ESC);
      slipdev_char_put(SLIP_ESC_ESC);
      break;
    default:
      slipdev_char_put(c);
      break;
    }
  }
  slipdev_char_put(SLIP_END);
}