91美女视频-亚洲免费观看视频-欧美a∨-久热在线视频-日韩黄网站-成av人片在线观看www-久操综合-超碰av在线播放-性欧美欧美巨大69-婷婷二区-av男人的天堂网-中文字幕一区在线播放-玖草在线观看-国产网址在线观看-免费在线不卡av

moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
樓主  發(fā)表于: 2017-04-24 19:39
先發(fā) FX1S數(shù)據(jù)讀報文,PLC接受到信號準備數(shù)據(jù)放到緩沖區(qū)。然后在用ReadFile從緩沖區(qū)接受一次報文。。。 30 MS左右
這時間正常嗎?還是說我設(shè)置有問題?總感覺這樣時間有點長啊。【工控菜鳥一個,放下代碼求老鳥指點一二,有無能提升效率的地方。 ^_^】

復(fù)制代碼
  1. #include <Windows.h>
  2. #include "codecb.h"
  3. #include "invariant.h"
  4. #include <assert.h>
  5. #include <tchar.h>
  6. #include "timing.h"
  7. extern HANDLE commport;
  8. _CRT_ALIGN (32)
  9. char ASCII_tonums_RVlut[0xFFFF+1];
  10. void build_ASC_RVlut (void)
  11. {
  12.   uint32_t ii;
  13.   static BOOL __init = FALSE;
  14.   if ( __init == TRUE) return;
  15.        __init  = TRUE;
  16.   ZeroMemory (ASCII_tonums_RVlut, sizeof (ASCII_tonums_RVlut));
  17.   for (ii = 0; ii != 0x10000; ii++) {
  18.    uint16_t lo = ii & 0x00FF;
  19.    uint16_t hi = ii >> 8;
  20.    if ( (( lo >= '0' && lo <= '9') || ( lo >= 'A' && lo <= 'F'))
  21.     && (( hi >= '0' && hi <= '9') || ( hi >= 'A' && hi <= 'F')))
  22.    {
  23.     if ( ( hi >= '0' && hi <= '9'))
  24.       ASCII_tonums_RVlut[ii] = hi - '0';
  25.     else if ( ( hi >= 'A' && hi <= 'F'))
  26.       ASCII_tonums_RVlut[ii] = hi - 'A' + 10;
  27.     if ( ( lo >= '0' && lo <= '9'))
  28.       ASCII_tonums_RVlut[ii] |= ( ( (unsigned) (lo - '0')) << 4);
  29.     else if ( ( lo >= 'A' && lo <= 'F'))
  30.       ASCII_tonums_RVlut[ii] |= ( ( (unsigned) (lo - 'A' + 10)) << 4);
  31.    }
  32.   }
  33. }
  34. BOOL comm_init (int comm_index)
  35. {
  36.   DCB dcbs;
  37.   COMMTIMEOUTS ct;  
  38.   BOOL success_io_;
  39.   TCHAR comm_buf0[256];
  40.   _stprintf (& comm_buf0[0], _T ("//./COM%i"), comm_index);
  41.   comm_close ();
  42.   commport = CreateFile ( & comm_buf0[0], GENERIC_READ | GENERIC_WRITE, 0,
  43.               NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
  44.   success_io_ = GetCommState (commport, & dcbs);
  45.   assert (success_io_ != FALSE);
  46.   dcbs.BaudRate = CBR_9600;
  47.   dcbs.fParity  = TRUE;
  48.   dcbs.Parity   = EVENPARITY;
  49.   dcbs.StopBits = ONESTOPBIT;
  50.   dcbs.ByteSize = 7;
  51.   dcbs.fDtrControl = DTR_CONTROL_DISABLE;
  52.   dcbs.fRtsControl = RTS_CONTROL_DISABLE;
  53.     
  54.   success_io_ = SetupComm (commport, 2048, 2048);
  55.   assert (success_io_ != FALSE);
  56.   success_io_ = SetCommState (commport, & dcbs);
  57.   assert (success_io_ != FALSE);
  58.   // SetTimeOut.
  59.   ct.ReadIntervalTimeout = 0x0000FFFF;
  60.   ct.ReadTotalTimeoutMultiplier = 0x0000FFFF;
  61.   ct.ReadTotalTimeoutConstant = 0xFFFFFFFE;
  62.   ct.WriteTotalTimeoutMultiplier = 0x0000FFFF;
  63.   ct.WriteTotalTimeoutConstant =   0xFFFFFFFE;  
  64.   
  65.   success_io_ = SetCommTimeouts (commport, &ct);  
  66.   assert (success_io_ != FALSE);
  67.   success_io_ = SetupComm (commport, 2400, 2400);  
  68.   assert (success_io_ != FALSE);
  69.   success_io_ = PurgeComm (commport, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);
  70.   assert (success_io_ != FALSE);
  71.   build_ASC_RVlut ();
  72.   
  73.   timing_init48 ();
  74.   INIT_WSCCRSEC__;
  75. }
  76. void comm_close (void)
  77. {
  78.   if (commport != INVALID_HANDLE_VALUE)
  79.   {
  80.     PurgeComm (commport, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);
  81.     CloseHandle (commport);
  82.   }
  83.   commport = INVALID_HANDLE_VALUE;
  84. }
  85. int8_t readOYB (int16_t e_addr) {
  86.   struct read_section2 rdsec;
  87.   char varsbuf[128];
  88.   int isr = 0;
  89.   int tm_numbs = 0;
  90.   uint16_t rv_numbs = 0;
  91.   BOOL io_success_;
  92.   DWORD rv_numbs2 = 0;
  93.   /* prepare Output-register read_section. */
  94.   isr = fx1s_makersecb ( & rdsec, FX1S_REGISTER_FIELD_Y_OUT,
  95.         & rv_numbs, FX1S_VERSION_30MR, e_addr);
  96.   assert (isr == FX1S_OK);
  97.   /* write Output-register read-code. */
  98.   io_success_ = WriteFile (commport, & rdsec,
  99.      sizeof(struct read_section), & tm_numbs, NULL);
  100.   assert (io_success_ != FALSE);
  101.   assert (tm_numbs == sizeof(struct read_section));
  102.   io_success_ = ReadFile  (commport, & varsbuf[0], rv_numbs, & rv_numbs2, NULL);
  103.   assert (io_success_ != FALSE);
  104.   assert (rv_numbs2 == rv_numbs);
  105.   assert (varsbuf[0] == SECTION_LINK_STX);
  106.   return ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  107. }
  108. void setOYB (int16_t e_addr, int8_t val) {
  109.   char varsbuf[128];
  110.   int isr = 0;
  111.   int tm_numbs = 0;
  112.   uint16_t rv_numbs = 0;
  113.   BOOL io_success_;
  114.   DWORD rv_numbs2 = 0;
  115.   /* prepare Output-register write_section. */
  116.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_Y_OUT,
  117.               & rv_numbs, FX1S_VERSION_30MR, e_addr);
  118.   assert (isr == FX1S_OK);
  119.   /* write Output-register write-code. */
  120.   io_success_ = WriteFile (commport, & varsbuf[0],
  121.      rv_numbs, & tm_numbs, NULL);
  122.   assert (io_success_ != FALSE);
  123.   assert (rv_numbs == tm_numbs);
  124.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  125.   assert (io_success_ != FALSE);
  126.   assert (rv_numbs2 == 1);
  127.   assert (varsbuf[0] == SECTION_LINK_ACK);
  128. }
  129. static __forceinline
  130. int8_t readRELAY_M (int16_t addr) {
  131.   struct read_section2 rdsec;
  132.   char varsbuf[128];
  133.   int isr = 0;
  134.   int tm_numbs = 0;
  135.   uint16_t rv_numbs = 0;
  136.   BOOL io_success_;
  137.   DWORD rv_numbs2;
  138.   isr = fx1s_makersecb ( & rdsec, FX1S_REGISTER_FIELD_M,
  139.         & rv_numbs, FX1S_VERSION_14MR, addr);
  140.   assert (isr == FX1S_OK);
  141.   io_success_ = WriteFile (commport, & rdsec,
  142.      sizeof(struct read_section), & tm_numbs, NULL);
  143.   assert (io_success_ != FALSE);
  144.   assert (tm_numbs == sizeof(struct read_section));
  145.   io_success_ = ReadFile  (commport, & varsbuf[0], rv_numbs, & rv_numbs2, NULL);
  146.   assert (io_success_ != FALSE);
  147.   assert (rv_numbs2 == rv_numbs);
  148.   assert (varsbuf[0] == SECTION_LINK_STX);
  149.   return ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  150. }
  151. static  __forceinline
  152. void writeRELAY_M (uint16_t addr, int8_t val) {
  153.   char varsbuf[128];
  154.   int isr = 0;
  155.   int tm_numbs = 0;
  156.   uint16_t rv_numbs = 0;
  157.   BOOL io_success_;
  158.   DWORD rv_numbs2;
  159.   /* prepare Output-register write_section. */
  160.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_M,
  161.               & rv_numbs, FX1S_VERSION_14MR, addr);
  162.   assert (isr == FX1S_OK);
  163.   /* write Output-register write-code. */
  164.   io_success_ = WriteFile (commport, & varsbuf[0],
  165.      rv_numbs, & tm_numbs, NULL);
  166.   assert (io_success_ != FALSE);
  167.   assert (rv_numbs == tm_numbs);
  168.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  169.   assert (io_success_ != FALSE);
  170.   assert (rv_numbs2 == 1);
  171.   assert (varsbuf[0] == SECTION_LINK_ACK);
  172. }
  173. void plc_force_close_ (void) {
  174.   BYTE obt;
  175.     /* force close PLC [by M8037]  **/
  176.     obt = readRELAY_M (8037);
  177.     writeRELAY_M (8037, obt | 0x20);
  178. }
  179. void plc_force_open_ (void) {
  180.   BYTE obt;
  181.   /* force open PLC [by M8035/M8036/M8037]  **/
  182.   obt = readRELAY_M (8037);
  183.   obt &= ~(1 << (8037 & 7));
  184.   writeRELAY_M (8037, obt);
  185.   obt = readRELAY_M (8035);
  186.   obt |= (11 << (8035 & 7));
  187.   writeRELAY_M (8035, obt);
  188. }
  189. void plc_set_pulse235_ (uint32_t val) {
  190.   int isr = 0;
  191.   char varsbuf[128];
  192.   uint16_t rv_numbs = 0;
  193.   DWORD rv_numbs2 = 0;
  194.   DWORD rv_numbs3 = 0;
  195.   BOOL io_success_;
  196.   isr = fx1s_makewsecb (& varsbuf[0], & val, FX1S_REGISTER_FIELD_C32,
  197.               & rv_numbs, FX1S_VERSION_14MR, PULSE_ENCODER_ADDR);
  198.   assert (isr == FX1S_OK);
  199.   rv_numbs2 = rv_numbs;
  200.   io_success_ = WriteFile (commport, & varsbuf[0], rv_numbs, & rv_numbs3, NULL);
  201.   assert (io_success_ != FALSE);
  202.   assert (rv_numbs2 == rv_numbs3);
  203.   io_success_ = ReadFile  (commport, & varsbuf[0], 1, & rv_numbs2, NULL);
  204.   assert (io_success_ != FALSE);
  205.   assert (rv_numbs2 == 1);
  206.   assert (varsbuf[0] == SECTION_LINK_ACK);
  207. }
  208. uint32_t plc_get_pulse235_ (void) {
  209.   union {
  210.     char bgroup[4];
  211.     int32_t inter;
  212.   } cc_timing;
  213.   BOOL io_success_;
  214.   DWORD rv_numbs = 0;
  215.   BYTE varsbuf[128];
  216.   io_success_ = WriteFile (commport, & g_crs2_pulse235.rsc, sizeof (struct read_section), & rv_numbs, NULL);
  217.   assert (io_success_ != FALSE);
  218.   assert (rv_numbs == sizeof (struct read_section));
  219.   io_success_ = ReadFile  (commport, & varsbuf [0], g_crs2_pulse235.rsc_cnt, & rv_numbs, NULL);
  220.   assert (io_success_ != FALSE);
  221.   assert (rv_numbs == g_crs2_pulse235.rsc_cnt);
  222.   assert (varsbuf[0] == SECTION_LINK_STX);
  223.   assert (varsbuf[9] == SECTION_LINK_ETX);
  224.   cc_timing.bgroup[0] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[1]];
  225.   cc_timing.bgroup[1] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[3]];
  226.   cc_timing.bgroup[2] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[5]];
  227.   cc_timing.bgroup[3] = ASCII_tonums_RVlut[ *(uint16_t *)& varsbuf[7]];
  228.   return cc_timing.inter;
  229. }


moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
1樓  發(fā)表于: 2017-04-24 19:48
FX1S 報文編解碼
復(fù)制代碼
  1. /*-
  2. * Copyright (c) 2017 moecmks
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. *    notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. *    notice, this list of conditions and the following disclaimer in the
  12. *    documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17. * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRCMD, STRICT
  22. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24. * SUCH DAMAGE.
  25. *
  26. */
  27. #if !defined (codec_included_MOECMKS)
  28. #define codec_included_MOECMKS
  29. /*
  30. * fx1s read/write codec.
  31. * simple, each read a current register size unit memory
  32. * more information, please refer to the PLC manual and Internet resources.
  33. */
  34. #if defined (__cplusplus)  /** __cplusplus */
  35. extern "C" {
  36. #endif  /** __cplusplus */
  37. /* Portable fixed length ***/
  38. #include "stdint.h"
  39. /*
  40. * errror code
  41. */
  42. #define FX1S_RANGE 1
  43. #define FX1S_FAIL 2
  44. #define FX1S_KFAIL 3
  45. #define FX1S_UNKN 4
  46. #define FX1S_LIMIT 5
  47. #define FX1S_NAK 6
  48. #define FX1S_ACK 7
  49. #define FX1S_PARA 8
  50. #define FX1S_INCOP 9
  51. #define FX1S_OK 0
  52. /*
  53. * version control
  54. */
  55. enum FX1S_VERSION {
  56.   FX1S_VERSION_10MR = 0,
  57.   FX1S_VERSION_14MR,
  58.   FX1S_VERSION_20MR,
  59.   FX1S_VERSION_30MR,
  60.   FX1S_VERSION_OVERFLAGS
  61. };
  62. /*
  63. * register field.
  64. * Ignore T bit register and set register.
  65. * Ignore C bit register
  66. */
  67. enum FX1S_REGISTER_FIELD {
  68.   FX1S_REGISTER_FIELD_S = 0,
  69.   FX1S_REGISTER_FIELD_X,
  70.   FX1S_REGISTER_FIELD_Y_OUT,
  71.   FX1S_REGISTER_FIELD_Y_PLS,
  72.   FX1S_REGISTER_FIELD_D,
  73.   FX1S_REGISTER_FIELD_T,
  74.   FX1S_REGISTER_FIELD_M,
  75.   FX1S_REGISTER_FIELD_C16,
  76.   FX1S_REGISTER_FIELD_C32,
  77.   FX1S_REGISTER_FIELD_CRESET
  78. };
  79. /*
  80. * section .link code
  81. */
  82. #define SECTION_LINK_STX 0x02 /* PLC info-section begin flags. */
  83. #define SECTION_LINK_ETX 0x03 /* PLC info-section end flags .***/
  84. #define SECTION_LINK_EOT 0x03 /* .***/
  85. #define SECTION_LINK_ENQ 0x05 /* PLC only test enable */
  86. #define SECTION_LINK_ACK 0x06 /* PLC reply "can do" */
  87. #define SECTION_LINK_LF 0x0A /* .***/
  88. #define SECTION_LINK_CL 0x0C /* .***/
  89. #define SECTION_LINK_CR 0x0D /* .***/
  90. #define SECTION_LINK_NAK 0x15 /* PLC reply "bad things" */
  91. /*
  92. * section cmdion.
  93. */
  94. #define SECTION_CMD_READ      '0' /* .***/
  95. #define SECTION_CMD_WRITE     '1' /* .***/
  96. #define SECTION_CMD_FORCE_ON  '7' /* .***/
  97. #define SECTION_CMD_FORCE_OFF '8' /* .***/
  98. /*
  99. * read section
  100. */
  101. struct read_section {
  102.   uint8_t stx; /* read_section's stdhead. always SECTIOM_LINK_STX */
  103.   uint8_t cmd; /* read_section's cmd  always SECTIOM_CMD_READ  */
  104.   uint8_t unit_address[4];  /* read_section's address*/
  105.   uint8_t numb[2];          /* read's byte count. simple always one */
  106.   uint8_t etx;    /* read_section's stdend.   always SECTION_LINK_ETX  */
  107.   uint8_t crc[2]; /* correcting code*/
  108. };
  109. /*
  110. * read section2
  111. */
  112. struct read_section2 {
  113.   uint8_t stx; /* read_section's stdhead. always SECTIOM_LINK_STX */
  114.   uint8_t cmd; /* read_section's cmd  always SECTIOM_CMD_READ  */
  115.   uint8_t unit_address[4];  /* read_section's address*/
  116.   uint8_t numb[2];          /* read's byte count. simple always one */
  117.   uint8_t etx;    /* read_section's stdend.   always SECTION_LINK_ETX  */
  118.   uint8_t crc[2]; /* correcting code*/
  119.   uint8_t crce; /* easy to read..**/
  120.   uint16_t opbsize; /******/
  121.   uint8_t opboff; /* for bit register(X, Y, M.) **/
  122.   uint16_t opbaddr; /* easy to read. **/
  123. };
  124. /*
  125. * write section
  126. */
  127. struct write_section {
  128.   uint8_t stx; /* write_section's stdhead.  always SECTIOM_LINK_STX */
  129.   uint8_t cmd; /* write_section's cmd  always SECTIOM_CMD_WRITE   */
  130.   uint8_t unit_address[4]; /* write_section's address*/
  131.   uint8_t numb[2]; /* write's byte count.. must <= 64  */
  132.   uint8_t etx; /* write_section's stdend. */
  133.   uint8_t crc[2]; /* correcting code*/
  134.   uint8_t crce; /* easy to read..**/
  135.   uint8_t obpoff; /* for bit register(X, Y, M.) **/
  136.   uint16_t opbaddr; /* easy to read. **/
  137. };
  138. /*
  139. * force section
  140. */
  141. struct force_section {
  142.   uint8_t stx; /* force_section's stdhead.  always SECTIOM_LINK_STX */
  143.   uint8_t cmd; /* force_section's cmd  always SECTIOM_CMD_FORCE_OFF or SECTIOM_CMD_FORCE_ON   */
  144.   uint8_t unit_address[4]; /* force_section's address*/
  145.   uint8_t etx; /* force_section's stdend. */
  146.   uint8_t crc[2]; /* correcting code*/
  147. };
  148. /*
  149. * Accept the write section is very simple,
  150. * if successful send SECTION_LINK_ACK otherwise SECTION_LINK_NAK
  151. */
  152. int fx1s_makersecb (struct read_section2 *rsec, /* write to the serial port, use the size of the read_section */
  153.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *rvap_size,
  154.                          enum FX1S_VERSION ver, uint16_t address);
  155. int fx1s_makewsecb (void *wsec, /* Variable size structure, so use void *, please understand **/
  156.                    void *spval,
  157.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *wsec_size,
  158.                          enum FX1S_VERSION ver, uint16_t address);
  159. int fx1s_makefsecb (struct force_section *fsec,
  160.                          enum FX1S_REGISTER_FIELD rf,
  161.                          enum FX1S_VERSION ver, uint16_t address);            
  162. #if defined (__cplusplus)  /** __cplusplus */
  163. }
  164. #endif  /** __cplusplus */
  165. #endif /* codec_included_MOECMKS */
