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. }

免费看黄色漫画 | 亚洲成年人网 | 欧美激情免费在线观看 | a级在线视频 | 中文字幕免费观看视频 | 夜色导航 | 9l视频自拍九色9l视频成人 | 99久视频 | 最新日韩精品 | 最好看十大无码av | 国产成人精品视频 | 午夜色影院 | 尤物视频在线观看国产性感 | 久久免费国产视频 | 在线一区 | 色中色在线视频 | 中文字幕乱码一区二区 | 色吧在线观看 | 免费欧美视频 | av手机在线免费观看 | 国产日韩欧美综合 | 玖玖精品视频 | 久久草国产| 99热国内精品| 爱操在线 | 黄色高清视频在线观看 | 综合激情网站 | 亚洲 欧美 另类 综合 偷拍 | 777理伦三级做爰 | 精品久久不卡 | 久久特级毛片 | 国产aⅴ精品一区二区三区久久 | 3级av| 高清二区 | 污污的视频网站在线观看 | 久久久久亚洲av无码专区首jn | 日韩激情视频在线观看 | 国产精伦 | 国产精品av久久久久久无 | 永久免费成人代码 | 少妇久久久久久 | jizz日本免费| 欧美少妇18p | 亚洲图片欧美色图 | 国产欧美日韩综合精品一区二区 | 亚洲最新在线视频 | 毛片毛片毛片毛片 | 成人理论片 | 国产精品久久久久久久久免费相片 | 明日花绮罗高潮无打码 | 玖玖精品在线 | 青青福利视频 | 国产精品电影在线观看 | 极品尤物魔鬼身材啪啪仙踪林 | 在线播放免费av | 97人妻精品一区二区三区动漫 | 黄色日b片 | 欧美激情视频一区二区三区在线播放 | 日本在线小视频 | www.夜夜爽 | 欧美性啪啪 | 国产成人97精品免费看片 | 成人h在线观看 | 国产精品中文字幕在线 | 夜夜看av| 五月婷中文字幕 | 麻豆 美女 丝袜 人妻 中文 | 热逼视频| missav | 免费高清av在线看 | 四川丰满少妇被弄到高潮 | 高清国产一区二区三区四区五区 | 日本国产一区二区三区 | 国产哺乳奶水91在线播放 | 成人中文字幕在线观看 | 风间由美一区二区三区 | 中文字幕8 | 日韩天堂在线 | 国产在线观看一区二区三区 | 精品一区二区三区视频 | 欧美一区二区三区在线看 | 亚洲精品一区二区三区精华液 | 超碰在线进入 | 久久视频这里只有精品 | 曰韩在线 | 女女h百合无遮羞羞漫画软件 | 亚洲一本之道 | 国产精品网站在线观看 | 69国产精品视频免费观看 | 日本少妇aaa | 久久青草视频 | 欧美一区二区三区四区五区六区 | 日韩一区中文字幕 | 桃花岛影院 | 欧美三级午夜理伦三级小说 | 91视频久久 | 色乱码一区二区三区在线男奴 | 日韩资源站 | 日韩大片免费观看视频播放 | 日韩精品一区二区三区国语自制 | 日本亚洲一区二区 | 久久精品66| 亚洲不卡影院 | 日本一区二区三区中文字幕 | 五月中文字幕 | 欧美一卡二卡在线 | 色图综合网 | 在线观看a视频 | 日韩欧美在线免费观看 | 香蕉国产在线 | 9l视频自拍蝌蚪9l视频成人 | 免费网站成人 | 97久久精品人人澡人人爽 | 4438色 | 风韵少妇spa私密视频 | 无码人妻精品一区二区三区温州 | 厨房性猛交hd | 91视频在线免费看 | 亚洲欧美视频 | 99精品久久| √天堂资源地址在线官网 | 日韩av资源 | 亚洲精品v日韩精品 | 日韩欧美激情 | 理论片午夜 | 欧美激情性生活 | 中文字幕网站在线观看 | av看片| 婷婷丁香色 | 亚洲啪| 欧美mv日韩mv国产 | 日韩欧美高清视频 | 五月婷婷丁香网 | 日韩a级片在线观看 | 日韩久久一区二区三区 | 香蕉视频在线免费 | 国产精品自产拍在线观看 | 夜色综合| 麻豆精品国产传媒mv男同 | 国产成人av网站 | 伊人开心网 | 精品小视频在线观看 | 日本成人一区二区三区 | 五月激情久久 | 午夜精品导航 | 亚洲影视一区二区三区 | 欧美成人动态图 | 黄色小视频免费观看 | 欧美一区二区三区在线视频 | 蜜桃视频欧美 | 欧美亚洲激情 | 偷拍精品一区二区三区 | 一区二区不卡视频 | mm131美女大尺度私密照尤果 | 欧美性猛交aaaa片黑人 | 久一在线 | 国产一级片毛片 | 久久在线精品 | 菠萝菠萝蜜网站 | 欧美视频福利 | 久久911 | 亚洲伦理精品 | 上原亚衣在线观看 | 精品999久久久一级毛片 | 77久久| 中文字幕乱码一区二区三区 | 欧美一区三区二区在线观看 | 亚洲女同av | 久久久国际精品 | 波多野结衣一区二区在线 | 亚洲美女一区 | 久久网站视频 | 欧美粗暴jizz性欧美20 | 天天干夜夜草 | 美女自拍偷拍 | 92国产精品| 在线免费看黄色片 | 成年人a级片 | 中文字幕永久在线 | 自拍偷自拍亚洲精品播放 | 色婷婷综合久久 | 啦啦啦视频在线观看 | 精品一区二区三区视频 | 国产乱码av | 中文无码av一区二区三区 | 蜜桃成熟时李丽珍在线观看 | 国产精品v欧美精品v日韩精品 | 国产女人18毛片水真多18精品 | 亚洲 欧美 另类 综合 偷拍 | 超碰人人艹 | 久草视频在线播放 | 免费特级毛片 | 午夜av免费在线观看 | 国产卡一卡二卡三无线乱码新区 | av资源免费观看 | 风韵多水的老熟妇 | 丰满少妇一区二区 | 中文字幕在线网 | 久爱视频在线观看 | 日本理论中文字幕 | 国产91丝袜在线播放0 | 日韩av在线看免费观看 | 国产精品资源在线观看 | 欧美国产日韩一区二区 | 诱夫1v1高h | 麻豆成人91精品二区三区 | avtt2015| 欧美激情在线观看 | 国产精品亚洲一区 | 黄色小网站入口 | 午夜精品久久久久久久99热浪潮 | 九色porny原创自拍 | 综合网五月天 | 亚洲一区二区三区网站 | 成人综合一区二区 | 日本吃奶摸下激烈网站动漫 | 四虎国产精品成人免费入口 | 国产主播啪啪 | 中国女人真人一级毛片 | 黄色美女免费网站 | 欧美一级免费视频 | 中文字幕一区二区三 | 灌篮高手全国大赛电影 | 中文字幕视频观看 | 亚洲av高清一区二区三区 | 久久99热人妻偷产国产 | 五月花婷婷 | 国产麻豆精品在线观看 | av中文字幕网址 | 国产精品无码一区 | 无遮挡黄色 | 中国久久久 | 亚洲免费成人在线 | 国产一区二区女内射 | 好色先生视频污 | 成年人免费高清视频 | 福利电影一区二区 | 欧美又粗又深又猛又爽啪啪九色 | 中文字幕33页| 综合狠狠开心 | 欧美男同又粗又长又大 | 99热都是精品 | 国产一级黄色录像 | 奇米影视第四色7777 | 亚洲精品免费网站 | 国产骚b| 日韩一级免费视频 | 97se.com| 精品少妇久久久久久888优播 | 欧美黄色一级 | 国产免费av电影 | 黄页免费视频 | 91九色国产视频 | 人人妻人人澡人人爽人人dvd | avt天堂网| 奇米影视首页 | 青青草免费公开视频 | 亚洲最新偷拍 | 免费国产91 | 国产亚洲精品码 | 精品视频久久久 | 一区二区在线视频 | www国产| 欧美一区二区三区电影 | 国产一区啪啪 | 精品无码久久久久 | 影音先锋在线中文字幕 | 成人免费视频网址 | 日韩在线观看视频一区二区 | av大片免费观看 | 国产欧美一区二区精品性色 | 国产精品一区二区电影 | 欧洲熟妇的性久久久久久 | 国内av在线播放 | 在线观看国产一区 | 特级av片| 四虎综合| 国产成人99 | 日本护士毛茸茸 | 成人在线免费视频 | 国产精品免费大片 | 艳妇乳肉豪妇荡乳av | 国产精品果冻传媒 | 韩国av免费在线观看 | 日本r级电影在线观看 | 亚洲国产精品无码久久久久高潮 | 欧美区亚洲区 | jizz中国女人高潮 | 久久av无码精品人妻系列试探 | 一区二区在线视频 | 亚州成人 | www超碰 | aaaa毛片| 日韩中文字幕在线观看 | 日韩逼| 免费观看黄色网 | 浓精喷进老师黑色丝袜在线观看 | 风间由美一区 | 日韩啪啪网 | 精品无人区无码乱码毛片国产 | 国产在线www | 欧美大片xxx| 一级α片免费看刺激高潮视频 | 欧美日韩啪啪 | 一二三区在线视频 | 六月色播| 精品人妻互换一区二区三区 | 日本高清不卡视频 | 亚洲国产精品久久久久爰性色 | 欧美激情精品久久久久久变态 | 91麻豆精品一区二区三区 | 亚洲jizzjizz日本少妇 | 琪琪色网 | 嫩草影院国产 | 久久亚洲精品石原莉奈 | 欧美日韩亚洲二区 | 97人妻一区二区精品免费视频 | 五十路在线视频 | 能直接看的av | 国产人久久人人人人爽 | 精品视频免费 | 无码人妻丰满熟妇区毛片蜜桃精品 | 久久妇女 | 秋霞黄色片 | 初尝黑人巨炮波多野结衣 | 最新视频 - 8mav | 天天天色综合 | 欧美另类专区 | 香蕉视频啪啪 | 久久精品夜| 亚洲国产中文字幕在线观看 | 97人妻精品一区二区三区 | 欧美成人日韩 | 欧美性天天影院 | 午夜免费福利视频 | 天天做天天爱天天爽 | 国产aⅴ精品一区二区三区久久 | 中文字幕免费在线观看视频 | 亚洲精品一区二区三区四区五区 | 99这里有精品 | 亚洲综合区 | wwwxxx在线| 伊人久久中文字幕 | 91福利在线播放 | 艳妇臀荡乳欲伦交换在线看 | 色一情一区二区三区四区 | 久久视频一区 | 国产乱仑| 欧美视频在线播放 | 男人添女人荫蒂国产 | 精品久久久久久久久久久久久久 | 久久国产精品久久精品国产 | 熟女熟妇伦久久影院毛片一区二区 | 韩国一级一片高清免费观看 | 国产精品久久久久久久午夜 | 成人看片泡妞 | 成人h动漫精品一区二区下载 | 免费中文字幕在线观看 | 日韩精品成人 | 久久综合狠狠 | xxx国产精品 | 亚洲欧美999 | 少妇人妻丰满做爰xxx | 人妻激情偷乱视频一区二区三区 | av日日操 | 欧美在线日韩 | 91这里只有精品 | 欧美国产日韩一区二区 | 三级黄色在线 | 日韩一级黄色录像 | 香蕉网av| 国产日韩欧美另类 | 肉肉视频在线观看 | 国产91亚洲| 免费污视频在线观看 | 剧情av在线 | 中文字幕9| 污污内射久久一区二区欧美日韩 | 波多野结衣办公室双飞 | 91久久在线| 午夜少妇久久久久久久久 | 久久久久国产一区二区 | 波多野结衣一区二区三区在线观看 | av成人免费在线观看 | 欧美一区二区国产 | 亚洲第一免费网站 | 少妇一级片 | 久久爱网| 激情超碰| 亚洲无吗在线 | 亚洲乱人伦 | 深夜网站在线观看 | 四虎影院新网址 | 无码人妻一区二区三区一 | 国产91免费视频 | 成人av电影免费观看 | 久久综合爱 | 香蕉视频黄污 | www.第四色 | 在线视频观看一区 | 最新黄色av | 男人天堂a| 裸体裸乳免费看 | 国产精品国产三级国产aⅴ浪潮 | 亚洲特级黄色片 | 五月婷婷激情视频 | 中文乱码人妻一区二区三区视频 | 91高跟黑色丝袜呻吟在线观看 | 在线免费观看高清视频 | 国产微拍精品 | 亚洲AV无码久久精品国产一区 | 色综合色婷婷 | 亚洲精品一卡二卡 | 正在播放欧美 | 精产国品一区二区三区 | 美女狂揉羞羞的视频 | 你懂的av在线 | 中文不卡视频 | 国产伦理一区 | av十大美巨乳 | 亚洲美女综合 | 久久激情小说 | 亚洲在线视频 | 日韩久久久精品 | 男人的天堂免费视频 | 国产精品视频在线观看 | 国产精成人品 | 三级在线免费 | 天天看视频 | 国产成人一区二区三区小说 | www四虎影院| 国偷自产av一区二区三区麻豆 | 久久激情免费视频 | 欧美手机看片 | 国产亚洲色婷婷久久99精品91 | 国产视频一区二区三区在线观看 | 古装做爰无遮挡三级 | 影音先锋亚洲成aⅴ人在 | 97人妻精品一区二区免费 | 美女被啪羞羞粉色视频 | 国产视频入口 | 高清不卡一区二区 | 久久久www | 国产一区二区免费电影 | 中文字幕国产在线观看 | 全黄毛片 | 久久国产精品久久 | 美女又大又黄 | 欧美性生活网 | 91视频在线观看视频 | 国产不卡在线观看 | 亚洲一区二区三区麻豆 | 黄色av网站免费观看 | 精品人妻在线一区二区三区 | 久久免费偷拍视频 | 亚洲一本在线 | 国产精品av一区 | 91成人综合 | a猛片 | 亚洲视频在线观看网站 | 久久av免费观看 | 亚洲精品你懂的 | 大尺度做爰啪啪床戏 | 99久久99久久精品国产片果冰 | 最近2018年手机中文字幕版 | 涩涩视频网站 | 青久草视频 | 国产一区在线看 | 欧美不卡视频 | 法国空姐电影在线 | 操xxxx| 日本人xxxⅹ18hd19hd | 精品在线视频免费观看 | 久操免费在线视频 | 中文字幕久久网 | 很嫩很紧直喷白浆h | 国产精品久久久久久久久久久久久久久久久久 | 成人黄网免费观看视频 | 91在线无精精品白丝 | 亚洲欧美成人网 | 黄色三级小说 | 国产在线一卡二卡 | 91视频在线观看视频 | 国产一级在线观看视频 | 国产3级在线 | 中日韩精品一区二区三区 | 91精品在线免费观看 | 四季av在线一区二区三区 | 国产精品久久久久久久久久久久久久久久久 | 黄色精品视频在线观看 | 大桥未久av在线 | a级片免费观看 | 韩国明星乱淫(高h)小说 | 亚洲精品天堂网 | 久久久午夜精品 | 国产黄色精品 | 亚洲第一免费网站 | av网站在线播放 | 亚洲天堂偷拍 | 国产中文字幕免费 | 少妇激情视频 | 免费看欧美成人a片无码 | 波多野结衣激情视频 | 亚洲熟妇一区二区三区 | 在线观看视频你懂得 | 成人看的毛片 | 久久久久久久穴 | 激情全身裸吻胸 | 97成人人妻一区二区三区 | 邻居少妇张开双腿让我爽一夜 | 日批av| 亚洲第一天堂网 | 中文字幕一区二区三区不卡 | 91高清网站 | 国产中文在线播放 | 丰满女人又爽又紧又丰满 | 打屁股调教网站 | 99riav国产精品| 色老头影视 | 极品美女高潮出白浆 | 精品国产一区二区三 | 六月婷婷色 | 波多野结衣伦理 | 国产精品一区免费 | 最新毛片网 | 色就是色网站 | 一边摸一边抽搐一进一出视频 | 性开放网站| 日本v视频 | 国产精品久久99 | 黄色激情视频在线观看 | 奇米影视777在线观看 | 中文精品久久久久人妻不卡 | 日韩一级片免费在线观看 | 免费av网址大全 | 四虎成人精品永久免费av | 色小妹av| 不卡的av在线播放 | 91成年影院 | 女~淫辱の触手3d动漫 | 免费av网址在线 | 日韩v片| 狂野欧美性猛交xxxx777 | 亚洲啪av永久无码精品放毛片 | 亚洲综人网 | 都市激情亚洲综合 | 日本久久高清 | jizz日本18| 亚洲色图欧美 | 伊人春色在线视频 | 久久久久性色av无码一区二区 | 亚洲国产精品人人爽夜夜爽 | 免费视频网站在线观看入口 | 欧美视频一二三 | 99久久久无码国产精品衣服 | 青草超碰| 中文字幕免费在线看线人动作大片 | 秋霞在线观看秋 | 久久极品视频 | 在线免费观看黄 | 黄页在线播放 | 毛片综合| 岳奶大又白下面又肥又黑水多 | cao久久 | 亚洲v天堂 | 欧美色噜噜 | 嫩模被强到高潮呻吟不断 | 俄罗斯av在线 | 97人妻精品一区二区三区动漫 | 国产91精品一区 | 日本大尺度做爰呻吟 | 国产精品福利小视频 | 久一视频在线观看 | 国产三级视频网站 | 国产精品福利影院 | 国产色视频一区二区三区qq号 | 一区二区三区在线视频播放 | 91亚洲国产精品 | 超碰1000| 1000部啪啪未满十八勿入超污 | 国产亚洲视频在线观看 | 国产成人精品电影 | 奇米成人网 | 黄色一级片一级片 | 欧美色图在线播放 | 日韩高清在线一区 | 97人妻人人揉人人躁人人 | 欧美一线高本道 | 日日干日日 | 好吊色欧美一区二区三区视频 | 91免费视频网址 | 闺蜜张开腿让我爽了一夜 | 福利网址在线观看 | 欧美亚一区二区三区 | 韩国三色电费2024免费吗怎么看 | 欧美色交 | 欧美一级片网址 | 日韩啪啪网 | 日韩精品一区二区亚洲av性色 | 九九热在线视频 | 日韩美av | 深夜国产视频 | 爱情岛论坛亚洲入口 | 日韩欧美aⅴ综合网站发布 在线观看h网站 | 成人h动漫精品一区二区无码 | 黄色小视频在线播放 | 国产在线播放一区二区 | 一边摸上面一边摸下面 | 午夜影院免费看 | 精品视频久久久久久久 | 一级黄色短视频 | 韩国三级中文字幕 | 91福利免费| 欧美一道本 | 亚洲精品www久久久久久广东 | 精品国自产在线观看 | 在线中文字幕视频 | 少妇性生活视频 | 日韩免费高清一区二区 | www久久久久久久 | 自拍偷拍第五页 | 椎名由奈在线观看 | 老色鬼av| 国产黄色片免费观看 | 97干干 | 毛片日韩 | 毛片在线观看网站 | 亚洲va欧美va | 日韩三级视频在线观看 | 国产网址在线 | wwwxx日本 | 日产av在线播放 | 日本xxxx高潮少妇 | 自拍偷拍亚洲精品 | 精品一区二区在线观看 | 9l视频自拍蝌蚪9l视频 | 国产精品作爱 | 午夜av在线 | 国产精品一区二区三区在线免费观看 | 四虎库 | 成人资源在线 | 成人综合色站 | heyzo在线播放 | 免费毛片一级 | 国产精品久久久久aaaa | 色女人影院 | 91们嫩草伦理 | 欧洲综合视频 | 综合av网| 男男做的视频 | 色资源在线观看 | 骚黄网站| 91免费看黄 | 日本99视频 | 91精品久久久久久久久 | 午夜视频精品 | 一区二区三区四区免费观看 | 国产99在线播放 | 国产av剧情一区 | 天天插夜夜 | 日韩成人一级片 | 国产美女久久久久久 | 久操视频免费 | 青青视频网 | 日韩成人免费观看 | 色偷偷网 | av操操| 性欧美精品| 日韩视频在线免费 | 偷拍一区二区三区 | 日韩少妇高潮抽搐 | 国产成人精品免高潮在线观看 | 四虎影院新网址 | 久久婷五月| 台湾极品xxx少妇 | 国产毛片a级 | 国产日韩在线免费观看 | 日韩在线视频网站 | 中文字幕一二区 | 天堂成人 | 欧美精品极品 | 亚洲日本综合 | 亚洲成人第一页 | 欧美精品免费看 | 成人日韩 | 西西人体大胆4444ww张筱雨 | 无码国产精品一区二区免费16 | 日本手机看片 | 亚日韩| 久久观看 | 国产精品v欧美精品v日韩 | 日韩激情| 性生活视频播放 | 中文字幕人妻一区二区三区 | 免费成人电影在线观看 | 在线看麻豆 | 王者后宫yin肉h文催眠 | 国产欧美精品区一区二区三区 | 日韩av区 | 日本在线色 | 久久人 | 国产一区二区视频在线免费观看 | 人人妻人人爽人人澡人人精品 | 亚洲精品白浆 | 国产精品久久久久久久久免费相片 | 国产99久久久国产精品 | 日韩av电影在线播放 | 人人草人人干 | 亚洲欧美国产毛片在线 | 国产三级国产精品 | 精品少妇一区二区三区密爱 | 激情午夜av | 无码人妻aⅴ一区二区三区 成人亚洲视频 | 丁香婷婷成人 | 国产永久在线观看 | 色窝 | 麻豆入口 | 99精彩视频 | 天天干天天操天天碰 | 青青草原在线免费 | 日韩久久av| 成人美女视频 | 亚洲视频中文字幕在线观看 | 三级视频网站在线观看 | 蜜乳av一区二区三区 | 麻豆视频在线 | 滋润少妇h高h | 免费观看av | 91麻豆精品国产91久久久久久久久 | 欧美成人一区二区 | 你懂的在线播放 | 成年人黄色免费视频 | 国产精久久久 | 91久久人人 | 妺妺窝人体色www聚色窝仙踪 | 亚洲精品视 | 三级视频在线观看 | 成人欧美一区二区三区在线播放 | 各处沟厕大尺度偷拍女厕嘘嘘 | 北条麻妃在线一区二区 | 欧美啪啪网站 | 亚洲一区在线看 | 欧美性生活视频 | 91热久久 | 91久久在线观看 | 国产精品久久精品 | 视频在线观看网站免费 | 欧美色图13p | 九九超碰 | 日本不卡一区二区三区在线观看 | 欧美午夜视频在线观看 | 色哟哟在线观看 | 1024香蕉视频 | 看一级片 | 欧洲xxxxx | 日韩精品在线观看视频 | 给我看高清的视频在线观看 | 一级全黄色片 | 欧洲色区| 亚洲av无码国产精品久久久久 | 亚洲AV无码乱码国产精品牛牛 | 超碰在线观看99 | 亚洲图片综合区 | 国产日产精品一区二区三区 | 泰坦尼克号3小时49分的观看方法 | 亚洲精品日韩av | 在线视频欧美日韩 | 日本美女动态图 | 美女张开腿让男人操 | 肉性天堂| 91视频最新地址 | 日韩欧美国产电影 | 韩国三级hd中文字幕有哪些 | 国产精品自拍区 | 色欧洲| 亚洲精品日本 | 欧美人妻日韩精品 | 一级片视频免费观看 | 粉豆av| 国产一区二区三区视频在线播放 | china国模大尺度pics | 男女久久久 | 免费看毛片的网站 | 在线看黄色网址 | 欧美一区二区三区免费 | 91亚洲精品在线观看 | 欧美三区四区 | 99久久香蕉 | 国产女人高潮的av毛片 | 日韩av免费播放 | 欧美日韩精品 | 久久久久久av| 国产午夜免费福利 | 超碰色偷偷 | www天堂网| 黄色av网址大全 | 在线免费不卡视频 | 日本a在线观看 | 91亚洲国产| 午夜影院在线免费观看 | 99精品国产一区二区 | 一边摸上面一边摸下面 | 国内自拍区 | 大尺度做爰呻吟舌吻情头 | 天天草夜夜草 | 国产乱码精品一品二品 | 精品久久无码中文字幕 | 精品国产999久久久免费 | 欧美毛茸茸 | 在线观看一区二区三区四区 | 国产精品中文字幕在线 | 香蕉福利视频 | 99在线观看免费 | av网站黄色 | 日韩一区二区三区四区 | 天天综合网久久综合网 | 这里只有精品9 | 成片免费观看视频 | 国产色呦呦 | 毛片av在线 | 亚洲国产一区二区三区a毛片 | 久久久久久久久91 | av在线小说| 亚洲成人第一 | 国产av一区二区三区传媒 | 免费播放毛片精品视频 | 狠狠爱夜夜 | 天天爱天天射 | 中文亚洲av片在线观看 | 黄色高潮 | 狠狠干老司机 | 亚洲色域网 | 欧美xxxxx视频 | 91在线高清| 国产伦精品一区二区三区视频1 | 法国伦理少妇愉情 | se94se欧美| 中文字幕亚洲乱码熟女一区二区 | 伦理欧美| 香蕉污视频| 国产夫妻在线 | 欧美高清不卡 | 欧美老肥熟| 亚洲天堂一区二区在线观看 | 啦啦啦av | 九九成人| 99性趣网 | 91精品国产综合久久久久 | 里番精品3d一二三区 | 欧美一级黄色录像 | 手机看片福利久久 | 在线成人毛片 | 五月中文字幕 | 午夜小影院| 女的高潮流时喷水图片大全 | 一级免费大片 | 一级黄色大片免费看 | 一区二区成人免费视频 | 中国精品久久 | 午夜精品久久久久久久久久久久久蜜桃 | 欧美 亚洲| 精品国产乱码久久久久久预案 | 免费看成人毛片 | 一本色综合 | 欧美成人aaa片一区国产精品 | 青青国产在线 | 精品视频在线看 | 丁香花五月天 | 国产一级性生活 | 一区二区不卡在线 | 一区二区三区久久久 | 91啦中文 | 美女啪啪网 | 色呦呦免费观看 | 青青青视频在线 | 91九色蝌蚪porny | 男生和女生一起差差差视频 | 香蕉网站在线观看 | 大学生一级片 | 性生活av| 亚洲无码高清精品 | 天天摸天天舔天天操 | 金鱼妻日剧免费观看完整版全集 | 91视频观看 | 国产高清免费观看 | 成av人片在线观看www | 免费黡色av| 女同性αv亚洲女同志 | 国产成人在线免费 | 特级丰满少妇一级aaaa爱毛片 | 同性色老头性xxxx老头 | 欧美色图校园春色 | 哪里可以免费看毛片 | 日韩中文字幕免费在线观看 | 午夜合集 | 免费在线一区二区 | 色999在线| 美女91网站| 欧美在线免费观看视频 | 中文字幕一区二区三区视频 | 95视频在线 | 91视频观看 | 国产精品丝袜黑色高跟 | 亚洲激情黄色 | 亚洲婷婷丁香 | 欧美三级三级三级爽爽爽 | 一区二区三区免费 | 黄色录像片子 | av视屏| 日韩欧美久久久 | 草民午夜理伦三级 | 一区二区三区视频在线免费观看 | 免费看v片 | 91传媒理伦片在线观看 | 中文在线中文资源 | 成人免费毛片嘿嘿连载 | 国模av在线 | 亚洲av午夜精品一区二区三区 | 黄a视频 | 青娱乐极品在线 | 日本黄页网站 | 国产在线中文字幕 | 艳母动漫在线播放 | 日韩中文字幕网 | 免费黄色在线看 | 伊人久久91 | 91视频在线| 久久久久久99精品 | 日日日夜夜操 | 国产精品成 | 貂蝉被到爽流白浆在线观看 | 色九月婷婷 | 天堂√8在线中文 | 久久国语对白 | 色香欲综合网 | 日本欧美一级片 | 欧美 日韩 国产 成人 在线 | 特黄特色大片bbbb | 快射视频网 | 黄页视频在线免费观看 | 91精品国产综合久久久密臀九色 | 色人阁在线视频 | 97人人草 | 人人干人人干 | aa一级黄色片 | 激情视频免费在线观看 | 日本人性爱视频 | 香蕉大人久久国产成人av | 国产高潮失禁喷水爽到抽搐 | 日批视频免费播放 | 美女色呦呦 | 喷潮在线| 亚洲区在线播放 | 色狠狠干 | 国产黄色免费在线观看 | 国产xxxx孕妇 | 被绑在床强摁做开腿呻吟 | 国产精品不卡在线 | 99久| av在线高清观看 | 色综合av| 国产无码精品在线观看 | 色婷视频| 色网站视频 | 成人啪啪网站 | 国产又色又爽 | 日本捏奶吃奶的视频 | 日本高清xxxx | 高潮av | 在线免费三级 | 最新国产露脸在线观看 | 欧美三级色图 | 涩涩视频免费看 | 玖玖成人| eeuss一区二区 | 国产全是老熟女太爽了 | 麻豆免费看片 | 欧美人与性动交α欧美精品 | 亚洲图片视频小说 | 激情偷乱人成视频在线观看 | jizz免费在线观看 | 乱日视频 | 久操福利视频 | 中文字幕一区二区人妻 | 91亚洲国产成人精品一区二三 | 日本少妇高潮 | 国精产品乱码一区一区三区四区 | 久久免费国产 | 久久久成人精品视频 | www.sesehu.com| 五月天综合激情网 | 亚洲玖玖爱| 精品视频久久久久 | 久久成人免费视频 | 中国黄色一级片 | 伊人久久大香线 | 在线免费观看黄网站 | 国产午夜精品一区 | 天堂va蜜桃一区二区三区漫画版 | 婷婷中文字幕 | 国产精品成人久久久 | 亚洲在线免费观看 | 视频一区免费 | 亚洲第一区视频 | 国产嫩bbwbbw高潮 | 久久不射网站 | 日日插插 | 成人性生交大片免费看vrv66 | 911国产在线 | 最新91视频 | 1级黄色大片儿 | 成人教育av | 中文av免费 | 日韩午夜小视频 | 成人在线免费看视频 | 久久久久亚洲精品国产 | 涩涩的视频在线观看 | 性色av网站| 反差在线观看免费版全集完整版 | 久久999| 操欧美老逼 | 丨国产丨调教丨91丨 | 一区二区欧美在线 | 精品国产乱码久久久久久牛牛 | 国产一区二区三区视频在线播放 | 欧美激情啪啪 | 亚洲永久免费 | 日本中文字幕在线观看 | 成人自拍视频 | 国产女人水真多18毛片18精品 | 美女扒开腿男人爽桶 | 看片网站在线观看 | 免费麻豆国产一区二区三区四区 | 影音先锋91 | 密色av | 亚洲系列在线观看 | 性生交大片免费看狂欲 | 国产精品久久久99 | 男男play呻吟动漫网站 | 久久99操 | 成人xx视频 | 538国产精品一区二区免费视频 | 粉嫩av网站 | a级黄毛片 | 台湾少妇xxxx做受 | 国产a线| 隣の若妻さん波多野结衣 | 久久aⅴ乱码一区二区三区 婷婷五月精品中文字幕 | 久久精品视频一区 | 国外亚洲成av人片在线观看 | 中文字幕天堂在线 | 欧美精品一卡 | 拍摄av现场失控高潮数次 | 一区二区三区在线视频播放 | 生活片av| 精品熟女一区 | 欧美老熟妇乱xxxxx | 日韩黄色一级视频 | 国产精品一区在线看 | 中文人妻熟女乱又乱精品 | 男人的天堂2019 | 亚洲一区二区三区四区av | 女人和拘做爰正片视频 | 亚洲欧美另类在线视频 | 午夜电影天堂 | 四虎影院成人 | 欧美成人aaaaⅴ片在线看 | 欧美草逼网| 日韩av三级在线观看 | 亚洲欧洲视频在线观看 | 91在线无精精品一区二区 | 亚洲欧美日韩成人 | 日本美女黄色一级片 | 亚洲av久久久噜噜噜噜 | 一区二区三区黄色片 | 亚洲av无码一区二区三区在线 | 午夜伦理在线观看 | 黄页免费视频 | 日本乱子伦xxxx | 日韩一级免费看 | 成人一区二区在线 | 欧美一区二区免费在线观看 | 久久久久久久久久免费视频 | 日韩成人免费av | 黄色小视频在线观看免费 | 亚洲成人免费网站 | 最新久久| 日韩精品电影 | 国产情侣自拍av | 亚洲精品字幕在线观看 | 91视频在线观看免费 | 一区二区日韩视频 | 秋霞成人午夜鲁丝一区二区三区 | а中文在线天堂 | 一出一进一爽一粗一大视频 | 青青草97国产精品麻豆 | 爱看av| 成人在线观看黄色 | 91爱爱爱爱| 日本三级免费 | 制服丝袜先锋影音 | 中文字幕精品一二三四五六七八 | 能免费看黄色的网站 | 丁香六月婷婷激情 | 欧美影院一区二区三区 | 欧洲一区二区三区在线 | 激情综合视频 | 中文字幕在线永久 | 国产一区黄色 | 国产精品国产三级国产在线观看 | 欧美男人操女人 | 综合五月 | www.婷婷色| 中文字幕人成乱码熟女香港 | 星空大象mv高清在线观看免费 | 高清无打码 | 欧美精品乱码视频一二专区 | 久久与婷婷| 日韩精品偷拍 | 国产黄色高清 | 国产三级在线观看完整版 | 国产一级久久 | 黄色一级一片 | 京香julia在线观看 | 欧美一区二区网站 | 中文字幕精品亚洲 | 久久99久久99精品免视看婷婷 | 999这里只有精品 | 国产精品久久 | 17c国产精品| 在线色av | 美乳人妻一区二区三区 | 性大片潘金莲裸体 | 日韩女女同性aa女同 | 五月天色丁香 | 7799精品视频| 精品在线99 | 亚洲女同av | 成人免费视频软件网站 | 黑丝袜av| 国产精品伦理一区二区 | 午夜电影天堂 | www日韩av | 日韩操操| jizzjizz日本人 | 97人妻精品一区二区三区视频 | 成人福利视频 | 伊人久久久久久久久久 | 久久人人妻人人人人妻性色av | 少妇av在线播放 | 亚洲热在线| 久操久操久操 | 国产一区二区三区视频在线 | 四虎成人精品在永久免费 | 成人网免费 | 免费看黄网站在线 | 69国产精品视频免费观看 | 国产资源免费 | 日韩在线导航 | 国产一级二级在线观看 | 亚洲一区亚洲二区 | 国产高清免费av | 白嫩日本少妇做爰 | 一二三不卡视频 | 国产人妖在线观看 | 中文字幕免费观看 | 久久久婷婷 | 四虎少妇做爰免费视频网站四 | 国产成人免费在线观看 | 最新毛片网 | 日韩三级免费 | 夜夜夜操| 日韩精品专区 | 91小视频在线观看 | 亚洲福利av| 国产又黄又大又爽 | 自拍第二页 | 国产精品网站在线观看 | 久久艹伊人 | 久久久无码18禁高潮喷水 | 成人看片在线观看 | 操操综合网 | 人人看人人澡 | 日韩丰满少妇 | 国产精品区一区二区三 | 亚洲男女激情 | 台湾佬美性中文 | 实拍女处破www免费看 | 黄色av电影网站 | 尤物视频在线免费观看 | 石原莉奈在线播放 | 午夜精品一区 | 东京久久久 | 国产调教视频在线观看 | 91漂亮少妇露脸在线播放 | 日韩视频久久 | 国产成人毛毛毛片 | 日韩久久久久久久久 | 大奶子av| 野花视频在线免费观看 | 美国少妇性做爰 | 黄色片毛片 | 欧美大片xxxx | 亚洲欧美日韩在线一区 | 国产精品爽爽久久久久久 | 青青艹在线视频 | 999av视频| 精品热 | 91视频日本 | 日韩三级视频 | 视频国产在线 | 欧美xxxxx视频 | 色视频在线播放 | 国产精品亚洲第一区 | 亚洲国产精品免费在线观看 | 黄色片a级片 | 一本一本久久a久久精品综合麻豆 | 精品国产乱码久久久久久鸭王1 | 亚洲熟悉妇女xxx妇女av | 一区二区三区精品视频在线观看 | 色女孩综合网 | 视频在线免费观看 | 国产女人18毛片水真多1 | 未满十八18禁止免费无码网站 | 国产浮力影院 | 五月天久久久 | 亚洲色图1 | 国产精品一区二区av日韩在线 | 青青草原国产在线 | 91美女片黄在线观看 | av中文字幕免费在线观看 | 成人久久精品人妻一区二区三区 | 久久精品女人毛片国产 | 久操视频免费在线观看 | 国产精品99久久久久久www | 黄色片视频免费 | 久久影音先锋 | 久久精品久久久久久久 | 午夜视频在线免费 | 老司机精品在线 | 欧美精品久久久久久久久久 | 性欢交69精品久久久 | 亚洲国产欧美一区 | 岛国av一区| 韩国一区二区三区在线观看 | 免费色视频 | 欧美乱码精品一区二区三区 | 色婷婷久久 | 亚洲好视频| 黄色av免费在线播放 | 91久久精品日日躁夜夜躁欧美 | 国产香蕉9| 久久国产三级 | 中文字幕免费 | 久婷婷 | 欧美日韩中文字幕一区二区 | www久久com| 日本成人在线网站 | 日韩黄色大全 | 开心激情综合 | 福利网站在线观看 | av免费入口| 催眠调教后宫乱淫校园 | 姐姐的秘密韩剧免费观看全集中文 | 欧美一道本 | 69精品无码成人久久久久久 | 久久久黄色| 天堂国产精品 | 天天cao在线 | 精品国产伦一区二区三区 | 三级免费黄录像 | 不卡的av在线播放 | 国模在线视频 | 日本精品影院 | 免费看a网站 | 黄色av地址 | 向日葵视频在线播放 | 麻豆 美女 丝袜 人妻 中文 | 樱桃香蕉视频 | 国产大片b站 | 国产欧美一区二区在线 | 瑟瑟视频在线看 | 天天操天天射天天爽 | 神马午夜91| 欧美三区在线 | 91国产视频在线 | 色天天综合 | xxx国产| 精品一区免费 | 欧美另类xxxx野战 | 欧美激情久久久久久 | 天堂中文在线视频 | 精品国产一区二 | 久久噜噜色综合一区二区 | 老公吃小头头视频免费观看 | 天天舔天天干天天操 | 国产在线播放av | 免费一级a毛片在线 | 午夜神马福利 | 男人av影院| 视频一区二区中文字幕 | 色呦呦一区二区三区 | 99色这里只有精品 | 日韩乱码在线观看 | www麻豆 | 久久五月天综合 | 少妇又紧又深又湿又爽视频 | 免费看黄网站在线 | 欧美黑人粗大 | 欧美日韩精品亚洲精品 | 色悠久| 亚洲情趣 | 日韩精品自拍 | 亚洲黄v | 性免费视频 | 成年人免费看毛片 | 精彩久久 | 日本午夜影视 | 久久av网址 | 日韩区欧美区 | 99久久精品无免国产免费 | 国产情侣久久 | 一级α片免费看刺激高潮视频 | 狠狠干在线观看 | 一本色道久久综合精品婷婷 | 日韩av女优在线观看 | 手机天堂网 | 高跟肉丝丝袜呻吟啪啪网站av | 欧美黄色免费观看 | 2021天天干| 国产一级免费在线观看 | 在线观看的免费 | 九色视频丨porny丨丝袜 | 美女高潮在线 | 日本黄色片段 | 国产精品久久久久桃色tv | 丰满少妇中文字幕 | 欧美另类老妇 | 黄色片免费观看 | 欧美混交群体交 | 久草青青草| 日韩欧美一区二区三区视频 | 日本理论中文字幕 | 久久婷婷国产 | 久久精品国产亚洲av香蕉 | 青青青青青草 | 久久婷婷五月综合 | 高潮一区二区三区乱码 | 美人被强行糟蹋np各种play | 亚洲一区国产精品 | 国产,日韩,欧美 | 蜜臀久久99精品久久久 | 午夜网 | www..com国产| 国产精品色悠悠 | 五级黄高潮片90分钟视频 | 一区二区三区www污污污网站 | 亚洲欧洲精品一区二区三区 | 日本女人黄色 | 秘密基地免费观看完整版中文 | www.桃色 | 伊人成年综合网 | 91精品综合久久久久久五月天 | 日本美女在线 | 激情综合五月 | 国产精品福利在线播放 | 成年人在线观看视频网站 | 可以直接看的无码av | 色乱码一区二区三在线看 | 午夜一级视频 | 91好色先生| 国产一级三级 | 精品一区二区三区四区五区 | 少妇人妻真实偷人精品视频 | 精品久久影视 | 人妻久久一区二区三区 | www.亚洲黄色| av网站不卡| www.xxx.日本| 无码人妻精品一区二区三应用大全 | 日本寂寞少妇 | 国产欧美视频一区二区 | 海角社区登录 | 国产精品一区二区av日韩在线 | 国产三级aaa | 天天色成人 | 亚洲色图一区二区三区 | 又大又粗欧美黑人aaaaa片 | 日本久久一区二区 | 成年人网站免费观看 | 日韩无码专区 | 99热9| av影院在线| 亚洲天堂影院 | 精品人人人人 | 又黄又爽视频 | 美女被叉叉的影院 | 亚洲欧美精品在线 | 黄色操人视频 | 俄罗斯乱妇| 男女日批视频 | 91视频免费在观看 | 黄色片女人 | 成人瑟瑟 | 高h校园不许穿内裤h调教 | 欧美精品色哟哟 | 午夜免费视频 | 国产黄色精品 | 美女av影院 | 欧美99热 | 河北彩花中文字幕 | 制服诱惑一区 | 欧美精品三区 | 欧美日一区二区 | 亚洲欧美一区二区三区在线 | 成年人在线观看视频网站 | 鲁一鲁色一色 | 性色欲网站人妻丰满中文久久不卡 | 波多野结衣一区二区 | 韩国三级hd中文字幕 | 老师的肉丝玉足夹茎 | 国产永久视频 | 亚洲一级一区 | 国产真人做爰视频免费 | 玩偶游戏在线观看免费 | 四虎av网站 | 91福利在线观看 | 日韩特级黄色片 | 美国黄色网址 | 在线h片 | 久久久久亚洲精品国产 | 超碰在线公开免费 | 99热国内精品 | 激情草逼 | 国产精品人人 | 在线看麻豆 | 97国产在线观看 | 激情久久综合 | 中文字幕在线看片 | 在线观看亚洲大片短视频 | 好色先生tv官网 | 一个色综合网站 | 欧美三日本三级少妇99 | 色永久| 在线播放色| 国产a网站 | 国产在线麻豆精品观看 | 美日韩丰满少妇在线观看 | 久久99热这里只频精品6学生 | 四虎最新站名点击进入 | 毛片com| いいなり北条麻妃av101 | 国产亚洲色婷婷久久 | 亚洲第一黄 | 婷婷色婷婷开心五月四房播播 | 亚洲欧美v| 国产在线观看一区二区三区 | 一级免费视频 | 林雅儿欧洲留学恋爱日记在线 | 国产一区二区免费在线观看 | 97超碰资源站 | 国产美女久久久 | 91视频专区| 青青草国产成人av片免费 | av电影网站在线观看 | 99热伊人 | 久色在线 | 黄色国产片 | gai视频在线观看资源 | 性欧美17一18内谢 | 香蕉在线视频观看 | 91香蕉视频黄 | 日韩视频一二三 | 欧美有码在线观看 | 一区二区亚洲 | 91蝌蚪91九色 | 韩国电影一区 | 国产人妻精品一区二区三区 | 五月婷婷爱 | 少妇高潮一69aⅹ | 污片网站在线观看 | 手机在线播放av | 国产又黄又嫩又滑又白 | 天天综合天天做 | 怡红院av久久久久久久 | 精品久久伊人 | 青青99 | 制服.丝袜.亚洲.中文.综合懂 | 涩涩涩在线观看 | 日本三区视频 | av男人的天堂在线 | 色综合色综合 | 黄色免费在线视频 | 久久久新 | 奇米影| 国产肥白大熟妇bbbb视频 | 17c在线观看视频 | 成人a区 | 99精品一区二区三区无码吞精 | 狠狠干影院 | 精品麻豆| 美女av在线免费观看 | 欧美视频在线观看免费 | 第一页在线 | 国产免费一区二区三区免费视频 | 91国在线视频| 调教女m荡骚贱淫故事 | av电影在线不卡 | 91麻豆产精品久久久久久夏晴子 | 天天cao在线 | 可以免费观看的av | 成人毛片一区二区三区 | 亚洲免费激情视频 | 国产色网 | 宗合久久| 久久2018| 亚洲精品国产精品国自 | 天天添 | 天天干天天碰 | 国产清纯白嫩初高中在线观看性色 | 日韩免费久久 | www.五月激情 | 在线va | 日韩手机在线视频 | 国产精品精东影业 | 精品一卡二卡三卡 | 欧美日韩精品免费 | 久久黄色视 | 夜夜高潮夜夜爽 | 看片一区| 免费网站av | 国产视频资源 | 日b视频在线观看 | 草草影院国产 | 国产美女精品视频 | 欧美特黄一级 | 超级碰碰97 | 水果视频污 | 动漫同人高h啪啪爽文 | 久久久精品久久久 | 女人久久| 成人字幕 | 国产成人精品久久久 | 黄色一级视频网站 | 一道本久久 | 色噜噜狠狠一区二区三区 | 欧美在线一卡 | 91视频在线观看免费 | 久久青青 | 久久夜精 | 激情图片区 | jizz韩国| 爱欲av| www操操操| 日韩伦理在线视频 | 精一区二区 | 午夜免费大片 | 国产在线精品二区 | 福利毛片| 前任攻略在线观看免费完整版 | 伊人精品 | 国产中文一区二区 | 涩色视频 | 又黄又爽的网站 | 男人手机天堂 | 国产污污视频在线观看 | 黄色片网站免费观看 | 乱子伦一区二区 | 中文字幕在线观看的网站 | 丰满少妇被猛烈进入高清播放 | 嫦娥性艳史bd | 人人妻人人澡人人爽精品日本 | 日韩毛片一级 | 97免费中文视频在线观看 | 超碰在线免费观看97 | 成人视屏在线观看 | 天堂а√在线中文在线新版 | 中文字幕亚洲在线观看 | 日本午夜一区 | 日韩精品一卡二卡 | 亚洲激情黄色 | 黄色小视频在线免费观看 | 人体毛片 | 色99视频 | 九九综合久久 | 男女操网站 | 污视频网站免费看 | 黄色性生活一级片 | 网址av| 狠狠干网站 | 神马午夜888 | 日本做受 | 国产91综合一区在线观看 | 天天干天天操天天碰 | 亚洲综合网站 | 国产在线一区二区视频 | www 在线观看视频 | 色婷婷影院 | 91片黄在线观看 | 久久综合精品国产二区无码不卡 | 国产欧美熟妇另类久久久 | 亚洲美女屁股眼交8 | 国产一区中文字幕 | 都市激情一区 | 亚洲精品欧洲精品 | 免费看污的网站 | 在线免费观看日韩av | 国产精品suv一区 | 亚洲看片 | 无码人妻av一区二区三区波多野 | 欧美日韩中文在线 | 日韩二区在线观看 | 最近中文字幕在线 | 亚洲国产网站 | 草草视频在线观看 | 成人毛片一区二区三区 | 最好看的2019年中文视频 | 亚洲综合福利 | 国产a线 | 国产精品99无码一区二区视频 | 牛牛影视av | 激情专区 | 国产aa视频 | 久久久888 | 日本国产在线观看 | 亚洲av综合色区无码二区爱av | 可以直接看av的网址 | 男女一进一出视频 | 大陆熟妇丰满多毛xxxⅹ | 亚洲人成色777777老人头 | 成人久久久精品国产乱码一区二区 | 日韩欧美理论 | jizz高潮| 免费的av | 久久国产精品二区 | 一色屋免费视频 | 亚洲男女视频 | 一级黄色片看看 | 麻豆av免费在线观看 | 亚洲激情二区 | 中文字幕丰满人伦在线 | 久久九九精品 | 青青操在线 | 中国精品久久 | 一区二区激情视频 | 久久天堂精品 | 成人作爱视频 | 久草视频在线看 | 伊人久久久久久久久久久久 | 在线视频二区 | 色女孩综合网 | 99热香蕉 | 亚洲国产影视 | 日韩在线专区 | 黄色av资源 | 亚洲人视频在线观看 | 中国第一毛片 | 久久久福利 | 欧美激情精品久久 | 黄色激情视频在线观看 | 特级西西444www高清大视频 | 久久天堂电影 | 在线观看欧美精品 | 日韩欧美一区二区三区在线观看 | 亚洲第一页在线观看 | 懂色av蜜臀av粉嫩av分享 | 成人小视频在线免费观看 | 日本不卡网 | 亚洲在线中文字幕 | 麻豆传媒mv | 日韩精品三区 | jizjiz中国少妇高潮水多 | 在线观看av免费 | 国产一区二区三区四区五区在线 | 三级黄色短视频 | 欧洲一区二区视频 | 美女大战精子 | 伊在线久久丫 | 懂色av蜜臀av粉嫩av分 | 亚洲国产精品成人无久久精品 | japanese在线| 中日韩av在线 | 伊人天堂网 | 亚洲av片一区二区三区 | 天天射夜夜 | 91jk制服白丝超短裙大长腿 | 国产中文字幕二区 | 成人在线观看av | 免费污网站在线观看 | 狠狠操免费视频 | 成人午夜大片 | av噜噜| 人人看超碰 | 久久影院午夜 | 啪啪av| 一级特黄视频 | 成人性毛片 | 国产成人无码精品 | 国产蜜臀av一区二区 | 久久九九色 | 成人福利在线视频 | 日本羞羞网站 | 香蕉久久夜色精品国产使用方法 | 97超碰网 | 日韩美女激情 | 久久99热这里只有精品 | 国产色在线视频 | 欧美孕妇性xx | 国产精品久久久久久久久免费看 | 永久免费av无码网站性色av | 女人被灌满精子 | 亚洲自拍天堂 | 一二三区中文字幕 | 国产91丝袜在线播放 | 亚洲成人精品av | 手机av免费在线观看 | 国产在线观看免费高清 | 黄片毛片视频 | 国产大片中文字幕在线观看 | 麻豆视屏 | 成人免费做受小说 | 亚洲第一区在线 | 国产老妇伦国产熟女老妇视频 | 免费在线看黄视频 | 又黄又爽又刺激的视频 | 国产98色在线 | 日韩 | 天堂av在线中文 | 一区二区成人免费视频 | 日本在线观看一区二区 | 91美女视频 | 337p亚洲精品色噜噜噜 | 美女扒开尿口让男人桶 | 91爱爱网站 | 日本一二三不卡 | 夜夜看| 他揉捏她两乳不停呻吟动态图 | 免费的黄色网址 | 黄色的一级片 | 欧美日韩看片 | 爽妇综合网 | 插插看 | 粗口调教gay2022.com | 国产精品毛片一区二区 | 操操干干 | 日韩图色 | 国产69av | 四月婷婷 | 精品国产av色一区二区深夜久久 | 精品一区二区av | 日韩播放 | www.18av| 日本黄色网络 | 精品在线91 | 天堂资源在线观看 | 99999视频| 性猛交ⅹxxx富婆视频 | 中文字幕免费一区 | www.色黄 | 日本少妇激三级做爰在线 | 伊人伊人 | 亚洲av激情无码专区在线播放 | 久久偷看各类女兵18女厕嘘嘘 | 天天干天天操 | 99久久婷婷国产综合精品青牛牛 | 成人福利社 | 鲁一鲁在线 | 91日韩 | 日韩精品区| 欧美在线一 | 午夜视频网站在线观看 | 狠狠狠狠狠狠狠 | 一区二区三区在线观看视频 | 99色网 | 中文字幕一区二区三区电影 | 九九九国产 | 99热这里只有精品99 | 日韩欧美三级视频 | 向日葵视频在线 | 欧美性猛交xxxx黑人 | 99久久精品免费看国产交换 | 91久久综合亚洲鲁鲁五月天 | 国产片在线 | 99国产精品视频免费观看一公开 | 亚洲黄色在线播放 | 91视频合集| 国产日本亚洲 | 亚洲精品一二三 | 中国美女乱淫免费看视频 | avtt一区| 中国免费黄色 | 久久精品—区二区三区舞蹈 | 欧美激情 亚洲 | 92国产精品 | 波多野结衣在线播放视频 | 亚一区二区| 欧美乱轮 | 亚洲国产日本 | 91九色中文 | 精品熟女一区 | 男女污视频 | 亚洲免费中文字幕 | 久久久黄色片 | 欧美人一级淫片a免费播放 干干日日 | 韩国三级视频在线 | 96精品视频在线观看 | 亚洲 欧洲 日韩 | 我们好看的2018视频在线观看 | 中文字幕第二区 | 国产综合久久久 | 家庭午夜影院 | 日本在线 | 精品成人18 | 裸体黄色片 | 亚洲а∨天堂久久精品2021 | 欧美激情在线看 | 好看的国产精品 | 欧亚乱熟女一区二区在线 | 插插看看| 五月激情站| 成人xxxx | 日韩中文免费 | 极品尤物一区二区 | 国产午夜激情 | 91日本视频 | 色七七视频 | 日本熟妇人妻中出 | 久热只有精品 | 爱av导航| 色天使在线视频 | 快色污| 潘金莲一级淫片免费放动漫 | 欧美日韩亚洲综合 | 精品国产视频一区二区三区 | 欧美伊人| 最近中文字幕在线 | 山村大伦淫第1部分阅读小说 | av中文字幕在线播放 | 春色伊人 | 亚洲青青草 | 91精品国产高清一区二区三蜜臀 | 日韩一级片免费 | 好吊色青青草 | 亚洲三级电影网站 | 欧美丰满美乳xxⅹ高潮www | 超薄肉色丝袜一区二区 | 日本中文字幕在线看 | 青青青草视频在线 | 男人肌肌桶女人肌肌 | 在线欧美激情 | 激情五月亚洲 | www四虎| 99精品久久毛片a片 亚洲精品综合 | 免费大片av | 一区二区三区国产av | 97超碰人人爱 | 中文字幕在线观看一区 | 三级黄色小视频 | 国语对白对话在线观看 | 亚洲国产精品一区二区三区 | 87福利视频 | 亚洲不卡在线播放 | 中文字幕黑人 | 黄色三级免费观看 | 美足av电影| 日啪| 老鸭窝久久 | 免费日本视频 | 一区二区国产视频 | 内射国产内射夫妻免费频道 | 激情偷乱人成视频在线观看 | 蜜桃av免费在线观看 | 国产欧美三级 | 手机看片中文字幕 | 国产精品久久久久久久久免费看 | 一区二区日韩精品 | 免费的污网站 | 国产femdom调教7777 | 美女被出白浆 | 51av在线| 国产综合色视频 | 动漫美女被到爽流 | 九九热最新 | 亚洲第一大网站 | 92久久 | 欧美无马 | 波多野吉衣中文字幕 | 成人中文字幕在线观看 | 黄网站在线观看视频 | 国产精品青青草 | 777奇米视频 | 天堂久久久久 | 97公开视频 | 久久国产片 | 亚洲精品乱码久久 | 日本韩国欧美 | 亚洲男人天堂影院 | 尤物视频免费在线观看 | 国产嫩草视频 | 国产青青视频 | 视频免费观看在线 | 欧美一区二区三区四区视频 | 免费的av片 | 国产99视频在线观看 | 亚洲爆爽 | 久久老女人 | 激情综合一区二区三区 | 亚洲免费看黄 | 久久精品国产欧美亚洲人人爽 | 欧美图片第一页 | 最新国产露脸在线观看 | 在线你懂得 | 青青草社区 | 久热精品视频在线播放 | 韩国三级hd中文字幕的背景音乐 | 久伊人| 特黄一区| 亚洲wwww| www天天操| 老司机一区 | 欧美又大粗又爽又黄大片视频 | 中国毛片基地 | 国产女人精品视频 | 亚洲AV无码国产精品午夜字幕 | 国产熟妇搡bbbb搡bbbb | 高清不卡一区二区 | 超碰久操 | 91中文国产| 1级黄色大片 | 三级做爰第一次 | 丝袜美腿中文字幕 | 99激情 | 成人在线观看国产 | www.四虎com| 国产午夜无码视频在线观看 | 国产欧美一区二区三区国产幕精品 | 久久久精品亚洲 | 黑人操日本女优 | 国产午夜精品一区二区三区嫩草 | 久热久热免费视频中文字幕 类别:中文字幕 | 久久久久久久久久久国产精品 | 久久tv | 人人人人爽 | 超碰国产在线观看 | 青青青操| 亚洲免费av网站 | 国产区视频在线观看 | 天堂一二三区 | 国产成人综合网 | 8090理论片午夜理伦片 | 牛牛视频在线观看 | 好吊一区| 俺啪也| 日本va在线 | 久草热在线视频 | 成人在线毛片 | 日本特黄色片 | 一区二区福利视频 | 国产免费小视频 | 狠狠狠狠狠狠干 | 奇米在线观看 | 久久久水蜜桃 | 亚洲裸体视频 | 久草视频免费在线播放 | 国产精品扒开腿做爽爽爽a片唱戏 | 医生强烈淫药h调教小说视频 | 国产又爽又黄又嫩又猛又粗 | 超碰520| 19禁大尺度做爰无遮挡电影 | 日本精品久久久久久 |