moecmks
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
2樓  發(fā)表于: 2017-04-24 19:52
復(fù)制代碼
  1. /*-
  2. * Copyright (c) 2017 moecmks
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. *    notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. *    notice, this list of conditions and the following disclaimer in the
  12. *    documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  15. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17. * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  18. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  21. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  22. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  23. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  24. * SUCH DAMAGE.
  25. *
  26. */
  27. #include <assert.h>
  28. #include <string.h>
  29. #include "codecb.h"
  30. /* Convert characters to specific number - noexport */
  31. static
  32. char ascii_to_num (char ch) {
  33.   /* e.g.
  34.    *  source '9' -> target 9
  35.    *  source 'A' -> target 10
  36.    *  source '1' -> target 1
  37.    *  source 'a' -> (nondone, Don't use lowercase letters in fx1s-14mr-001).
  38.    */
  39.   if (ch >= '0' && ch <= '9')
  40.     return (ch - '0');
  41.   if (ch >= 'A' && ch <= 'F')
  42.     return (ch - ('A' - 10));
  43.   else
  44.     assert (0);
  45.   return ch;
  46. }
  47. /* Convert number to specific characters - noexport */
  48. static
  49. char num_to_ascii (char ch) {
  50.   /* e.g.
  51.    *  source 9 -> target '9'
  52.    *  source A -> target '0'
  53.    *  source 1 -> target '1'
  54.    *  source a -> (nondone, Don't use lowercase letters in fx1s-14mr-001).
  55.    */
  56.   if (ch >= 0x00 && ch <= 0x09)
  57.     return (ch + '0');
  58.   if (ch >= 0x0A && ch <= 0x0F)
  59.     return (ch + ('A' - 10));
  60.   else
  61.     assert (0);
  62.   return ch;
  63. }
  64. /* XXX:L-endian.
  65. */
  66. static
  67. uint16_t vailed8 (uint16_t nums) {
  68.   
  69.   /* e.g.
  70.    * 1234 vailed.
  71.    * 9000 invailed.
  72.    * 1007 vailed.
  73.    * 1811 invailed.
  74.    * 0 ~ 65535
  75.    */
  76.    uint16_t d0 = nums % 10 >> 0;
  77.    uint16_t d1 = nums % 100 / 10;
  78.    uint16_t d2 = nums % 1000 / 100;
  79.    uint16_t d3 = nums % 10000 / 1000;
  80.   
  81.    if ( d0 > 7 || d1 > 7)
  82.      return -1;
  83.    if ( d2 > 7)
  84.      return -1;
  85.    return d0 + d1 * 8 + d2 * 8 * 8 + d3 * 8 * 8 * 8;
  86. }
  87. static
  88. uint8_t fxcrc_adjust (unsigned char *crcbuf, uint32_t num) {
  89.   
  90.   uint32_t s= 0;
  91.   uint32_t st = 0;
  92.   
  93.   for (; s != num; s++)
  94.     st += crcbuf[s];
  95.   /* we only save lowest bit's byte **/
  96.   return st & 0xFF;
  97. }
  98. static /* we not check numb cross register **.**/
  99. uint32_t fxcalc_addru (enum FXREGS_FIELD reg, uint16_t addr,
  100.                            enum FX1S_VERSION ver,
  101.                            uint16_t  *opbsize,
  102.                                 uint16_t *raddr, unsigned char *dboff) {
  103.   
  104.   static const /* XXX:enum constant dependence **/
  105.                    uint16_t xmax_tab[4] = { 6, 8, 12, 16 };
  106.   static const /* XXX:enum constant dependence **/
  107.                    uint16_t ymax_tab[4] = { 4, 6, 8, 14 };
  108.   uint16_t addr0 = 0x00A0;
  109.   uint16_t eig = vailed8 (addr);
  110.   uint8_t off = -1;
  111.   uint32_t opbsize0 = 2;
  112.   switch (reg) {
  113.     
  114.   case FX1S_REGISTER_FIELD_D:
  115.   
  116.     if (addr <= 127 && addr == addr) /* numbers: 128, normal use */
  117.       addr0 = 0x1000 + addr * 2;
  118.     else if (addr <= 255) /* numbers: 128, save use */
  119.       addr0 = 0x1000 + addr * 2;
  120.     else if (addr >= 1000 && addr <= 2499)  /* numbers: 1500, file register */
  121.       addr0 = 0x1000 + addr * 2;
  122.     else if (addr >= 8000 && addr <= 8255) /* numbers: 256, special IO port */
  123.       addr0 = 0x0E00 + (addr - 8000) * 2;
  124.     else  /* Illegal access */
  125.       return FX1S_RANGE;
  126.     break;
  127.   case FX1S_REGISTER_FIELD_X:
  128.     /*
  129.      * Check the number of available X-coils according to the PLC version
  130.      */
  131.     if ((eig = vailed8 (addr)) == -1
  132.      || (eig >= xmax_tab[ver]) )
  133.       return FX1S_PARA;
  134.       
  135.     addr0 = 0x0080 + eig / 8;
  136.     off = eig & 7;
  137.     
  138.     opbsize0 = 1;
  139.     break;
  140.     
  141.   case FX1S_REGISTER_FIELD_Y_PLS:
  142.     addr0 += 0x0200;
  143.   case FX1S_REGISTER_FIELD_Y_OUT:
  144.   
  145.     /*
  146.      * Check the number of available Y-coils according to the PLC version
  147.      */
  148.     if ((eig = vailed8 (addr)) == -1)
  149.       return FX1S_PARA;
  150.     
  151.     addr0 += eig / 8;
  152.     off = eig & 7;
  153.     
  154.     opbsize0 = 1;
  155.     break;
  156.   case FX1S_REGISTER_FIELD_S:
  157.   
  158.     if ((addr >=  128)) /* numbers:128, status register **/
  159.       return FX1S_RANGE;
  160.     addr0 = addr / 8;
  161.     off = addr & 7;
  162.     
  163.     opbsize0 = 1;
  164.     break;
  165.   
  166.   case FX1S_REGISTER_FIELD_T:
  167.   
  168.     if ( (addr <=  63)) /* numbers:64, 100ms or 10ms M8028/D8030/D8031 **/
  169.       addr0 = 0x0800 + addr * 2;
  170.     else    
  171.       return FX1S_RANGE;
  172.     break;
  173.     
  174.   case FX1S_REGISTER_FIELD_M:
  175.   
  176.     if (addr < 384) /* numbers: 384, normal use */
  177.       addr0 = 0x0100 + addr / 8;
  178.     else if (addr < 512) /* numbers: 512, save use */
  179.       addr0 = 0x0100 + addr / 8;
  180.     else if (addr >= 8000 && addr < 8256) /* numbers: 256, special IO port */
  181.       addr0 = 0x01E0 + (addr - 8000) / 8;
  182.     else /* Illegal access */
  183.       return FX1S_RANGE;
  184.     
  185.     off = addr & 7;
  186.     opbsize0 = 1;
  187.     break;
  188.   
  189.   case FX1S_REGISTER_FIELD_C16:
  190.   
  191.     if (addr < 16) /* numbers: 16, normal use */
  192.       addr0 = 0x0A00 + addr * 2;
  193.     else if (addr < 32) /* numbers: 16, save use */
  194.       addr0 = 0x0A00 + addr * 2;
  195.     else /* Illegal access */
  196.       return FX1S_RANGE;
  197.     break;
  198.     
  199.   case FX1S_REGISTER_FIELD_C32:
  200.   
  201.    /* for C32 high speed registers,
  202.     * we only perform some basic checks, please note
  203.     **/
  204.     if (addr > 200 && addr <= 255)
  205.       addr0 = 0x0C00 + (addr - 200) * 4;
  206.     else /* Illegal access */
  207.       return FX1S_RANGE;
  208.       
  209.     opbsize0 = 4;
  210.     break;
  211.   
  212.   case FX1S_REGISTER_FIELD_CRESET:
  213.   
  214.     if (addr <= 255)
  215.       addr0 = 0x03C0 + addr / 8;
  216.     else /* Illegal access */
  217.       return FX1S_RANGE;
  218.       
  219.     opbsize0 = 1;
  220.     break;
  221.     
  222.   default:
  223.       return FX1S_PARA;
  224.   }
  225.   
  226.   *raddr = addr0;
  227.   *dboff = off;
  228.   *opbsize = opbsize0;
  229.   return FX1S_OK;
  230. }
  231. int fx1s_makersecb (struct read_section2 *rsec, /* write to the serial port, use the size of the read_section */
  232.                          enum FX1S_REGISTER_FIELD rf, uint16_t  *rvap_size,
  233.                          enum FX1S_VERSION ver, uint16_t address)
  234. {
  235.   struct read_section2 sec;
  236.   uint32_t e;
  237.   
  238.   /** phase 1:fill stdhead/stdend flags and cmd, rread count,s */
  239.   sec.stx = SECTION_LINK_STX;
  240.   sec.etx = SECTION_LINK_ETX;
  241.   sec.cmd = SECTION_CMD_READ;
  242.   /** phase 2:calc address for register and current PLC version */
  243.   e = fxcalc_addru (rf, address, ver, & sec.opbsize, & sec.opbaddr, & sec.opboff);
  244.   if (e != FX1S_OK)
  245.     return e;
  246.   else
  247.    *rvap_size = sizeof (sec.stx) +
  248.                 sizeof (sec.crc)+ sizeof (sec.etx) + sec.opbsize * 2;
  249.   /** phase 3:fill numb ascii, * */
  250.   sec.numb[0] = num_to_ascii ( (sec.opbsize  & 0xF0) >>4);
  251.   sec.numb[1] = num_to_ascii ( (sec.opbsize  & 0x0F) >>0);
  252.   
  253.   /** phase 4:fill address ascii, * */
  254.   sec.unit_address[0] = num_to_ascii ( (sec.opbaddr  & 0xF000) >>12);
  255.   sec.unit_address[1] = num_to_ascii ( (sec.opbaddr  & 0x0F00) >> 8);
  256.   sec.unit_address[2] = num_to_ascii ( (sec.opbaddr  & 0x00F0) >> 4);
  257.   sec.unit_address[3] = num_to_ascii ( (sec.opbaddr  & 0x000F) >> 0);
  258.   
  259.   /** phase 5:crc adjust, fill ascii buf * */
  260.   sec.crce = fxcrc_adjust (& sec.cmd, sizeof (sec.cmd) + sizeof (sec.unit_address)
  261.                                         + sizeof (sec.numb)
  262.                                         + sizeof (sec.etx));
  263.   sec.crc[0] = num_to_ascii ( (sec.crce  & 0xF0) >> 4);
  264.   sec.crc[1] = num_to_ascii ( (sec.crce  & 0x0F) >> 0);
  265.   
  266.   memcpy (rsec, & sec, sizeof (sec));
  267.   return FX1S_OK;  
  268. }
  269. int fx1s_makewsecb (void *wsec, /* Variable size structure, so use void *, please understand **/
  270.                    void *buf, /* wsec size == sizeof(wc) * 2  **/
  271.                          enum FX1S_REGISTER_FIELD rf, uint16_t *wsec_size,
  272.                          enum FX1S_VERSION ver, uint16_t address)
  273. {
  274.   uint16_t opbsize, opbaddr;
  275.   char obpoff;
  276.   char varsbuf[256];
  277.   char *as = buf, cs;
  278.   uint32_t e;
  279.   uint32_t s = 0;
  280.   struct write_section *secp = wsec;
  281.   struct write_section *secdp = (void *)varsbuf;
  282.   /** phase 1:fill stdhead flags and cmd */
  283.   secdp->stx = SECTION_LINK_STX;
  284.   secdp->cmd = SECTION_CMD_WRITE;
  285.   /** phase 2:calc address for register and current PLC version */
  286.   e = fxcalc_addru (rf, address, ver, & opbsize, & opbaddr, & obpoff);
  287.   if (e != FX1S_OK)
  288.     return e;
  289.   else
  290.     *wsec_size = sizeof (struct write_section) + opbsize * 2;
  291.   /** phase 3:fill numb ascii, * */
  292.   secdp->numb[0] = num_to_ascii ( (opbsize  & 0xF0) >>4);
  293.   secdp->numb[1] = num_to_ascii ( (opbsize  & 0x0F) >>0);
  294.   
  295.   /** phase 4:fill address ascii, * */
  296.   secdp->unit_address[0] = num_to_ascii ( (opbaddr  & 0xF000) >>12);
  297.   secdp->unit_address[1] = num_to_ascii ( (opbaddr  & 0x0F00) >> 8);
  298.   secdp->unit_address[2] = num_to_ascii ( (opbaddr  & 0x00F0) >> 4);
  299.   secdp->unit_address[3] = num_to_ascii ( (opbaddr  & 0x000F) >> 0);
  300.   
  301.   /** phase 5:fill variable buffer, * */
  302.   for ( ; s != opbsize; s++) {
  303.     unsigned char  temp = as[s];
  304.     char  tmphi = num_to_ascii (temp >> 4);
  305.     char  tmplo = num_to_ascii (temp & 15);
  306.     
  307.     secdp->numb[2+s*2+0] = tmphi;
  308.     secdp->numb[2+s*2+1] = tmplo;
  309.   }
  310.   /** phase 6:crc adjust, fill ascii buf * */
  311.   secdp->numb[2+opbsize*2] = SECTION_LINK_ETX;
  312.   
  313.   cs = fxcrc_adjust (& secdp->cmd, opbsize * 2 + sizeof (secp->cmd) + sizeof (secp->unit_address)
  314.                                         + sizeof (secp->numb)
  315.                                         + sizeof (secp->etx));
  316.   secdp->numb[2+opbsize*2+1] = num_to_ascii ( (cs  & 0xF0) >> 4);
  317.   secdp->numb[2+opbsize*2+2] = num_to_ascii ( (cs  & 0x0F) >> 0);
  318.   
  319.   memcpy (wsec, & varsbuf, *wsec_size);
  320.   return FX1S_OK;
  321. }
  322. uint32_t fx1s_cmprvpack (void *raccbuf, /* Variable size structure, so use void *, please understand **/
  323.                          uint16_t rc, void **ascii_buf, uint16_t *opbsize
  324.                          , uint16_t *stdpos)
  325. {
  326.   char *varsbuf = raccbuf;
  327.   uint16_t c = 0;
  328.   char stx_find = 0;
  329.   uint16_t stdpos0 = -1;
  330.   
  331.   /* we find SECTION_LINK_NAK or SECTION_LINK_STX at first **/
  332.   for (; c != rc; c++)
  333.    {
  334.      if (varsbuf[c] == SECTION_LINK_NAK)
  335.        return FX1S_NAK;
  336.      if (varsbuf[c] == SECTION_LINK_STX)
  337.       {
  338.         /* second, we check SECTION_LINK_ETX in buffer **/
  339.         stx_find = 1;
  340.         stdpos0 = c + 1;
  341.       }  
  342.      if (varsbuf[c] == SECTION_LINK_ETX && stx_find == 1)
  343.       {
  344.         /* exist CRC byte ??**/
  345.         if ((c + 2) >= rc)
  346.           return FX1S_INCOP;
  347.         /* calculate, compare the CRC code **/
  348.         {
  349.       # if 0
  350.       # else
  351.           *ascii_buf = & varsbuf[stdpos0];
  352.           *opbsize = c - stdpos0;
  353.           *stdpos = stdpos0;
  354.           return FX1S_OK;
  355.       # endif    
  356.         }
  357.       }
  358.    }
  359.   
  360.    return FX1S_INCOP;
  361. }                    
  362. uint32_t fx1s_decrvsec (void *raccbuf, void *sbuf, uint16_t opbasize) {
  363.   
  364.   char *varsbuf = raccbuf;
  365.   char *ssbuf = sbuf;
  366.   uint16_t c = 0;
  367.   
  368.   if (opbasize % 2 == 1)
  369.     return FX1S_INCOP;
  370.   if (opbasize == 0)
  371.     return FX1S_PARA;
  372.   
  373.   for ( ; c != opbasize; c += 2)
  374.     {
  375.       char tmphi = ascii_to_num (varsbuf[c]) << 4;
  376.       char tmplo = ascii_to_num (varsbuf[c+1]);  
  377.       char temp  =   (tmphi & 0xF0) |    (tmplo & 0x0F);
  378.       
  379.       ssbuf[c>>1] = temp;
  380.     }
  381.     
  382.     return FX1S_OK;
  383. }

久久久久国产精品无码免费看 | 久久午夜无码鲁丝片午夜精品 | 成年免费视频黄网站在线观看 | 精品一区久久久 | 男人插女人网站 | 亚洲永久视频 | 日韩123区 | 日本xxxx免费 | 国产精品免费av | 欧美影院久久 | 亚洲久久久久 | 青青草原伊人网 | 免费观看黄网站 | 爱情岛论坛永久入口 | 欧美精品免费在线观看 | 欧美大肥婆大肥bbbbb | 成人国产| 高清av免费| 24小时日本在线www免费的 | 亚洲天堂成人在线观看 | 精品视频999 | 成人一级毛片 | 久草成人在线 | 午夜影院操 | 亚洲熟女一区 | www三级免费 | 欧美日韩免费观看一区=区三区 | 六月丁香综合 | 中文字幕第7页 | 黄色片高清 | 中文字幕一区二区人妻在线不卡 | 丁香花高清在线观看完整动漫 | 国产精品中文在线 | 婷婷色视频 | 天天做夜夜做 | 国产精品综合久久久久久 | 久久婷婷一区二区 | 少妇肥臀大白屁股高清 | 色综合色综合网色综合 | 99热免费 | 都市激情男人天堂 | 日韩成人在线免费视频 | 欧洲金发美女大战黑人 | 91毛片网 | 夜夜看 | 亚洲电影在线观看 | 亚洲一区二区三区免费看 | 欧美日韩精品一二三区 | 91免费视频网站 | 亚洲成人av免费在线观看 | 在线色导航 | 国语对白做受69 | 伊人网免费视频 | 精品婷婷色一区二区三区蜜桃 | 中文字幕精品视频在线观看 | 国产欧美日韩成人 | 国产日韩在线播放 | 色中文字幕 | 杨幂一区二区国产精品 | 四虎黄色片| 操你啦免费视频 | 综合网色| 中字幕一区二区三区乱码 | 高清av网站 | 五月婷婷视频在线观看 | 欧美91视频| 精品亚洲一区二区三区 | www.成人av| 亚瑟av在线 | 丰满岳乱妇国产精品一区 | 白丝av| 国产午夜精品无码 | av在线片| 少妇人妻一区二区三区 | 天天干天天干天天干天天 | 亚洲精品国产精品乱码不99 | 女人裸体免费网站 | 91碰在线视频 | 欧美黄色小视频 | 人妻少妇一区 | 激情小说在线观看 | 日韩在线国产 | 蜜臀久久99精品久久久无需会员 | 香蕉视频久久 | 伊人亚洲精品 | 91免费视频免费版 | 在线99| 国产精品午夜未成人免费观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 中文字幕一级 | 亚洲精品自拍偷拍 | 最近中文字幕在线中文高清版 | 成人看片黄a免费看视频 | 精品日韩 | 成人毛片在线播放 | 欧美日韩在线免费观看 | 色五婷婷 | 国产精品国产精品国产 | 国产第一色 | 91视频在 | 中文字幕二 | 国产精品久久久久久久免费看 | 亚洲午夜久久久久久久久久久 | 国产精品人妖 | 欧美激情在线免费观看 | 神马三级我不卡 | 国产成人久久精品77777综合 | 亚洲自拍偷拍一区 | 哪里可以免费看毛片 | 黄色三级网站在线观看 | 99riav在线| 日本韩国欧美中文字幕 | 欧美亚洲另类小说 | 中文精品久久久久人妻不卡 | 自拍偷拍第3页 | 日本色www | 五十路六十路 | 少妇愉情理伦片bd | a级黄毛片 | 欧美爽爽 | 97人妻精品一区二区三区动漫 | 亚洲成人av在线 | 成年人网站免费 | 日本一二三区视频 | 黄色小视屏 | 男男黄网站 | 国产无人区码熟妇毛片多 | 日韩av在线影院 | 久久精品一区二区国产 | 永久免费看黄 | 男人看片网站 | 日韩一级视频 | 天天做天天爱天天做 | 四虎少妇做爰免费视频网站四 | 五月色综合| 伊人av在线播放 | 欧美色图第一页 | 少妇太紧太爽又黄又硬又爽小说 | 国产精品国产三级国产aⅴ 黄色污小说 | 成人在线免费播放 | 日本一区二区久久 | 国产视频资源 | 免费激情视频网站 | 精品国产www | 视频二区在线观看 | 伊人69 | 天天干天天操心 | 国产三级做爰高清在线 | 啪啪福利 | 一级黄网站 | 91嫩草网| 日本wwwxxx| 欧美一二区 | 国产精品久草 | 国产精品中文字幕在线观看 | 国产精品久久久久久久久久久久久久 | 国产成人在线播放 | 日日噜噜噜夜夜爽爽狠狠视频97 | 欧美在线综合 | 国产精品一级黄片 | 免费爱爱网址 | 秋霞一区二区三区 | 国产综合久久 | 日韩欧美偷拍 | 色爽 | 99re色 | 中文字幕被公侵犯的漂亮人妻 | 国产欧美第一页 | 李丽珍毛片 | 天堂网免费视频 | 嫩色av| 午夜肉体高潮免费毛片 | 天堂在线官网 | 伊人网在线免费观看 | 天天操夜夜爱 | 在线观看av网站 | 婷婷国产在线 | 五月综合激情日本mⅴ | 一级福利片 | 伊人久久香 | 男人插女人下面视频 | 亚洲色图首页 | 亚洲成人基地 | 国产成人精品三级麻豆 | 在线免费观看黄网站 | 中文字幕麻豆 | 男女激情四射网站 | 久久色在线 | 成年人性生活免费视频 | 91在线一区二区三区 | 欧美三区| 日韩欧美综合 | 天堂国产精品 | 亚洲二区在线视频 | 黑人巨大猛交丰满少妇 | 91天堂素人| 麻豆导航 | www日韩av | 日韩综合在线 | 国产午夜一区二区三区 | 亚洲天堂中文字幕在线 | 亚洲综合色婷婷 | 制服诱惑一区 | 日韩视频免费在线播放 | 在线免费观看一区二区三区 | 国产日韩欧美高清 | 草久网 | 啪啪综合 | 久久免费视频网站 | 涩涩屋污 | 欧美黄色大片网站 | 精品日本一区二区 | wwwxxx日本免费 | 婷婷亚洲一区 | 精品亚洲乱码一区二区 | 国内自拍xxxx18 | 蜜桃视频欧美 | 人妻精品一区二区三区 | 亚洲高清色图 | 欧美在线看片 | 爱爱视频免费网站 | 亚洲人高潮女人毛茸茸 | 亚洲精品在线电影 | 老司机精品视频在线播放 | 韩日少妇| 丁香婷婷激情 | 日韩av.com | 亚洲欧美综合网 | 国产真人无遮挡作爱免费视频 | 国产成人一级片 | 欧美超碰在线 | 国产成人av在线 | 男生插女生的视频 | 99国产一区| 超碰av在线 | 九九热这里都是精品 | 欧美xxxx黑人| 精品孕妇一区二区三区 | 五月婷婷在线观看视频 | 神秘马戏团在线观看免费高清中文 | 国产伦精品一区二区三区四区 | 欧美精品播放 | 国产精品免费一区 | 超碰在线免费看 | 国精产品一品二品国精品69xx | 一区三区视频 | 国产综合视频在线 | 香蕉视频1024 | 黄色成人毛片 | 久久九九99 | 日日操夜夜操狠狠操 | 国模私拍大尺度裸体av | 99综合视频| aa爱做片免费 | 男女无遮挡做爰猛烈视频 | 中文字幕第35页 | 抖音视频在线观看 | 亚洲 欧美 精品 | 岛国精品在线 | 手机午夜视频 | 不卡av中文字幕 | 欧美视频在线一区 | 国产a级片视频 | av免费资源 | 麻豆精品国产精华精华液好用吗 | 久久久久久久久久一级 | 国产成人精品一区二 | 亚洲经典视频在线观看 | 久久精品视频一区 | 国产伦精品一区二区三区千人斩 | 色哟哟在线 | 香港三日本三级少妇66 | 人妻无码中文字幕 | 尤物视频官网 | 操人视频网站 | 久久久久性色av无码一区二区 | 久久99免费 | 国产极品久久 | 亚洲黄色精品视频 | 夜av| 国产亚洲色婷婷久久99精品91 | 6080成人 | 欧美成人777| 污网站免费观看 | 成年人在线观看视频 | 一区二区三区视频免费视 | 欧美a级黄色 | 日韩高清精品免费观看 | 国产首页 | 欧美中出 | 国产精品2020 | 日韩欧美啪啪 | 久久丝袜视频 | 日韩欧美一二三区 | 中文字幕在线播放第一页 | 长篇h版少妇沉沦交换 | 国产精品老熟女视频一区二区 | 我不卡一区二区 | 亚洲欧洲精品一区二区 | 91精品久久久久久久久久入口 | 男人操女人下面 | 成人三级在线视频 | 波多野结衣一本一道 | 上海贵妇尝试黑人洋吊 | 88av视频| 国精品人妻无码一区二区三区喝尿 | 日韩黄大片 | 亚洲av色区一区二区三区 | 五月天激情小说 | 国产嫩草在线 | 国模视频一区 | 国产第1页 | 自拍偷拍欧美 | 波多野结衣在线网址 | 欧美日韩国产色 | 日本三级久久久 | 亚洲精品视频在线 | 黄色片毛片 | 99视频精品| 国产精品伦一区二区三区 | 在线免费观看日韩视频 | 狠狠操在线观看 | 免费看欧美大片 | 精品国产一区二区三区久久久久久 | 久久人人爽人人爽人人片av高清 | 欧美一二三 | 国产精品亲子伦对白 | 一级黄色大毛片 | 九色视频丨porny丨丝袜 | 福利免费观看 | www 在线观看视频 | 欧美亚洲日本 | 九草av| 羞羞动漫免费观看 | 加勒比久久综合 | 国产一区二区欧美 | 欧美人日b | av色噜噜| 91视频 - 88av | 永久免费av无码网站性色av | 免费在线黄色av | 国产欧美一区二区三区白浆喷水 | 久久精品日韩无码 | 中文精品久久 | 日韩精品 电影一区 亚洲 | 欧美精品在线一区二区三区 | 久久国产伊人 | 国产18照片色桃 | a视频免费| 日韩一级片av | 中国女人真人一级毛片 | 久久精品一区二区三区不卡牛牛 | 一区二区不卡视频 | 亚洲一区二区三区视频在线 | 少妇伦子伦精品无吗 | av无遮挡 | 国产超碰在线观看 | 国产自偷自拍 | 日本在线观看一区二区三区 | 国产大学生自拍视频 | 亚洲国产免费av | 久久久久影视 | 天堂av免费在线 | 男男野外做爰全过程69 | 韩国一区二区三区四区 | 成人hd | 欧美另类综合 | 按摩ⅹxxx性hd中国 | 高潮一区二区三区乱码 | 色吟av| a级一片 | www.男人天堂.com | 看av的网址 | www.av色| 91在线观看网站 | 粉嫩av网| 日韩一区高清 | 日韩综合一区二区三区 | 亚洲av鲁丝一区二区三区 | 国产日韩精品中文字无码 | 欧美成人精品激情在线观看 | 精品国产一区在线观看 | 国产xxxx孕妇 | 九色porny自拍视频在线播放 | 色多多视频网站 | 欧美午夜久久 | 国产刺激高潮av | 天堂中文在线网 | 深夜福利av | 白浆一区 | 毛片久久久久久久 | 大片视频免费观看视频 | 色妞综合网 | 90岁老太婆乱淫 | 金鱼妻日剧免费观看完整版全集 | 日本电影一区二区三区 | 女av在线 | 长篇高h肉爽文丝袜 | 91久久一区二区 | 曰韩一级片 | 久艹在线视频 | 找国产毛片看 | 黄色大毛片| 中文字幕一区在线观看 | 精品福利在线观看 | 大陆熟妇丰满多毛xxxⅹ | 老司机午夜免费视频 | 国产美女网站视频 | 一级黄色录相 | 国产 第1190页 | 一个人在线观看免费视频www | 国产黄色的视频 | 欧美激情亚洲综合 | 男女啪啪国产 | www.色多多| 久久92| av狠狠干 | 人人爽人人爽人人片 | 欧美啪啪网 | 熟妇人妻系列aⅴ无码专区友真希 | 日日操日日干 | 强开乳罩摸双乳吃奶羞羞www | 波多野结衣之潜藏淫欲 | 精品免费视频 | 精品久久久久久一区二区里番 | 九月婷婷综合 | 人人99| 波多野结衣mp4 | 成人做爰www看视频软件 | av男人资源 | 日韩一二三四 | 成人福利免费视频 | 日韩精品1 | 女生脱裤子让男生捅 | 在线观看 亚洲 | 巨茎人妖videos另类 | 国产精品区一区二 | 蜜臀一区 | 国产精品呻吟 | 久久久久免费观看 | 国产一区在线播放 | 狠狠干网址 | 亚洲社区在线 | 婷婷av一区二区三区 | 男操女视频在线观看 | 欧美成人免费视频 | 成人h动漫精品一区 | 欧美特级视频 | 狠狠ri | 毛片大全免费 | 亚洲欧美va天堂人熟伦 | 午夜精品99 | 成人18视频在线观看 | 久久综合网址 | 亚洲人性生活视频 | 看av在线| 日韩在线观看网站 | 国产国产精品 | 精品久久BBBBB精品人妻 | 麻豆视频观看 | wwwwxxxxx日本| 在线观看黄色网 | 久久青草免费视频 | 少妇精品久久久久久久久久 | 成人在线观看一区 | av大帝在线| 在线免费小视频 | 亚洲女人初尝黑人巨大 | 中文字幕精品无码亚 | 蜜臀av一区二区三区有限公司 | 97视频在线看 | 色优久久 | 欧美精品一区二区三区视频 | 免费观看成年人视频 | 啪啪综合| 91porny九色 | 波多野结衣精品 | 波多野吉衣一二三区乱码 | 91青青草视频 | 日韩精品一区不卡 | 国内精品视频在线播放 | 久久久久久久久久久国产 | 爱爱视频网站 | 黑丝一区二区三区 | 91婷婷| 免费国产小视频 | 国产超碰| 日本高清视频在线 | 欧美大片免费在线观看 | 欧美亚洲大片 | 福利视频导航网 | 精品蜜桃av | 亚洲精品电影网 | 欧美 日韩 中文字幕 | 夜夜操天天 | 操操操综合网 | 成av人片一区二区三区久久 | 成人免费黄色网 | 精品九九九九 | 少妇精品无码一区二区免费视频 | 国产精品久久精品 | 三级小视频在线观看 | 网站在线观看你懂的 | аⅴ资源新版在线天堂 | 在线一区 | 97视频| 日本亚洲在线 | 性欧美大战久久久久久久免费观看 | 免费看日产一区二区三区 | 国产成人+综合亚洲+天堂 | 不卡一区在线 | 久久久精品天堂 | 四虎免费观看 | 国产激情无套内精对白视频 | 麻豆网站免费观看 | 浪荡奴双性跪着伺候 | 不卡影院av| 久热国产视频 | 在线视频 亚洲 | 国产婷婷一区二区三区久久 | 久草中文在线观看 | 奇米影视狠狠干 | 欧美成人手机在线 | 亚洲 激情 小说 另类 欧美 | 看久久| 国产在线毛片 | 一区视频网站 | 一区二区三区四区五区视频 | 久久新 | 这里只有精品久久 | 中文字幕专区 | 在线不卡免费视频 | 一级欧美一级日韩 | 99国产精品99久久久久久粉嫩 | 国产aⅴ精品一区二区三区久久 | 理伦毛片| 草草影院第一页 | 日本成人中文字幕 | 成人深夜在线观看 | 色姑娘综合网 | 成人91在线观看 | 娇妻之欲海泛舟无弹窗笔趣阁 | 成人一区二区三区四区 | 男人与雌宠物交h | 五月天91 | 操操操操操操操操操 | 无码一区二区三区在线 | 800av在线播放 | 欧美在线不卡视频 | 中文字幕在线影院 | 亚洲一区 在线播放 | 美女污污网站 | 久久私人影院 | 一级黄色免费看 | 久久久久亚洲av无码a片 | 日韩高清不卡一区 | 一级a性色生活片久久无 | 国产精品伦理 | 青草伊人久久 | 日本做爰高潮又黄又爽 | 四虎永久免费影院 | 日韩精品一区二区三区国语自制 | 欧美日韩一区二区区别是什么 | 欧美精品首页 | 97综合| 四虎成人永久免费视频 | 色多多污污 | 色爱av| 国产在线视频二区 | 丰满肉肉bbwwbbww | 日本久久一级片 | 精品成人网 | 国产精品国产一区二区三区四区 | 熟女熟妇伦久久影院毛片一区二区 | 国语对白 | 久久久久综合 | 中文字幕人妻一区二区在线视频 | 国产欧美一区二区在线观看 | 手机看片欧美日韩 | 国产色爽| 女同爱爱视频 | 日本一区二区三区精品视频 | 久久久久亚洲av成人无码电影 | 你懂的在线播放 | 欧美一区二区免费视频 | 久久看片网 | 亚洲人午夜射精精品日韩 | 成人自拍在线 | 日韩欧美性视频 | 免费观看日批视频 | 欧美国产一级片 | 欧美三级一区二区 | 毛片a| 成人在线国产 | 自拍偷自拍亚洲精品播放 | 劲爆欧美第一页 | 99热导航| 免费一级片网址 | 日本爱爱免费视频 | 蜜桃精品噜噜噜成人av | 白嫩情侣偷拍呻吟刺激 | 久久久.com | 国产无套精品一区二区三区 | 午夜天堂| 欧美日韩国产成人在线 | 久热精品在线视频 | 波多野结衣在线播放 | 女同另类之国产女同 | 中文字幕一级二级三级 | 国产精品久久久久久久久久免费看 | 五月婷婷社区 | 亚洲性猛交富婆 | 国产乱淫av一区二区三区 | 黑人巨大精品欧美 | 精品影片一区二区入口 | 青春草在线视频观看 | 精品久久国产视频 | 美女热逼 | 国产午夜精品久久 | a级免费网站| 狂野欧美性猛交xxxx巴西 | 一区二区传媒有限公司 | 国产黄色免费视频 | 日本在线免费观看 | 黑白配在线观看免费观看 | 亚洲国产第一页 | 国产色在线 | 特级西西444www大精品视频免费看 | 亚洲av无码国产精品麻豆天美 | 午夜性片| jzzijzzij日本成熟少妇 | 娇小tube性极品娇小 | 亚洲免费av片| 日本一区二区三区在线观看 | 欧日韩不卡视频 | 在线中文字幕网站 | 日本高清视频免费观看 | 欧洲美熟女乱又伦 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 快射视频在线观看 | 狗爬女子的视频 | 国产视频97 | 久久久久久久久久亚洲 | 日韩色网 | 久久久精品在线 | 婷婷色av | 色婷婷色综合 | 日本大乳奶做爰 | 国产一区欧美二区 | 欧美日韩电影一区 | 爱爱视频网站 | 亲子乱子伦xxxx | 亚洲色图1 | www.欧美精品 | www.午夜av | 99爱精品视频 | 午夜激情在线播放 | 欧美三级精品 | 亚洲成av人片在线观看 | 日本毛片在线 | 婷婷丁香久久 | 国产女合集 | 婷婷六月丁| 黄色成人免费网站 | 免费在线观看亚洲 | 姐姐av| 国产成人免费在线视频 | 亚洲熟妇无码一区二区三区 | 天堂中文在线免费观看 | 好看的黄色录像 | 深夜福利院 | 97精品久久久 | 国产伦精品一区二区三区视频女 | 玖玖色资源 | zjzjzjzjzj亚洲女人 | 成人黄色免费网站 | 毛片h| 日韩视频中文字幕 | 原来神马电影免费高清完整版动漫 | 无码人妻精品一区二区三区9厂 | 亚洲精品久久 | 国产外围在线 | 国产手机在线播放 | 小伸进喷水网站 | 99re这里有精品 | 国产网红在线观看 | 亚洲欧洲精品在线 | 国产一区二区网站 | 日韩欧美91 | 久久久久麻豆v国产精华液好用吗 | www.日本高清| av在线免播放器 | 久久人久久 | 日本熟伦人妇xxxx | 五月天精品视频 | 久久bb | 美女网站在线看 | 免费三级黄色 | 国产成人精品一区二区三区视频 | 美女100%露胸无遮挡 | 欧美一级三级 | www.xxxx国产 | 国产av无码专区亚洲av毛网站 | 亚洲a级片| 欧美一区二区免费 | 成人av无码一区二区三区 | www一区二区三区 | 亚洲一区毛片 | 国产精品久久久一区 | 亚洲性猛交xxxx乱大交 | 欧美在线性视频 | 久久亚洲AV成人无码国产野外 | 国产精品永久 | 制服丝袜在线第一页 | 麻豆一区在线 | 在线激情网 | 亚洲一区二区三区四区在线 | 欧美日韩在线播放 | 国产性自拍| 中文字幕在线观看免费 | 日本视频www | 黄色小网站入口 | 天天5g天天看 | 农村老熟妇乱子伦视频 | 人人爽人人插 | 手机成人在线视频 | www香蕉视频 | 可以免费看av的网站 | 天堂va蜜桃一区二区三区 | 少妇又色又爽又黄的视频 | 青草福利视频 | 夜夜夜操操操 | 国产精品一区二区精品 | 国产主播在线观看 | 加勒比在线免费视频 | 黄色网免费| 神马午夜51 | 三年中国片在线高清观看 | 日日夜夜免费精品视频 | 91看片成人 | 日韩av网页| 插插射射| 成人黄页网站 | 高潮毛片无遮挡免费看 | 日韩欧美中文字幕在线观看 | 成人av电影在线观看 | aaa一区二区 | 蜜桃91麻豆精品一二三区 | 亚洲欧美视频一区 | 天天操天天操天天操天天 | 亚洲男人的天堂网 | 美女让男生桶 | 午夜性福利 | 亚洲com| 午夜av在线免费观看 | 亚洲v视频| 日日干夜夜撸 | 给我免费观看片在线电影的 | 久久毛片视频 | 日韩欧美高清视频 | www在线观看免费视频 | 欧美视频第二页 | 天天躁日日躁狠狠很躁 | 久久精品黄aa片一区二区三区 | 日韩二区在线观看 | 一区二区三区国产视频 | 久久久久久九九九九九 | 99热日本 | 99热日本 | 91精品国产综合久久久蜜臀九色 | 一级免费观看 | 国产极品视频在线观看 | 不卡久久| 95久久| 久久理论电影 | 69视频在线播放 | 久久久久无码国产精品一区李宗瑞 | 91丨porny丨成人蝌蚪 | 亚洲国产精品无码久久久久高潮 | 精品成人无码久久久久久 | 日韩欧美国产视频 | 麻豆chinese新婚xxx | 欧美瑟瑟 | 日本人xxxxxxxxx泡妞 | 亚洲蜜臀av乱码久久精品蜜桃 | 久久精品影视 | 久草综合网 | 黄色小视频在线免费看 | 麻豆一区二区99久久久久 | 秋葵视频在线 | 国产成人一区二区三区小说 | 色婷婷五 | 毛片av免费看| 日韩中文av | 欧美黄在线观看 | 免费高清欧美大片在线观看 | 污污视频网站在线 | 韩国av免费观看 | 午夜国产在线 | 激情小说欧美色图 | 黄色福利视频 | 日本h视频在线观看 | 成人免费在线观看网站 | 国产福利在线观看视频 | 日本一级免费视频 | 欧美精品黄 | 亚洲综合小说网 | 国产精品一区二区在线看 | 欧美精品一区在线 | 国产三级视频在线播放 | hs网站在线观看 | 欧美一区二区三区久久妖精 | 成人免费毛片网站 | 国产免费激情视频 | 女人舌吻男人茎视频 | 日韩黄色高清视频 | 欧洲精品码一区二区三区免费看 | 久久视频免费在线观看 | 国产第一亚洲 | 日韩一级黄色大片 | 国产尤物视频在线观看 | 懂色av成人一区二区三区 | 欧美日本韩国一区 | 精品久久中文字幕 | 亚洲欧美系列 | 国产精品伦理 | 浪浪视频在线观看 | 97国产成人无码精品久久久 | 日韩免费不卡视频 | 用力挺进新婚白嫩少妇 | 波多野结衣久久 | 日韩av在线播放网址 | www.欧美精品 | 不卡av在线免费观看 | 日韩av大片在线观看 | 精品99久久久久成人网站免费 | 国产精品国产成人国产三级 | 成人免费在线观看av | 天天插天天操天天干 | 中文字幕一二区 | 337p日本大胆噜噜噜鲁 | 国产在线一区视频 | a在线看 | 嫩草国产精品 | 日本在线成人 | 成人做爰9片免费视频 | 韩国久久精品 | 精品人妻人人做人人爽夜夜爽 | 在线免费福利 | 极品久久久久久 | 国产成人精品一区二区三区在线观看 | 亚洲精品一区二三区 | 精品深夜av无码一区二区老年 | 97精品在线视频 | 国产午夜福利片 | 婷婷丁香社区 | 老女人性生活视频 | 亚洲成人福利视频 | 亚洲五级片 | 欧美精品一区在线发布 | 亚洲欧美一区二区三区久久 | 久久大香| 狠狠操伊人 | 欧美不卡一区二区 | 狠狠干天天操 | 原来神马电影免费高清完整版动漫 | 国产精品视频一区在线观看 | 天堂网亚洲 | 久久亚洲影视 | 国产专区在线播放 | 久久中文字幕av | 中文字幕在线观看免费高清 | 色噜噜综合 | 国产欧美一区二 | 农村少妇无套内谢粗又长 | 岛国免费视频 | 国产又好看的毛片 | 亚洲一区二区精品视频 | 中国一级免费毛片 | 国产成人亚洲精品 | 超污网站在线观看 | 黄色羞羞网站 | 爱爱免费视频网站 | 欧美污视频 | 成年人午夜 | 天堂资源在线 | 一区二区精品在线观看 | 新版天堂资源中文8在线 | 99视屏| 五月婷婷六月激情 | 中文字幕狠狠干 | 帮我拍拍漫画全集免费观看 | 国产aⅴ无码片毛片一级一区2 | 巨大乳の揉んで乳榨り奶水 | 国产成人在线播放 | 九九热综合| 91高清国产| 大尺度激情吻胸视频 | 四虎影成人精品a片 | av片免费播放 | 成人欧美激情 | 国产做a视频 | www.av网 | 日韩一区二区在线观看 | 四虎综合网 | 又嫩又硬又黄又爽的视频 | 丁香久久久 | 97人妻精品一区二区三区动漫 | 色噜噜亚洲 | 国产在线观看网站 | 女人张开双腿让男人捅 | 在线播放亚洲精品 | 欧美日韩伦理片 | 特级西西444www高清大视频 | 男生操女生网站 | 双性人妖互交localhost | 欧美精品一二 | 丁香六月色婷婷 | 日本免费成人 | 亚洲自啪 | 伊人网免费视频 | 久久久人人爽 | 久久久视频在线观看 | 国产精品一线天粉嫩av | 伊人黄色片 | 一区二区三区四区在线 | 天天摸天天做 | 精品人妻一区二区三区香蕉 | 三区在线视频 | 日韩精品久久久久久久电影99爱 | 亚洲国产精品一区 | 国产大学生自拍视频 | 91爱看 | 中文字幕69页 | 天天视频入口 | 国产成人一区二区三区电影 | 欧美成人精品欧美一 | 国产一区不卡视频 | 污视频在线免费 | 亚洲人 女学生 打屁股 得到 | 琪琪色在线观看 | 狠狠干快播 | 欧美三级在线看 | 二区不卡 | 91视频分类 | 超碰在线最新 | 一级片免费在线观看 | 九九热在线视频 | 国产亚洲精品成人av在线 | 六月激情婷婷 | www.青青草.com| 中文字幕一区二区人妻电影丶 | 亚洲色欲一区二区三区在线观看 | 免费福利视频网站 | 91资源站 | 嫦娥性艳史bd | 国产肥白大熟妇bbbb视频 | 天天干夜夜夜夜 | 91喷水| 久久久久无码国产精品一区李宗瑞 | av毛片网| 亚洲情欲网 | 制服.丝袜.亚洲.中文.综合 | 福利在线看| 中文精品久久久久人妻不卡 | 亚洲色图18p | 中文字幕第一区综合 | 亚洲影院在线观看 | 国产伦精品一区二区三区免费 | 中文在线一区二区三区 | 欧美大屁股熟妇bbbbbb | 青青色在线视频 | 色九九| 日韩裸体视频 | 污免费在线观看 | 俄罗斯porn | 国产视频一区二区三区四区 | 夜夜操操操 | 日日cao| 欧美成人三级在线观看 | 欧美36p| 久久精品视频在线 | 91视频网址 | 国产综合精品一区二区三区 | 亚洲小说区图片区 | 亚洲经典三级 | 在线观看亚洲大片短视频 | av男人的天堂在线 | 九九九亚洲 | 亚洲手机在线 | 国产videos| 五十路在线视频 | 少妇按摩一区二区三区 | 欧美一级淫 | 免费性网站 | 朝桐光在线播放 | 久久亚洲AV无码专区成人国产 | 欧美视频一区二区 | 视频在线一区 | 久人人| 亚洲精品一区二区三 | 欧美一级二级片 | 美女视频黄色 | 夜夜操影院 | 热热热热色 | 欧美一区二区三区视频在线 | 亚洲动漫精品 | 国产二区一区 | 天天干天天做 | 亚洲精品久久久蜜桃 | gogo亚洲国模私拍人体 | 成人精品久久久 | 欧美日韩一区二区三区在线电影 | 美女脱光内衣内裤 | 久久性色 | 精品二三区| 国产99精品视频 | 国产乱码在线观看 | 日本大胆欧美人术艺术 | av有码在线 | 免费av在线网站 | 美女网站在线看 | www.狠狠操.com| 国产美女91呻吟求 | 狼人久久 | 九九视频这里只有精品 | 91成人福利视频 | 黄色欧美视频 | 韩国伦理片在线播放 | 国产尤物在线观看 | 操网站 | 色激情网| 欧美中文日韩 | 高清国产一区二区 | 88久久精品无码一区二区毛片 | xxxxxx日本| 亚洲女人的天堂 | 亚洲欧美精品一区二区 | 日韩性生活视频 | 欧美日韩黄色 | 国产精品一线天粉嫩av | 国内三级视频 | 国产91麻豆视频 | 福利视频在线免费观看 | 国产精品波多野结衣 | 欧美三级在线视频 | 欧美人xxxx| 日韩中文字幕网 | 欧美自拍视频在线观看 | 爱情岛亚洲首页论坛小巨 | av手机免费在线观看 | 国产一区二区三区在线视频观看 | 欧美在线网 | 亚洲最大视频网站 | 精品无码一区二区三区的天堂 | 第一章豪妇荡乳黄淑珍 | 热99视频| 国产黄色免费大片 | 麻豆成人av | 最新黄网| 丁香综合网| 羞辱狗奴的句子有哪些 | 天天干天天操天天爱 | 久久久久一区二区三区 | 日本一级片免费看 | 成人mv | 桃花久久 | 久久99热这里只频精品6学生 | 国产一级特黄毛片 | 91精品国产一区二区无码 | √资源天堂中文在线视频 | 欧洲精品码一区二区三区免费看 | 国产精品国产精品国产专区不片 | 成人黄色免费网站 | 九色免费视频 | 亚洲最新在线 | 爱操影院 | 国产偷人爽久久久久久老妇app | 黄色成人毛片 | 香蕉国产精品 | 欧美熟妇精品黑人巨大一二三区 | 一级特黄a大片免费 | 又污又黄的网站 | 三级网站视频 | 欧美毛片在线 | 成人免费毛片aaaaaa片 | 好男人网站 | 艳妇乳肉豪妇荡乳av无码福利 | 性午夜| 欧美在线观看不卡 | av操操| 50一60岁老妇女毛片 | 超碰超碰超碰超碰超碰 | 亚洲天堂成人在线 | av网站在线免费观看 | 午夜在线一区 | 人人妻人人澡人人爽人人dvd | 超碰资源在线 | 在线天堂网| 欧美成年人视频 | 日韩精品一区二区三区在线 | 欧美一区| 天堂av在线免费观看 | 诱夫1v1高h | 91成人一区二区三区 | 国产丰满大乳奶水在线视频 | 蝌蚪久久 | 亚洲欧美在线看 | 亚洲精品一区二区三区四区 | 哪个网站可以看毛片 | 国产午夜精品福利 | 乱色精品无码一区二区国产盗 | 久久久久久久久久一级 | 日批的视频 | 女人性高潮视频 | 国产精品久久久久免费 | 1000部av | 午夜不卡av免费 | 欧美一区三区 | 女女同性被吸乳羞羞 | 午夜影院在线观看视频 | 台湾综合色 | 特一级黄色大片 | 激情亚洲色图 | 国产黄色自拍视频 | 香蕉91视频| 色五婷婷 | 美女视频黄的免费 | 婷婷色基地 | 另类天堂av | 天天av天天翘 | 国产6区| 97超碰国产在线 | 激情久久网 | 视频这里只有精品 | 日本中文字幕在线观看视频 | 光溜溜视频素材大全美女 | aaa亚洲精品 | 色综合视频 | 欧美一级影院 | 欧美日韩精品在线播放 | 久久av一区二区 | 欧美久久久久久久久中文字幕 | 中文在线а√在线8 | 女同vk| 91免费版黄色 | 青青草视频成人 | 国产又粗又猛又爽又 | 亚洲品质自拍视频网站 | 国内久久精品 | 天天射av| 精品肉丝脚一区二区三区 | 免费观看一区二区三区 | 经典一区二区三区 | 成人a在线观看 | 国产精品综合网 | 日本欧美不卡 | 在线观看国产成人 | 婷婷色婷婷 | 一级性生活黄色片 | 国产精品视频区 | 久久久久亚洲AV | 中文字幕丰满乱子伦无码专区 | 人人搞人人干 | 免费毛片基地 | 日韩欧美亚洲国产 | 尤物精品在线 | www.av网| 日本黄色不卡视频 | 日韩精品免费一区二区三区竹菊 | 欧美一页 | 精品久久无码中文字幕 | 四虎永久在线精品 | 国产成人无码精品久久二区三 | 国产情侣一区 | 快乐激情网 | 亚洲一区免费看 | 免费在线看污 | 亚洲无码精品在线观看 | 国产xxxx在线观看 | 午夜影院在线观看视频 | 亚洲免费在线看 | 男女啪啪十八 | 中文亚洲av片在线观看 | 久久影院精品 | 中文字幕777| 成年人免费观看网站 | 成为性瘾网黄的yy对象后 | 国产中年熟女高潮大集合 | 欧美熟妇一区二区 | 欧美高清精品一区二区 | 在线欧美成人 | 深夜福利免费观看 | 免费一级欧美片在线播放 | 成年人激情网站 | 69视频国产| 久久久久久久久99 | 99这里只有精品视频 | 在线视频欧美日韩 | 日韩怡春院 | 无码国产精品高潮久久99 | 欧美色图在线播放 | 亚洲欧美成人 | 国产在线精品播放 | 中文字幕2021 | www.色日本| 艳妇乳肉豪妇荡乳av | 操模特 | 中文在线免费视频 | 都市激情一区 | 一区二区三区四区在线观看视频 | 先锋影音男人 | 毛片网在线观看 | 国产女女调教女同 | 国产综合在线观看 | 中文字幕在线观看免费视频 | 美女网站全黄 | 激情导航| 青娱乐福利视频 | 久久免费少妇高潮久久精品99 | 国产精品jizz | 热热热av| 欧美性猛交xxxx黑人 | 国产精品老熟女一区二区 | 婷婷久久五月 | 自拍亚洲国产 | 精品久久久久久久久久久久久久久久久久 | 全部免费毛片在线播放 | 久久五月视频 | 亚洲美女www午夜 | 国产精品午夜在线 | 老司机免费视频 | 奇米777视频| 日韩手机视频 | 国产人妻大战黑人20p | 在线观看wwww | 国产又粗又大又爽 | 欧美大片在线观看 | 波多野结衣视频播放 | 天堂在线中文网 | 成人久久免费视频 | 天天干b| 国模av | 中文字幕不卡av | 久草免费在线视频观看 | 九九九九精品 | 香蕉久久影院 | 欧美久久激情 | 中日韩黄色大片 | 在办公室被c到呻吟的动态图 | 日本少妇色 | 校园春色亚洲色图 | 波多野结衣一区在线 | 久久私人影院 | 色狠狠av | 91tv国产成人福利 | 欧美成人免费在线观看 | 精品少妇一区二区三区 | 国产精品久久久久久久久毛片 | 国产成人精品一区二区三区四区 | 亚洲热在线观看 | 草久在线观看 | 少妇毛片一区二区三区 | 中文字幕av高清 | 国偷自产视频一区二区久 | 尤物193.com| 色噜噜国产精品视频一区二区 | 成人手机在线播放 | 中文字幕一区二区人妻 | 手机看片福利在线 | 一本色道久久88亚洲精品综合 | 美女色综合 | 天天躁日日躁aaaxxⅹ | 香蕉视频成人在线 | 高清一二三区 | 欧美日韩国产精品 | 亚洲福利视频一区 | 欧美少妇一区 | 亚洲婷婷在线观看 | 山外人精品影院 | 日韩五月天 | 欧美日韩国产精品成人 | 无码人妻精品一区二区三应用大全 | 午夜一级在线 | 亚洲精品乱码久久久久久麻豆不卡 | 亚洲成人va| 女优一区 | 成人男女视频 | 国产又粗又硬 | 欧美影院一区二区三区 | 中文字幕人成乱码在线观看 | 嫩草网站 | 亚洲一区二区三区高清 | 永久免费av网站 | 亚洲乱码视频 | 99综合在线 | 免费看片视频 | 久久99精品波多结衣一区 | 在线不卡免费视频 | 大奶子在线观看 | 中文字幕33页 | 午夜少妇 | 欧美日本三级 | 五月婷婷色综合 | 激情综合激情五月 | av电影在线不卡 | 久热只有精品 | 四虎免费视频 | 91视频在线网站 | 啦啦啦视频在线观看 | 日本久久综合 | 日韩高清一区二区 | 久久国产香蕉视频 | www国产在线 | 狠狠操狠狠操 | 色噜噜日韩精品欧美一区二区 | 1000部啪啪未满十八勿入超污 | 天堂久久久久 | 亚洲精品一区二区三区蜜臀 | 麻豆视频国产 | 日本天堂在线视频 | 男人网站在线观看 | 黄色成人在线 | a级片在线播放 | 超碰在线超碰 | av在线黄色 | 美国一级黄色大片 | 日本一二区视频 | 名校风暴在线观看免费高清完整 | 邻居交换做爰2 | 97中文字幕 | 视频h在线 | 操xxxx| 午夜亚洲福利 | 女人被灌满精子 | 欧美性猛交aaaa片黑人 | 国产伦精品免费视频 | 亚洲中文字幕一区二区 | 亚洲鲁鲁| 亚洲一区视频在线 | 免费看污片网站 | 香蕉视频在线观看免费 | 国产片网址 | 99re这里都是精品 | 手机成人在线 | 男女做那个视频 | 伊人狠狠 | 欧美熟妇精品黑人巨大一二三区 | 亚洲乱妇 | 69中国xxxxxxxxx69 国产在成人精品线拍偷自揄拍 | 国产伦精品一区二区三区视频孕妇 | 玩日本老头很兴奋xxxx | a级黄色小说 | 精品一区二区精品 | 香蕉视频免费在线 | 亚洲电影一区二区 | 麻豆蜜臀 | 少妇粉嫩小泬白浆流出 | 国产女人高潮毛片 | 一级黄色影院 | 爱爱免费视频网站 | 国产一级免费 | 成人国产 | 久热精品视频在线 | 少妇精品一区二区三区 | 久久精品综合网 | 亚洲欧美日韩另类 | 人妻一区二区三区免费 | 免费的性爱视频 | 国产美女啪啪 | 成人音影 | 天天射日| av日日夜夜 | 精品国产av色一区二区深夜久久 | 97成人精品 | 香蕉视频官方网站 | 伊人啪啪 | 多毛的亚洲人毛茸茸 | 黑森林av | 91丨九色丨蝌蚪丨对白 | 亚洲涩涩| 亚洲无人区码一码二码三码的含义 | 天天添天天射 | 国产免费久久精品国产传媒 | 大地资源二中文在线影视观看 | 黑人一区 | 精品国自产在线观看 | 成年女人免费视频 | 变态视屏 | 美女高潮网站 | 人人插人人 | 久久精品九九 | 天天爽天天爽天天爽 | 精国产品一区二区三区a片 99小视频 | 找个毛片看看 | 亚洲欧美另类中文字幕 | 欧美xxxx日本和非洲 | 好大好爽好舒服 | 日本黄页网站 | va欧美| 色婷婷色婷婷 | 国产精品日韩在线 | 日韩制服在线 | 动漫美女被吸乳奶动漫视频 | a级在线免费观看 | 午夜亚洲福利在线老司机 | 狠狠干天天干 | 婷婷色中文网 | 中文字幕乱码亚洲精品一区 | 大奶av | 国产精品久久久久久久久久免费 | 东京干手机福利视频 | 粉色视频免费观看 | 麻豆app在线观看 | 亚洲精品久久久狠狠狠爱 | 亚洲精品9999 | 免费视频污 | 综合av第一页| 日韩精品视频在线免费观看 | 日韩欧美中 | 又黄又爽又色的视频 | 久久一级大片 | 麻豆国产精品视频 | 91理论片午午伦夜理片久久 | 成年人在线免费 | 开元在线观看视频国语 | 91美女视频网站 | 欧美成人三级在线 | 欧美贵妇videos办公室 | 久久综合一区二区 | 国产乱xxⅹxx国语对白 | 农村妇女一区二区 | 亚洲夜夜爱 | 免费毛片软件 | 免费观看日韩毛片 | 欧美人与性动交g欧美精器 韩日黄色 | 中文毛片| 久久久无码人妻精品无码 | 美丽的姑娘在线观看免费 | 日本中文字幕免费观看 | 强开乳罩摸双乳吃奶羞羞www | 美女张开腿露出尿口 | 亚洲免费一级片 | 亚洲久久在线观看 | 欧美视频一二区 | 精品久久久久久久久久久久久 | 天堂网avav | 无码aⅴ精品一区二区三区浪潮 | 99久久精品国产一区二区成人 | 狗爬女子的视频 | 在线观看视频色 | 久久久久久久久久久久久久久久久久久 | 特黄一级片 | 超碰极品 | 香蕉福利 | 精品999久久久一级毛片 | 永久免费在线 | 欧美激情成人网 | 日日夜夜操操操 | 色情毛片| 国家队动漫免费观看在线观看晨光 | 免费成人高清视频 | 欧美无马| 国产亚洲精品成人a | 长腿校花无力呻吟娇喘的视频 | 波多野结衣中文字幕一区二区 | 国产剧情av在线播放 | 久久久久久久亚洲精品 | 三级小视频在线观看 | 在线免费观看av网址 | 久久精品视频网 | 日本中出视频 | 中文在线视频 | 中文字幕av第一页 | 狠狠干网站 | 欧美在线性视频 | 免费一级特黄特色大片 | 国内精品久久久 | 丰满熟女人妻一区二区三区 | 在线观看色网站 | 99re视频在线 | 黄网在线免费观看 | 欧美二区视频 | 毛片网| 第一章激情艳妇 | 99热这 | 中文字幕久久熟女蜜桃 | 国产亚洲精品女人久久久久久 | 鲁丝一区二区 | www青青草 | 年代下乡啪啪h文 | 亚洲一二三区在线观看 | 99热日韩| 欧洲一区二区三区四区 | 尤物精品 | 97超碰免费在线观看 | 亚洲第一a | 一级性毛片 | 欧美激情爱爱 | h片在线观看免费 | 内地毛片 | 国产免费黄网站 | 第一次破处视频 | 婷婷久久五月天 | 激情草逼 | 伊人98 | 最全aⅴ番号库 | 91成人免费视频 | 玖玖在线视频 | 日韩av手机在线播放 | 日本a在线播放 | 国产日产精品一区二区三区四区 | 中文字幕日本人妻久久久免费 | 美女隐私免费网站 | 夜色在线视频 | 91国内精品| 成人免费在线观看 | 91成人福利视频 | 亚洲一级一区 | 国产午夜精品一区二区三区嫩草 | 各处沟厕大尺度偷拍女厕嘘嘘 | 天天爽视频| 日韩一区二区三区四区五区 | 性网爆门事件集合av | 波多野结衣激情视频 | 欧美亚洲国产一区 | 免费日韩视频 | 91大神在线观看视频 | 在线观看日韩视频 | 天天躁夜夜躁av天天爽 | 美女av在线播放 | 麻豆精品久久久久久久99蜜桃 | 中文字幕婷婷 | 欧美浮力影院 | 日本一级黄色 | 91九色pron | 日韩国产成人在线 | 欧美性生交xxxxx久久久 | 丰腴饱满的极品熟妇 | 综合人人| 国产欧美一区二区三区精华液好吗 | 九色在线播放 | 视屏一区 | 欧美无砖砖区免费 | 福利社午夜影院 | 自拍偷拍一区 | 精品中文字幕在线观看 | xxxxxhd亚洲人hd| 国产成人av在线 | 波多野在线 | 大尺度在线观看 | 欧美高清在线视频 | 国产成人亚洲精品 | 日本加勒比一区 | 啦啦啦视频在线观看 | 亚洲综合色视频 | 免费不卡的av | 日本一区二区在线免费观看 | 免费黄色网址在线 | 国产精品婷婷午夜在线观看 | 亚洲一区欧美二区 | 一区福利视频 | 日韩久久久久久久 | 免费福利av | 四季av在线一区二区三区 | 99精品国产99久久久久久97 | 黄色国产视频 | 人人艹在线 | 色人阁婷婷 | 极品销魂美女少妇尤物 | ktv做爰视频一区二区 | 日韩在线播放一区 | 国产成人小视频 | 91丝袜呻吟高潮美腿白嫩在线观看 | 伊人网大| 人人爱人人草 | 久久手机看片 | 人妻少妇偷人精品视频 | 神马午夜场 | 动漫美女被x | 亚洲视频一区二区三区 | 好色视频tv| 日韩久久网| 国产欧美一区二区三区视频在线观看 | 黑人借宿巨大中文字幕 | 久久久无码人妻精品无码 | 日韩综合av| 越南a级片 | 中文字幕在线免费视频 | 日本精品一区二区三区四区的功能 | 一区二区视屏 | 成人一级网站 | 中文字幕第一页久久 | 蜜桃tv在线观看 | 亚洲色偷偷综合亚洲av伊人 | 国产成人无码一区二区三区在线 | 天天射天天操天天干 | 无套内谢少妇高潮免费 | 操操操操操操操 | 亚洲第一毛片 | 精品久久久久久久久久久 | 91美女在线视频 | 国产99在线播放 | 人人妻人人澡人人爽人人dvd | jizz处女| 99re视频这里只有精品 | av站| 麻豆av一区二区三区 | 国产精品美女久久久久图片 | 激情婷婷| 涩天堂| 黄色片网站在线免费观看 | 女人裸体又黄 | 久久丁香| 一二三区不卡 | 亚洲爽爽 | 日本爽爽爽 | 日韩一级片在线观看 | 欧美高清性 | 九七在线视频 | 女人洗澡一级特黄毛片 | 欧美日韩精品二区 | 伊人春色在线视频 | 欧美高清在线 | 有码在线 | 久久女人 | 蜜桃久久久久久久 | 久久99精品久久久久久琪琪 | 91精品国产91久久久久福利 | 久久久久久国产精品 | 欧美久久综合 | 香蕉久久久久久 | 欧美日韩国产精品一区二区 | 一二三区av| 久久99九九| 免费麻豆 | 免费在线黄色网址 | 欧美囗交做爰视频 | 国产精品自拍网 | 韩国妻子的朋友 | 香蕉视频网站在线观看 | 国产顶级毛片 | 青青草一区 | 花房姑娘免费全集 | 免费福利在线视频 | 美国三级a三级18 | 玖玖在线| 涩涩视频在线观看 | 国产乱码一区二区三区 | 日韩有码一区二区三区 | 国产一区二区在线视频观看 | 国产精品视频观看 | 性av网| 人人射人人干 | 超碰天天| 99在线精品视频 | 超碰在线公开免费 | 一区www | 成年人在线网站 | 不卡精品 | 国产成人自拍偷拍 | 久久99久久精品 | 亚洲精品在线免费 | 天堂网视频在线观看 | jizjiz中国少妇高潮水多 | 麻豆国产尤物av尤物在线观看 | 经典杯子蛋糕日剧在线观看免费 | 成人hd | 亚洲一区二区三区人妻 | 波多野结衣一区在线 | 国产美女极度色诱视频www | 日剧再来一次第十集 | 日本伦理中文字幕 | 精品一区二区电影 | 亚洲国产一区二区a毛片 | 久久久国产片 | 青娱乐国产在线视频 | 日韩操 | 黄在线免费| h视频免费在线观看 | 中文字幕影院 | 99re只有精品 | 中文字幕1| 亚洲自拍小视频 | 欧美成人精品一区二区三区在线观看 | 精品国产aⅴ一区二区三区四川人 | 欧美综合网站 | 丰满人妻一区二区三区在线 | 国产香蕉在线 | 国产精品一区二区久久 | 天堂网2014av | 欧美a v在线 | 性做爰裸体按摩视频 | 日韩成人高清视频 | 日韩一级黄色录像 | 欧美亚洲精品在线 | 国产91麻豆视频 | 美色视频 | 人物动物互动39集免费观看 | 日韩黄色一级片 | 黄色短视频在线观看 | 日韩欧美高清在线观看 | 中文字幕在线色 | 成人亚洲国产 | 体内射精一区二区 | 色婷婷成人 | 亚洲成在人 | 日韩在线播放一区 | 999视频 | 一级片在线视频 | 懂色av成人一区二区三区 | 天堂网在线中文 | 国产乱国产乱老熟 | 日韩精品久久久久久久电影99爱 | 亚洲乱码一区二区三区在线观看 | 青青草手机视频在线观看 | 国精产品一二三区精华液 | 国产最新av | 天天色影网 | 99热免费观看 | 欧美日韩国产一中文字不卡 | 国产资源第一页 | 国产偷人妻精品一区二区在线 | 少妇一级1淫片 | 不许穿内裤随时挨c调教h苏绵 | 色屋视频| 三级网站在线免费观看 | 亚洲乱码在线 | 重口h文| 伊人久久久久久久久久 | 亚洲精品一区二区潘金莲 | 女久久| 毛片毛片毛片毛片毛片毛片毛片毛片 | 变态另类丨国产精品 | 日韩中文字幕av在线 | 久久久亚洲天堂 | 欧美第十页 | 亚洲AV综合色区无码国产播放 | 日韩一区二区三免费高清在线观看 | 亚洲美女视频在线 | 日韩亚洲天堂 | 怨女1988国语版在线观看高清 | 女生被男生c | 日本欧美一级 | 91精品国产色综合久久不卡电影 | 中文字幕福利 | 超碰免费看 | 又黄又免费的视频 | 国产精品久久久久久无人区 | 一区二区三区免费看 | 樱花草av | 成人欧美一区二区三区在线播放 | 亚洲精品免费av | 成人依依网 | 国产浮力影院 | 婷婷国产在线 | 青草精品视频 | 一二三av | 亚洲婷婷在线 | 天天碰视频 | 一区二区三区欧美视频 | 午夜久久久久久久久久影院 | 成人高潮片 | 久久久久国产一区二区三区潘金莲 | 女人的天堂av在线 | 欧美一级免费片 | 91国内精品野花午夜精品 | 亚洲乱轮| 亚洲天堂黄 | 亚洲熟妇无码久久精品 | 国产不卡一 | 99人妻碰碰碰久久久久禁片 | 久久影院一区 | a免费在线| 婷婷色五 | 色播视频在线 | 老地方在线观看免费动漫 | 日本91网站| 91手机视频在线观看 | 亚洲精品合集 | 91网站在线观看视频 | 色八区 | 丰满少妇一区二区三区专区 | 亚洲国产精品无码久久 | 日韩精品1 | 成人一区二区视频 | 日日射视频 | 天天躁夜夜躁狠狠是什么心态 | 国产精品一区二区在线 | 欧美精品一区在线发布 | 91麻豆精品国产91久久久久久久久 | 亚洲激情偷拍 | 亚洲色图日韩 | 国产精品久久在线观看 | 中文字幕人妻一区二 | 超碰福利在线 | 日韩欧美一区在线观看 | 欧美色视频在线观看 | 国产精品欧美性爱 | 黄网站在线观看视频 | 新版红楼梦在线高清免费观看 | 大地资源在线观看免费高清版粤语 | 国产一区二区日韩 | 美国黄色一级毛片 | 青青草成人免费视频 | 欧美一区二区三区免费 | 日本激情网站 | 亚洲欧洲日韩综合 | 97在线播放| 日本免费a级片 | 国产三级大片 | 黑人黄色一级片 | 初尝情欲h名器av | 中国免费一级片 | 国产极品视频在线观看 | 伊人热久久 | 久久91精品 | av在线www| 午夜精品久久久久久久久久久久久蜜桃 | 91久久爽久久爽爽久久片 | 国产伦精品一区二区三区妓女下载 | 高清欧美性猛交xxxx黑人猛交 | 青草99| 国产山村乱淫老妇女视频 | 一级性毛片 | 亚洲88| 欧美性啪啪 | 国产精品腿扒开做爽爽爽挤奶网站 | 精品久久久久久久久久久久久 | 欧美三级自拍 | 亚洲国产精品成人无久久精品 | 精品国产一区二区三区性色av | 五月婷婷爱 | 性色视频| 日韩在线观看你懂的 | 人妻夜夜爽天天爽 | 久久夜色精品国产噜噜亚洲av | 毛片一区二区 | 亚洲国产tv | 性农村xxxxx小树林 | 成人av一区二区在线观看 | 国产小精品 | 色综合久久久久久久 | 欧美日日夜夜 | 国产精品久久久久国产a级 91香蕉视频黄色 | 久久精品观看 | 麻豆三级 | 欧美人喂奶吃大乳 | 四虎最新站名点击进入 | 国产一区二区三区三州 | 国产一区二区视频在线 | 日本高清黄色 | 国产视频一区二区在线播放 | 精品久久综合 | 成人午夜影视在线观看 | 污污视频在线观看免费 | 中国黄色片视频 | 强行挺进白丝老师里呻吟 | 亚洲欧美日韩动漫 | 欧美影院一区二区 | 粗大黑人巨茎大战欧美成人免费看 | 青青草视频污 | av大片网址 | 日本视频在线免费观看 | 中文字幕伦理 | www.com色 | 欧美一区二区三区黄片 | 亚洲,国产,日韩,综合一区 | 国产亚洲91 | 国产欧美日韩高清 | 成人99 | 高h调教冰块play男男双性文 | 中文字幕理伦片免费看 | 日韩片在线观看 | 精品一区国产 | 久久中文网 | 亚洲欧洲成人 | 日韩超碰在线 | 国产乱淫av | 亚洲天堂成人在线 | 午夜少妇av | 国产精品传媒在线观看 | aaaa免费视频| 色妞综合 | 日韩在线观看视频网站 | 性爱视频日本 | jlzzjlzz国产精品久久 | 天海翼中文字幕 | www.蜜臀av.com| 婷婷在线视频 | 黄网av | 手机在线看片福利 | 国产黄色片在线观看 | 无码视频一区二区三区 | 午夜影院免费看 | 在线看毛片网站 | 久久激情片 | 四虎影院污 | 中文字幕h | 欧美亚洲国产一区二区三区 | 一级片播放 | 国产免费av电影 | 亚洲精品乱码久久久久久久久久久久 | 久视频在线 | 成年人拍拍视频 | 男生c女生 | 亚洲欧美国产精品久久久久久久 | 性自由色xxxx免费视频 | 国产精品视频区 | a级片免费视频 | 又大又粗欧美黑人aaaaa片 | 男人午夜免费视频 | 国产一区二区精品久久 | 欧美自拍第一页 | 国产毛片不卡 | 午夜视频在线观看网站 | 日韩在线观看免费全 | 婷婷狠狠干 | 国产伦理一区二区 | 国产成人三级在线观看视频 | 日日日夜夜操 | 天堂网视频在线观看 | 国产欧美视频在线观看 | 国产精品一区二区久久 | 色妞视频 | 亚洲va国产天堂va久久 en | 亚洲AV午夜福利精品一级无码 | 精品免费囯产一区二区三区 | 精品人妻一区二区三区麻豆91 | 欧美另类激情 | 91麻豆视频网站 | 私人av| 九九三级 | 影音先锋成人资源网 | 欧美黑人一级 | 精品视频一二区 | 欧美综合图片 | 蜜桃av成人永久免费 | 午夜资源| 久久久久久无码精品人妻一区二区 | 女性裸体无遮挡胸 | 伊人青青草视频 | 黄色片毛片 | 亚洲熟妇无码乱子av电影 | 日日人人| av在线播放网址 | 国产偷拍一区二区三区 | 国产极品久久 | 国产www在线观看 | 国产高清视频在线观看 | 欧美成人性生活视频 | 久久黄色网络 | 成人羞羞网站 | 久久精品老司机 | 免费黄色片网站 | 色婷婷六月天 | 欧美最黄视频 | 国产又黄又大又粗的视频 | 三级黄网站 | 毛片aa| 国产三级在线观看完整版 | 亚洲人免费 | 99久久国产免费 | 日本特黄色片 | 久久免费在线观看视频 | 免费的av网址 | 久久久久久穴 | 山外人精品影院 |