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

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

復制代碼
  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
發帖數量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
1樓  發表于: 2017-04-24 19:48
FX1S 報文編解碼
復制代碼
  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
發帖數量: 3 個
工控威望: 96 點
下載積分: 648 分
在線時間: 24(小時)
注冊時間: 2017-02-12
最后登錄: 2017-05-19
查看moecmks的 主題 / 回貼
2樓  發表于: 2017-04-24 19:52
復制代碼
  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. }

国产亚洲无码精品 | 日韩av片在线免费观看 | 曰本黄色大片 | 成人做爰www看视频软件 | 69久久久久| 久久久久亚洲AV | 日本久久高清 | 亚洲黄色视屏 | 国产清纯白嫩初高中在线观看性色 | 福利在线免费观看 | 香蕉久久a毛片 | 天天插天天操天天干 | 大肉大捧一进一出好爽动态图 | 亚洲精品无码久久 | 天堂av一区二区 | 99视频在线| 在线视频一区二区三区四区 | 91叼嘿视频 | 欧美激情xxx| 91大神久久| 67194午夜 | 欧美人吸奶水吃奶水 | 欧美,日韩,国产精品免费观看 | 亚洲黄a | 激情瑟瑟| 青草青在线视频 | 干一夜综合 | 美女扒开尿口给男人桶 | 日韩一级片在线观看 | 亚洲av无码一区二区三区四区 | a级黄色片免费看 | 久久综合婷婷 | 亚洲色欲色欲www在线观看 | 兔费看少妇性l交大片免费 亚洲天堂福利 | 丰满岳乱妇在线观看中字无码 | 香蕉视频黄污 | 波多野结衣视频在线 | 人妻夜夜爽天天爽三区麻豆av网站 | 特黄aaaaaaaaa毛片免费视频 | 亚洲国产精品电影 | 日韩精品一 | 老女人做爰全过程免费的视频 | 538国产精品视频一区二区 | 四虎午夜 | 激情久久久久久久 | 日韩高清影院 | 亚洲一级片网站 | 秋霞影院一区二区 | 成年人免费在线观看 | 中文字字幕在线中文乱码 | 日韩激情视频在线 | 日韩亚洲在线 | 在线成人观看 | 亚洲小视频在线观看 | 欧美一级二级三级 | 九九热精品在线 | 色老妹 | 91porn在线 | 美女扒逼 | 中文字幕一级二级三级 | 久久在线| 91丝袜呻吟高潮美腿白嫩 | 亚洲视频黄色 | 日韩丰满少妇无码内射 | 日韩一二三级 | 日韩视频一区二区在线观看 | 国产999精品视频 | 九九视频在线免费观看 | 亚洲小说网 | 91毛片网| 日韩一区二区三区免费视频 | 日韩在线免费观看视频 | 一区久久久 | 欧美精品二区三区四区免费看视频 | 成年精品 | 欧美激情国产精品 | 国产xxxx做受性欧美88 | 亚洲一区在线视频 | 国产黄色av片 | 法国空姐电影在线 | 久久青青视频 | ts人妖另类精品视频系列 | 成人尹人| 亚洲经典视频在线观看 | 男人天堂欧美 | 99re99热| 色不卡 | 国产精品51 | 操操操视频| 午夜视频福利在线 | xxxxx黄色片 欧美亚洲一 | 99少妇| 免费在线看黄网站 | 日韩二区在线 | 久久精品一区二区免费播放 | 国产精品永久免费视频 | 欧美三级小视频 | 蜜桃av中文字幕 | 欧美国产综合 | 风流还珠之乱淫h文 | 神宫寺奈绪一区二区三区 | 欧美综合社区 | 91官网视频 | 亚洲国产91 | 亚洲毛茸茸 | 羞羞的视频在线观看 | 精品亚洲aⅴ无码一区二区三区 | 亚洲色图美腿丝袜 | 欧洲免费av | 久久夜色精品国产欧美乱极品 | 欧美一级片在线免费观看 | 国语精品久久 | 久久久久九九九 | 日本免费不卡 | 啪啪影音| 一二三区在线视频 | 日出白浆视频 | 黑白配高清国语在线观看 | 99热9| 最新激情网站 | 日韩网站视频 | 性视频播放免费视频 | 亚洲丝袜一区 | 男女一级特黄 | 成人五区 | 久久精品日韩 | 中文字幕 日韩有码 | 人人看超碰| 天堂8中文在线 | 人妻无码一区二区三区 | 精品久久久久久久久久久久 | 黄色免费一级视频 | 国产精品久久久久久久久免费桃花 | 黄页网站免费在线观看 | 8050午夜一级毛片久久亚洲欧 | 黄色av资源 | 老熟妇毛片 | 欧美一区二区视频 | 婷婷亚洲五月色综合 | 在线播放一区二区三区 | 午夜影院在线看 | 91日本视频 | 精品午夜一区二区三区 | 日本欧美激情 | 福利视频第一页 | 黄色aa级片 | 人妻无码一区二区三区 | 在线播放的av | 99热在线看 | 欧美高清视频 | 哪个网站可以看毛片 | 国产国语亲子伦亲子 | 天天爱综合 | 久久99精品国产.久久久久 | 日韩激情一区 | 波多野结av衣东京热无码专区 | 三级自拍 | 国产视频久久 | 大香伊人中文字幕精品 | av软件在线观看 | 另类老妇性bbwbbw图片 | 一区国产视频 | 性生活在线视频 | av黄色网址 | 一级欧美一级日韩片 | 加勒比伊人 | 91九色pron | 第一福利av | 高清成人 | 欧美激情视频在线 | 一级特级毛片 | 善良的公与媳hd中文字 | 亚洲欧美成人网 | 人人草人人澡 | 双性懵懂美人被强制调教 | a在线天堂 | 依依av | 六月婷婷在线观看 | 久久69| 美女黄色小视频 | 麻豆爱爱 | 男女午夜网站 | 男女裸体无遮挡做爰 | 欧美成人精品二区三区99精品 | 亚洲精品乱码久久久久久麻豆不卡 | 一级大片网站 | 99久久久国产精品无码网爆 | 欧美在线亚洲 | 国产精品日韩 | 自拍偷拍 亚洲 | a国产视频| 秋霞福利视频 | 精品人妻一区二区三区日产乱码 | 九九免费在线视频 | 91性色 | www.成人精品 | 欧美日韩在线免费观看视频 | 偷拍亚洲综合 | 国产精品999在线观看 | 在线看黄色的网站 | 久久精品在线免费观看 | 欧美精品网站 | 在线不卡av电影 | 女性向小h片资源在线观看 夜夜嗨av一区二区三区 | 岛国av免费在线观看 | ww欧美| 亚洲阿v天堂 | 亚洲午夜久久 | 日韩影院在线 | 免费播放片大片 | 亚洲av片在线观看 | 深夜在线 | 欧美va在线观看 | 亚洲视频一区在线观看 | 欧美成人三级精品 | 亚洲色图网友自拍 | 奇米影视第四色888 800av在线视频 | 午夜久草 | 成年视频在线 | 欧美黑人一级爽快片淫片高清 | 国产精品扒开腿做爽爽爽视频 | 午夜av片| 美日韩中文字幕 | 丁香六月色 | 女人十八岁毛片 | 性生交大片免费看 | 欧美日韩中文字幕在线播放 | 国产精品成人av性教育 | 久久久久九九九九 | 成人免费视频视频 | 欧美比基尼 | 午夜视频导航 | 天天草夜夜 | 国产成人黄色 | 小sao货水好多真紧h无码视频 | 色射视频 | 日韩一区二区三区在线免费观看 | 伊人久久中文字幕 | 一区二区三区免费观看视频 | 99热一区二区三区 | 91黄漫| 久久久久久夜 | 欧美大片免费 | 一区二区三区四区视频 | 青青草97国产精品免费观看 | 无码一区二区精品 | 精品欧美一区二区精品久久 | 国产精品色婷婷 | 亚洲午夜一区二区 | 欧美日韩精品久久久免费观看 | 91黄免费| 黄色小视频在线观看 | 国产91国语对白在线 | 一本色道久久88加勒比—综合 | 亚洲大胆人体 | 永久免费成人代码 | www.第四色| 又黄又免费的网站 | 三级三级久久三级久久18 | 黄色成年人网站 | 被各种性器调教到哭vk | 国产真实生活伦对白 | 劲爆欧美第一页 | 丁香婷婷亚洲 | 日韩无码精品一区二区三区 | 国产精品自产拍高潮在线观看 | 亚洲一区欧美二区 | xxx黄色片| 成人无码av片在线观看 | 久久一级大片 | 黄色天堂网 | 亚洲字幕在线观看 | 久草中文网 | 国产精品1区2区3区 不卡二区 | 精品亚洲一区二区 | 亚洲精品中文字幕乱码三区 | 日本激情网址 | 日韩在线免费视频观看 | 打屁股调教视频 | 日韩中文字幕在线免费观看 | 日韩高清av在线 | 欧美一区二区三区网站 | 国产jizz| 欧美老女人视频 | 成人午夜精品一区二区 | 亚洲黄色av | 日韩动漫av| 日日撸夜夜撸 | 美国免费高清电影在线观看 | 在线视频国产一区 | 99久久国产精 | 久久国产精品一区二区 | 天天干夜夜怕 | 国产二级毛片 | 精品久久国产字幕高潮 | 日韩高清中文字幕 | 亚洲第一天堂 | 色久阁 | 中文字幕免费高清在线观看 | 蜜桃久久精品成人无码av | 亚洲一级片在线观看 | 杨幂一区二区三区免费看视频 | 色片网站在线观看 | 久久久久综合网 | 一二三毛片 | 欧美在线性视频 | jizz在线播放 | 黄色成人在线 | 极品少妇xxxx| 亚洲欧美日本韩国 | 樱桃av| 97爱视频 | 亚洲天堂区| 久久久国产精华液 | 亚洲av无码一区二区三区网站 | 日批视频免费播放 | 黑人中文字幕一区二区三区 | 成人欧美一区二区三区黑人动态图 | 色花堂在线 | 亚洲免费福利视频 | 国产综合亚洲精品一区二 | 一级人爱视频 | 精品三级| 欧美污视频在线观看 | 韩国av一区二区三区 | 国内久久精品视频 | 日本成人一区二区 | 琪琪色av | 蜜桃视频久久一区免费观看入口 | 一级黄色在线视频 | 欧美综合图片 | 国产精品一二三四 | 男女作爱免费网站 | 国模啪啪一区二区三区 | 成人在线观看小视频 | 97成人人妻一区二区三区 | 一区二区亚洲精品 | а√天堂资源官网在线资源 | 色狠狠综合网 | 国产成人网| 欧美9999| 在线中文字幕第一页 | 亚洲一区二区三区网站 | 天天操天天爱天天干 | 九色av | 免费人成在线观看网站 | 六月婷婷在线观看 | 欧美一级爱爱 | 亚洲精品一区二区口爆 | 在线免费观看国产 | 强伦人妻一区二区三区 | 国产一级久久久 | 一区二区三区欧美日韩 | 久久国产精品无码网站 | 亚洲一区二区三区在线免费观看 | 亚洲人天堂 | 久色| 日韩中文字幕网站 | 日韩国产成人在线 | 免费无遮挡在线观看视频网站 | 亚洲一区观看 | av免费网址 | 国产一卡二卡在线播放 | 国产农村乱对白刺激视频 | 国产视频在线观看视频 | jzzijzzij亚洲成熟少妇在线播放 国产成人精品一区二区三区在线 | 亚洲砖区免费 | 麻豆一区二区99久久久久 | 黄a免费网络 | 亚洲一区二区在线免费观看 | 精品少妇人妻一区二区黑料社区 | 亚洲一区,二区 | 亚洲影院av | 李华月全部毛片 | 免费在线观看的黄色网址 | 原创少妇半推半就88av | 亚洲一区中文字幕 | 成年激情网 | 天天综合天天 | 五级黄高潮片90分钟视频 | 恶虐女帝安卓汉化版最新版本 | 久久久久亚洲AV | 久操青青| 福利色播| 97超级碰碰人妻中文字幕 | 日韩精品五区 | 成人欧美一区二区三区在线播放 | 久久综合色婷婷 | 97超碰在线免费 | 女大学生的家政保姆初体验 | 色多多视频在线 | 国产又黄又猛又粗又爽 | 中文字幕人妻无码系列第三区 | 伊人色综合久久久 | 日批毛片 | 波多野结衣理论片 | 精品国产免费一区二区三区 | 成人无码www在线看免费 | 五月婷婷丁香六月 | 国产伦一区二区三区 | 日产久久久久久 | 可以在线观看的av | 亚洲国产91| 91看毛片 | 日本少妇videos高潮 | 99看片| 亚洲精品免费观看 | 亚洲无码精品在线播放 | 国产精品传媒一区二区 | 中文字幕在线免费播放 | 日本在线黄色 | 91精品人妻一区二区三区蜜桃欧美 | 精品久久蜜桃 | 97网站| av自拍| 俄罗斯一级片 | 亲女禁h啪啪宫交 | 艳妇乳肉豪妇荡乳xxx | 福利在线一区二区 | 亚洲黄色免费在线观看 | 涩涩视频网站在线观看 | 精品人妻一区二区三区蜜桃 | 激情女主播| 久久精品4 | 精品欧美黑人一区二区三区 | 手机在线看片日韩 | 亚洲成人av免费在线观看 | 一区二区三区精品国产 | 一级a性色生活片久久无 | 亚洲色偷偷色噜噜狠狠99网 | 91久久在线 | 日本一区二区视频在线观看 | 久久亚洲AV无码专区成人国产 | 国产精品igao视频 | 91麻豆国产 | 亚洲人成小说 | 男女床上拍拍拍 | 影音先锋在线中文字幕 | 亚洲欧美国产精品专区久久 | 日日影院 | 国产一级大片在线观看 | h片免费观看 | 久久久久久蜜桃一区二区 | 久久精品国产精品亚洲毛片 | 久久天堂 | 欧美男女交配视频 | 天天色天天综合 | 日韩超碰 | 精品一区二区三区欧美 | 亚洲欧美动漫 | 中文字幕第4页 | 超碰成人免费在线 | 男插女视频在线观看 | 国产午夜视频在线观看 | 精品动漫一区二区三区在线观看 | 天天干夜夜草 | 中文字幕亚洲一区二区三区五十路 | 91午夜理伦私人影院 | 亚洲欧洲成人 | 亚洲热av | 日本中文一区 | v8888av| 成年人黄色片 | 国产视频资源 | h网站在线看 | 免费看黄色的网站 | 天天天天天天干 | 国产精品香蕉国产 | 欧美毛片在线观看 | 国产激情久久久 | 超碰精品在线 | 四虎黄色影院 | 99热这里只有精品首页 | 天堂网在线中文 | 精品久久一区二区三区 | 欧美老女人性视频 | 久久久久久亚洲中文字幕无码 | av网站在线观看不卡 | 国产伦精品一区三区精东 | 久久与婷婷 | 国产一区二区三区免费观看 | 免费在线观看黄网站 | 国产又爽又黄的视频 | 男人天堂b | 超碰男人天堂 | 久久一区二 | 91久久国产综合久久91精品网站 | 毛片a片免费观看 | 欧美一卡二卡在线观看 | 伦理片一区二区三区 | 成人免费一区二区三区 | 精品三级 | 黄色特一级 | 中国老头性行为xxxx | 麻豆国产精品 | 日日夜夜网站 | 国产成人精品亚洲男人的天堂 | 日本在线观看中文字幕 | 2019亚洲天堂 | 日本三级中文字幕 | 天天天色 | 国产午夜精品一区二区三区视频 | 久久精品国产清自在天天线 | 1024视频在线| 亚洲av永久纯肉无码精品动漫 | 少妇激情四射 | 波多野结衣av在线观看 | 久久av影院 | 国产女主播在线播放 | 亚洲国产成人av | 对白刺激国产子与伦 | 精品国产乱码久久久 | 亚洲AV无码成人精品区明星换面 | 成年人在线免费看 | 青青草原综合久久大伊人精品 | 另类中文字幕 | 成人一二区 | 中日韩中文字幕 | 欧美特黄 | b站大片免费直播 | 黄色特级一级片 | 国产日产欧美 | 国产精品二区在线观看 | 成人性生活免费看 | 欧美色999 | 成人午夜免费福利 | 性色av浪潮av | 解开人妻的裙子猛烈进入 | 国产欧美一区二区三区精品酒店 | 婷婷在线免费视频 | 国产精品视频入口 | 国产精品网址 | 欧美xxxxx视频 | 精品久久久久久亚洲综合网站 | 三级黄色网 | 黄色应用在线观看 | 哺乳期给上司喂奶hd | 夜夜夜撸| 国产精品电影网站 | 99ri精品| 日本欧美在线播放 | 热热热av| 99在线精品视频免费观看20 | av色站| 天堂国产 | 国产精品后入内射日本在线观看 | 99久久久无码国产精品免费 | 日韩色黄大片 | 色图av | 又白又嫩毛又多15p 九九综合九九 | 毛片av网站| 成人精品一区二区三区电影 | 日本熟妇一区二区 | 中文字幕日韩一区二区三区 | 污色视频 | 男人影院在线观看 | 99久久99久久精品国产片桃花 | 就去吻综合| 国产精品国产三级国产 | 一级黄色片在线 | 国产福利在线播放 | brazzers精品成人一区 | 国产真实乱人偷精品 | 国产极品在线播放 | 日本大尺度吃奶做爰久久久绯色 | 亚洲一区在线视频观看 | mdyd—856冲田杏梨在线 | 日韩av无码一区二区三区 | 女裸全身无奶罩内裤内衣内裤 | 天堂影音| 日本少妇久久久 | 蜜桃视频欧美 | 啪啪天堂| 欧美精品一 | www日韩av| 久久免费视频一区 | 999国产视频 | 蜜桃无码一区二区三区 | jlzzzjlzzz国产免费观看 | 日日射夜夜操 | 成人网在线观看 | 国产午夜在线 | 操你啦免费视频 | 亚洲欧美在线观看 | 国产黄色录相 | 激情成人av| 黄色免费网站 | 亚洲图片欧美日韩 | 色八区 | 狠狠干五月天 | 91玉足脚交白嫩脚丫 | 天堂资源站| 男人天堂最新网址 | 一本色道久久综合无码人妻 | 国产裸体美女永久免费无遮挡 | 日韩欧美亚 | 毛片在线免费观看网站 | 欧洲一区二区三区在线 | 成人黄色视屏 | 色噜噜视频 | 国产黄色片免费观看 | 一区二区网 | 成人精品国产免费网站 | 98国产精品| 蜜桃精品成人影片 | 天天综合射 | www.99av| 亚洲免费av电影 | 一级视频免费观看 | 成人无码久久久久毛片 | 欧美一区二区三区激情啪啪 | 精品一区二区三区中文字幕 | 精品少妇人妻av一区二区 | 人人艹视频 | 91中文在线观看 | 天天激情站 | 高潮毛片| 日本伦理片在线播放 | 日韩免费视频一区二区 | 久久久国产精品视频 | 国产一级美女 | 色噜噜av| 亚洲专区一区二区三区 | 操韩国美女| 美女国产在线 | 色视频在线看 | 成人在线综合网 | 久久无毛 | 热热色av| 欧美一区二区影院 | 欧美乱色 | 色之久久综合 | h网站在线 | 国产裸体舞一区二区三区 | 国产香蕉在线观看 | 激情六月婷 | 春草| 久久久久国| 操极品美女 | 日日夜夜网站 | 亚洲tv在线观看 | av地址在线 | 成人h片在线观看 | 午夜精品在线播放 | 激情视频免费在线观看 | 亚洲最大的网站 | 香蕉视频网站入口 | 天天都色 | 成人观看视频 | 91视频黄色 | 亚洲综合精品国产一区二区三区 | 日本五十路在线 | 亚洲欧美另类在线观看 | 九九九视频在线观看 | 欧美毛片视频 | 国产婷婷色 | 69堂在线观看 | 国产aaaaaa| 69xxxx日本| 精品伦精品一区二区三区视频密桃 | 国产精品成人免费一区久久羞羞 | 国产视频一区二区在线 | 国产精品人人做人人爽人人添 | 精产国品一二三产区m553麻豆 | 99爱爱| 国产性猛交 | 夜夜操天天爽 | 精品国模一区二区三区 | 国产专区一区二区三区 | 欧美成人a | 欧美一极片 | 亚洲乱码国产乱码精品精大量 | 欧美成人一区二区在线 | 五十路母 | 精久久久 | 蜜桃av色偷偷av老熟女 | 久久网伊人 | 久草视频免费在线播放 | 亚洲精品字幕在线观看 | av日韩av | 91蝌蚪在线 | 免费黄色一级 | 亚洲aa| 亚洲狠狠婷婷综合久久久久图片 | 日本呦呦| 国产女人18毛片水真多 | 亚洲精品视频网 | 免费av网站在线看 | feel性丰满白嫩嫩hd | 丰满少妇高潮在线观看 | 精品视频久久久久 | 三级a视频 | 午夜影视剧场 | 777四色| 婷婷六月天 | 午夜免费毛片 | 国产精品a久久久久 | 免费黄视频在线观看 | 亚洲天堂二区 | 国产精品丝袜黑色高跟鞋的设计特点 | 欧美日韩精品一区二区三区 | 国产人人看 | 老司机深夜视频 | 天天爽天天操 | 精品无码久久久久 | 黄色网址多少 | 久久久久久久国产精品 | 秘密爱大尺度做爰呻吟 | 色涩网站| 亚洲色婷婷一区二区三区 | 狠狠干夜夜爽 | 体感预报日剧 | 久久精品男人的天堂 | 国产福利合集 | 特种兵之深入敌后高清全集免费观看 | 欧美激情xxxxx | 女人张开腿让男人插 | 深夜国产视频 | 亚洲码在线观看 | 乱淫av| 日本免费a级片 | 熟睡侵犯の奶水授乳在线 | 午夜三级在线 | 日不卡 | 动漫美女被吸乳奶动漫视频 | 在线观看亚洲精品 | 一区二区三区免费在线观看视频 | 污网站免费在线观看 | 新婚夫妇白天啪啪自拍 | 免费男女乱淫真视频免费播放 | 日本一本高清视频 | 好吊视频一区二区三区 | 亚洲va视频| 久久老司机 | 欧美丰满熟妇bbbbbb | 涩涩视频网址 | 精品久久久精品 | 四虎永久网址 | 法国少妇愉情理伦片 | 日本国产视频 | 九九精品免费 | 美女涩涩网站 | 开心色婷婷 | 色综合色综合色综合 | 在线观看国产一区二区 | 制服诱惑一区二区 | 欧美另类日韩 | 91啪在线| 97超碰在线播放 | 朝桐光av在线一区二区三区 | 国产一区二区波多野结衣 | av免费高清 | 台湾黄色网址 | 午夜精华 | 午夜激情网 | 亚洲AV无码阿娇国产精品 | 亚洲色p| www操| 免费一级特黄特色大片 | 无码人妻丰满熟妇区96 | 91成人小视频 | 一二区精品 | 婷婷在线免费观看 | 日产亚洲一区二区三区 | 国产精品推荐 | 大地资源中文在线观看免费版 | 欧美在线日韩 | 欧美成人看片黄a免费看 | 亚洲AV无码精品一区二区三区 | 免费观看一级视频 | 自拍偷拍五月天 | 美女三区 | 国产又粗又大又爽 | 欧美人一级淫片a免费播放 干干日日 | jzjzjz欧美丰满少妇 | 国产1区在线观看 | 最近中文字幕av | 最新av导航 | 91xxx在线观看 | av网址有哪些 | 1000部av| 男女做爰猛烈高潮描写 | 国产激情视频 | 最污的网站| 国产一级免费观看 | 黄色网址在线免费观看 | 视频在线免费观看 | 国产一区二区三区免费看 | 色一情一乱一伦一区二区三区 | 欧美一级淫片免费视频黄 | 国内精品久久久久久久影视简单 | 欧美拍拍 | 成年人黄色录像 | 欧美最顶级a∨艳星 | 欧美韩一区二区 | 亚洲视频在线播放免费 | 黄色片网站大全 | 亚洲视频免费在线 | 精品人妻一区二区三区四区不卡 | 亚洲高清视频在线观看 | 成人福利在线观看 | 国产农村乱对白刺激视频 | 蜜桃视频在线观看网站 | 亚洲色欲一区二区三区在线观看 | 少妇精品高潮欲妇又嫩中文字幕 | 中文字幕欲求不满 | 成人观看| 日韩涩| 人妻丰满熟妇岳av无码区hd | 一级黄色大片免费 | 日本视频免费在线 | 亚洲热久久| 巨胸爆乳美女露双奶头挤奶 | 波多野结衣久久久久 | 国产69精品久久 | 日本大尺度吃奶做爰久久久绯色 | 亚洲av永久无码精品一区二区国产 | 五月天婷婷导航 | 久久调教 | 9l蝌蚪porny中文自拍 | 精品在线一区 | 免费黄色a | 成年人久久| 大尺度做爰无遮挡露器官 | 国产精品免费视频观看 | julia一区| 日韩视频在线一区二区 | 日本网站免费观看 | 欧美性猛交xxxx免费看久久久 | 亚洲www.| 国产一级久久久久毛片精品 | av国产一区 | 国产奶水涨喷在线播放 | 国产一区二区三区视频播放 | 久久精品免费 | 久久综合在线 | 日韩精品视频播放 | 手机看片日韩福利 | 猫咪av在线| 91老师片黄在线观看 | 女人和拘做爰正片视频 | 欧美日韩成人在线观看 | 日本一级淫片免费放 | 99热在线观看 | 欧美激情网 | 黄色网页在线观看 | 在线观看的av网址 | 久久综合亚洲色hezyo国产 | 野花视频在线免费观看 | 人妻体体内射精一区二区 | 97人妻一区二区精品免费视频 | 久久影视中文字幕 | 欧美亚洲 | 日本在线色| 欧美成人手机在线 | 欧美成人aa | 国产丝袜视频 | 精品欧美在线 | 色av网| 国产精品人成 | 亚洲国产精品一 | 先锋av网| 中文字幕乱码一区二区三区 | 激情开心站 | 在线视频中文字幕 | 黄色一级录像片 | 精品一区二区三区中文字幕 | 天堂网一区 | 在线视频1卡二卡三卡 | 免费三级av | 成av人片一区二区三区久久 | 日韩久久免费视频 | 日本人视频69式jzzij | 97视频精品| 日本精品99 | 囯产精品一品二区三区 | 日韩免费视频 | 欧美色爽| 久久成人久久爱 | 日韩国产在线播放 | 国产91国语对白在线 | 国产精品一区二区三区免费视频 | 在线免费观看麻豆 | 在线成人福利 | 日韩两性视频 | 黑人操亚洲女人 | 中文字幕亚洲精品在线观看 | 1024日韩 | 在线a天堂 | 久久久久久穴 | 成人交配视频 | 日韩91在线| 操丝袜少妇 | 免费黄色高清视频 | 日本熟妇一区二区三区 | 日韩精品一二三四区 | 精品无码久久久久 | 国产日韩在线播放 | 成人h动漫精品一区 | 美女网站免费观看 | 日本a级在线| 黄页在线观看 | 网友自拍一区 | 三级色网 | 国外成人在线视频 | 一区二区免费看 | 黄色免费网站 | caopor在线视频 | 欧美另类xxx | 极品少妇在线观看 | 三浦理惠子av在线播放 | 亚洲精品免费av | 2022精品国偷自产免费观看 | 最新成人在线 | 久久老司机 | 精品蜜桃av | 成人免费播放视频 | 日韩精品免费一区二区三区竹菊 | 久久久.com | 日韩1区2区3区 | 久久国产高清 | 娇喘顶撞深初h1v1 | 中文字幕乱码一区二区 | 欧美黄色a| 99久久国产热无码精品免费 | 91麻豆精品一区二区三区 | 四虎永久免费影院 | 波多野结衣av在线免费观看 | 麻豆91网站 | 国产精品视频久久 | 亚洲视频一区在线观看 | 日本wwwxxxx| 人人亚洲 | 麻豆视频污| 国产又黄又粗又硬 | 亚洲一区在线观看视频 | 成年网站在线观看 | 亚洲成a人片77777精品 | 国内精品视频在线 | 影音先锋资源av | 天堂网中文 | 成人字幕| 色综合久久综合 | 奇米狠狠干 | 精品国产九九九 | 欧美国产一区二区 | 成人黄色片在线观看 | 国产精品区一区二 | 女同一区二区 | 欧美乱妇狂野欧美视频 | 欧美色999 | 欧美黑人又粗又大的性格特点 | 精品视频导航 | 九色tv| 无码人妻精品一区二区三区温州 | 午夜羞羞影院 | 亚洲AV无码精品自拍 | 国产欧美日本在线 | 在线播放不卡 | xx在线视频| 国产精品福利影院 | 久久综合社区 | 91精品在线播放 | 国产小视频在线观看 | 欧美日韩一区二区三区四区五区 | 美女xx00| 日本激情影院 | 三级三级久久三级久久18 | 干b视频在线观看 | 一区二区三区精品视频 | 人人澡人人爱 | 四虎影院免费 | 日韩干| 欧洲成人一区二区三区 | wwww欧美 | 国产日韩中文字幕 | 欧美黄页在线观看 | 亚洲欧美乱综合图片区小说区 | 亚洲成av | 亚洲成人黄| 亚洲com | 国产噜噜噜 | 在线一级视频 | 婷婷丁香激情 | 亚洲av成人片色在线观看高潮 | 亚洲精品色午夜无码专区日韩 | 欧美三级午夜理伦 | 国产成人精品久久久 | 日韩在线一二三 | 中文字幕第31页 | 毛片在线视频 | 成人免费版| 91在现看| 永久免费av无码网站性色av | 一道本av| 99精品一区| 亚洲AV无码久久精品国产一区 | 日韩一级伦理片 | 99精品一区二区三区无码吞精 | 人人妻人人澡人人爽国产一区 | 国产精品视频久久久久久久 | 四虎影视成人 | 黄色在线视频网站 | 狠狠人妻久久久久久综合麻豆 | 欧美激情专区 | 国产精品丝袜黑色高跟鞋的设计特点 | 欧美精品欧美极品欧美激情 | 日韩午夜剧场 | a级片免费视频 | 亚洲熟妇av乱码在线观看 | 特级西西人体wwwww | 亚洲草逼 | 在线日韩中文字幕 | 国产亚洲色婷婷久久99精品 | 91日韩精品| 97视频免费在线观看 | 亚洲人掀裙打屁股网站 | 激情成人综合 | 国产精品第一 | 天天亚洲 | 超碰超碰超碰超碰 | 91精品久久久久久粉嫩 | 少妇精品偷拍高潮白浆 | 中出少妇 | 日本国产精品 | 特级毛片www | 风间由美一区 | 日韩综合精品 | 欧美天天性影院 | 久久久久久av无码免费看大片 | 国产精品一区二区三区高潮 | 九九久久免费视频 | 成人性生交生交视频 | 福利资源在线 | 国产又黄又粗 | 视频一区 国产 | 日韩日b| 伊人狠狠操 | 综合色天天 | 久久久国产一区二区 | 国产精品99久久久久久久 | 农村偷人一级超爽毛片 | 精品人妻一区二区三区麻豆91 | 97超碰人人模人人人爽人人爱 | 国产精品va| 欧美日韩精品在线播放 | 小辣椒福利视频导航 | 又黄又爽网站 | 亚洲第一第二区 | 日韩午夜av | 亚洲第四页| 国产亚洲精品久久久久久 | 日本日韩欧美 | 中文字幕在线观看免费高清 | av不卡免费观看 | 午夜婷婷网| 久久99精品国产麻豆91樱花 | 69久久精品无码一区二区 | 中文字幕无线精品亚洲乱码一区 | 久久亚洲欧美 | 香蕉一级片 | 女女百合高h喷汁呻吟玩具 国产精品无码乱伦 | 日本黄色激情视频 | 日韩字幕| 最全aⅴ番号库网 | 喷水av| 日本成人小视频 | 男女视频在线观看免费 | 熟女肥臀白浆大屁股一区二区 | 日韩欧美中字 | 欧美日韩精品在线 | 久久久久无码国产精品一区李宗瑞 | 日韩国产成人在线 | 日韩草逼视频 | 日韩国产第一页 | 亚洲理论在线观看 | √天堂8资源中文在线 | 国产精品麻豆视频 | 九九超碰 | 日韩伦人妻无码 | 国产真实乱人偷精品人妻 | 国产精品五月天 | 精品| 草久免费视频 | 欧洲一区二区在线 | 国产精品视频在线观看 | 色综合色综合 | 久久精品视频7 | 久久99亚洲精品 | 精品人妻一区二区免费 | 人人人妻人人澡人人爽欧美一区 | 天天操天天操天天操天天 | 日韩欧美中文字幕一区 | 女人扒开腿让男人桶爽 | 精品福利在线 | 久久r精品| a∨色狠狠一区二区三区 | 无码精品在线视频 | 免费a在线| 无码精品人妻一区二区三区影院 | 成人性爱视频在线观看 | 欧洲在线观看 | 99re这里只有 | 亚洲在线视频一区 | 女同动漫免费观看高清完整版在线观看 | 青青偷拍视频 | 全黄一级男人和女人 | www.夜夜操 | a一级视频| 精品久久久久久久久久久 | 秋霞av一区二区三区 | 一级特黄aa大片欧美 | 日本少妇aaa| 亚洲精品视频专区 | 婷久久| 亚洲成人av影片 | 色婷婷精品国产一区二区三区 | 欧美猛操| 日韩国产一区 | 国产大屁股喷水视频在线观看 | 久久亚洲电影 | 亚洲在线 | 欧美亚洲色综久久精品国产 | 人妻人人澡人人添人人爽 | 熟女少妇a性色生活片毛片 久久久伦理片 | 99精品在线视频观看 | 美女毛片网站 | 免费天堂av | 亚洲最大的黄色网 | 欧美黄页在线观看 | 奇米精品一区二区三区四区 | 99中文字幕 | 日本韩国欧美中文字幕 | 日韩精品成人一区 | 久久久精品国产免费爽爽爽 | 亚洲色图吧 | 欧美一区二区 | 天天视频黄色 | 人人草人人爱 | 无码国产精品一区二区免费16 | 精品一区二区三 | 爱射网 | 成人性生交大片免费看 | 黄色高清视频在线观看 | 久久机热 | 久久久久久网址 | www五月| 91综合在线| 人妻精品一区 | 91精品久久久久久 | 特级西西444www大精品视频免费看 | 成人免费毛片xxx | 日本午夜一区二区 | 亚洲AV无码一区二区三区性 | 欧美色吊丝 | 午夜专区 | 欧美精品一区二区三区蜜臀 | 蜜臀久久99精品久久久画质超高清 | 日日干夜夜爱 | 黄色日批网站 | 成年人免费高清视频 | 精品综合久久久久 | 成人一区二区免费视频 | www.男女 | 黄色一级免费视频 | 四虎最新站名点击进入 | 天天透天天干 | 97视频国产| 91青草视频 | 99国产精品久久久久久久 | 韩日产理伦片在线观看 | 欧美大肥婆大肥bbbbb | 欧美骚少妇 | 欧美 日韩 国产 成人 在线观看 | 成人在线日韩 | 海角社区登录 | 一区二区三区四区五区视频 | 久久欧洲 | www.亚洲一区 | 91叉叉叉 | 会喷水的亲姐姐 | 亚洲一二三四区 | 男女搞鸡网站 | 国产亚洲精品久久久久久打不开 | 亚洲一区精品视频 | 成人免费毛片入口 | 狠狠干综合网 | 国产色在线观看 | 中文字幕第11页 | 谁有免费黄色网址 | 插综合 | 韩国精品视频 | 色视频免费观看 | 伊人伊色 | 五月天看片 | 91午夜剧场 | 欧美黄色免费看 | 久久国产精品久久精品国产 | 手机看片久久久 | 欧美日韩精品在线观看视频 | 青青草国产精品 | 免费在线日韩 | yy6080午夜 | 国产精品美女高潮无套 | 2024国产精品视频 | 岛国二区 | 午夜国产 | 三年中文免费观看大全动漫 | 黄色91视频| 91禁看片| 一二三区中文字幕 | 亚洲AV无码成人精品区明星换面 | 美日韩黄色片 | 飘花影院伦理片 | 亚洲美女性生活视频 | 狠狠操狠狠| 婷婷色婷婷 | 日韩二区视频 | 久草免费在线视频 | 黄色免费视频 | 麻豆视频一区二区三区 | 亚洲色图3p| 麻豆国产尤物av尤物在线观看 | www.久久艹 | 中文字幕精品无 | 深爱激情五月婷婷 | 国产aa视频 | av免费网站在线观看 | 天天操人人干 | 国产无套丰满白嫩对白 | 天天爽夜夜爽夜夜爽 | 妺妺窝人体色WWW精品 | 中国少妇乱子伦视频播放 | 亚洲久久一区 | 国产精品一品二区三区的使用体验 | 亚洲另类在线观看 | 欧美亚洲综合视频 | 婷婷色在线观看 | 一级做a视频 | 亚洲狠狠爱| 韩国禁欲系高级感电影 | a级无遮挡超级高清-在线观看 | 午夜免费大片 | 国产精品久久久久久婷婷天堂 | av导航在线观看 | 欧美日韩精品免费 | 四虎网址在线观看 | 麻豆精品国产传媒av | 亚洲欧美综合另类 | 操操干| 欧美精品一区在线 | 综合色影院 | 羞羞的视频在线观看 | 成a人v| 天天干天天操天天摸 | 插女生下面 | 青草99| 欧美成人短视频 | av在线一区二区 | 成人性生活免费视频 | 一区二区导航 | 亚洲欧美黄 | 性高跟鞋xxxxhd人妖 | 久久久久久网 | 日韩不卡免费视频 | 日本不卡一区二区三区 | 午夜视频在线观看视频 | 3d动漫精品啪啪一区二区下载 | 极品少妇视频 | 黄色小说在线看 | 日韩在线观看一区二区 | 久久91亚洲人成电影网站 | 99热这里只有精品9 日本一二三区视频 | av一区二 | 另类第一页 | 成人在线国产视频 | aaaa毛片 | 久久人人妻人人人人妻性色av | 国产色视频一区二区三区qq号 | 久久精品网址 | 高h校园不许穿内裤h调教 | 日韩精品在线视频 | 欧美毛茸茸 | 香蕉视频网页版 | 国产免费看黄 | 国产免费高清 | 亚洲高清在线观看视频 | 麻豆毛片| 色婷婷在线观看视频 | 日韩aaaaaa | 美女扒开尿口让男人桶 | 欧美特级黄 | 日日噜噜噜噜人人爽亚洲精品 | 国产调教打屁股xxxx网站 | 黑人操亚洲女 | 香港三级日本三级韩国三级 | 青青视频在线免费观看 | 国产精品成人无码 | 91精品福利 | 阿拉伯性视频xxxx | 日韩欧美中文字幕一区 | 香蕉视频黄在线观看 | 美女被出白浆 | 国产一区二区三区视频在线 | 日韩1区| 日韩精品电影 | 99久久久久成人国产免费 | 成人在线观 | 欧美性一区二区 | 色视频网站在线观看 | 日本福利片在线观看 | 亚洲香蕉在线 | 日韩精品一区二区三区电影 | 日本高清免费不卡视频 | 亚洲天堂网在线观看 | 香港一级纯黄大片 | 天天爽av | 亚洲激情文学 | 在线观看日韩 | 国产femdom调教7777 | 日本一区二区三区视频在线 | 中文字幕日韩在线播放 | 国产人成免费视频 | 亚洲天堂av片 | 久久亚洲精华国产精华液 | 国产精品久久久久久久久 | 理论片第一页 | 中文字幕第15页 | 国产日韩在线观看视频 | 国产高潮视频在线观看 | wwwxxx日本 | 久草成人 | 色5566| 男女免费网站 | 免费国产一区二区三区 | 日韩欧美一区二区三区在线 | 免费看91的网站 | 欧美精品91 | 美女啪啪无遮挡 | 欧美在线视频网站 | 能看毛片的网站 | 美女被草网站 | 夜夜爱爱| 日本不卡中文字幕 | 日韩欧美中字 | 麻豆网站在线看 | 97人妻天天摸天天爽天天 | 在线毛片观看 | 中国免费黄色片 | 在线国产精品视频 | av大帝在线 | 亚洲国产日韩在线一区 | 激情五月婷婷小说 | 欧美成视频 | 国产一级淫 | 日韩精品在线观看视频 | 国产亚洲制服 | 蓝牛av | 成人国产一区二区 | 艳母日本动漫在线观看 | 日本一区二区三区视频在线观看 | 92久久 | 午夜影院免费看 | 日本欧美在线播放 | 午夜av一区二区三区 | 欧美亚一区二区三区 | 黄色录像三级 | 少妇自拍视频 | 波多野结衣精品在线 | 秋霞在线一区二区 | 97高清国语自产拍 | 99久久精品国产一区色 | 91蜜桃在线| 720url在线观看免费版 | 久久久久伊人 | 鬼灭之刃柱训练篇在线观看 | 亚洲高清毛片 | 自拍偷拍在线视频 | 亚洲老女人| 国产资源在线观看 | 女人舌吻男人茎视频 | 印度午夜性春猛xxx交 | 2023天天操 | 在线观看中文 | 爱爱视频免费网站 | 日本熟女一区二区 | 青草精品 | 国产无遮挡裸体免费视频 | av无码精品一区二区三区宅噜噜 | 久久爱一区二区 | 小视频免费在线观看 | 性大毛片视频 | 成人手机在线免费视频 | 精品免费国产一区二区三区四区 | 777奇米色| 亚洲av综合色区无码二区爱av | 风流老熟女一区二区三区 | 黄色大片儿. | 国产免费久久精品国产传媒 | 国产在线成人 | 首尔之春在线观看 | 波多野在线播放 | 中文字幕另类 | 国精品一区 | 亚洲字幕成人中文在线观看 | 国产美女久久久久 | 亚洲国产欧美精品 | 国产一区免费视频 | 成人开心网 | 在线免费观看污视频 | 91最新在线视频 | 西川结衣在线观看 | 精品人伦一区二区三区蜜桃免费 | 7m精品福利视频导航 | 亚洲男人天堂av | 精品国产一区二区三区久久久狼 | av无码精品一区二区三区宅噜噜 | 日本韩国中文字幕 | 毛片高清| 精品产国自在拍 | 一区二区三区黄色 | 亚洲一区美女 | 国产三级一区二区 | 精品在线观看一区 | 免费网站www在线观看 | 日韩经典在线 | 麻豆av网站 | 自拍偷拍在线播放 | 国产伦精品一区二区三区视频痴汉 | 黄视频在线观看免费 | 色狠av| 永久免费未满蜜桃 | 永久免费看片 | 成人在线网站 | 国产aⅴ一区二区三区 | 五月天91 | 精品一区二区三区在线观看 | 欧美在线v| 91麻豆精品国产91久久久久久久久 | 欧美视频第二页 | 日韩中文字幕在线一区 | 99精品免费视频 | 黄色aa视频 | 国产欧美精品一区二区色综合 | 青青草国产精品 | 超碰666| 污视频在线观看免费 | www.com日本 | 亚洲最大av | 免费日批网站 | 91在线播放视频 | 亚洲AV成人无码网站天堂久久 | 久久久久久国产精品免费免费 | 国产麻豆剧传媒精品国产av | 无码人妻丰满熟妇区96 | 肥臀浪妇太爽了快点再快点 | 又黄又爽在线观看 | 久草日韩 | 精品国产一区二区三区av性色 | 国产伦理精品 | 年下总裁被打光屁股sp | 玖玖爱资源站 | 黄色片欧美 | 双性受孕h堵精大肚生子 | 欧美激情国产精品 | 99riav视频 | 国产精品视频一区二区在线观看 | 潘金莲一级淫片aaaaa武则天 | www在线免费观看 | 国产精品乱| 国内成人自拍 | 伊人网在线视频 | 亚洲视频在线播放免费 | 日本xxx在线观看 | 欧美日韩电影一区二区 | 在线中出| 色哟哟无码精品一区二区三区 | 白丝一区 | 亚洲mv一区 | 全国男人的天堂网 | 色狠狠一区二区三区 | jizjiz中国少妇高潮水多 | 精精国产 | 日本中文在线播放 | 国产超碰人人模人人爽人人添 | 91爱视频 | 欧美在线免费观看 | 成人在线h | 又黄又爽在线观看 | 亚洲免费观看高清在线观看 | 久久久噜噜噜 | 亚洲第1页 | 国产20页| 综合网五月天 | 国产视频一二三四区 | 日韩av高清在线播放 | 中国国产毛片 | 97色伦影院| 亚洲青青草原 | 国产成人精品无码免费看夜聊软件 | 日韩高清成人 | 天堂av观看 | 久久免费网 | 欧美日韩精品一区二区在线播放 | 欧美一区亚洲二区 | 人成在线 | 国产视频一区二 | 一区二区免费视频 | 爱爱免费网址 | 色香欲综合网 | 久久久久久久极品内射 | 亚洲午夜av| 日韩色综合网 | 加勒比久久综合 | 欧美一区 | 日本一级黄 | 欧美爱爱网 | 激情福利视频 | av日韩中文字幕 | 一区二区三区免费在线视频 | 这里只有精品视频在线观看 | 欧美成人精品欧美一级私黄 | 中文av网站| 亚洲一片| 黄色三级网站 | 天天草天天操 | 五月婷婷激情四射 | 午夜国产| 四虎影院黄色 | 欧美在线一级 | 亚洲精品欧美在线 | 国产成人精品一区二三区四区五区 | av不卡免费在线观看 | 色婷婷久久综合中文久久蜜桃av | 伊人加勒比 | 中文字幕av一区二区三区谷原希美 | 无码人妻精品一区二区三区9厂 | 蜜臀av在线播放 | 玩弄人妻少妇500系列视频 | 国产午夜精品无码 | 美女扒开粉嫩的尿囗给男生桶 | 中文字幕日本在线观看 | 国内成人自拍视频 | 中文字幕一区二区三区5566 | 91精品看片 | 一本色道久久综合亚洲精品 | 香蕉视频在线免费播放 | av鲁丝一区鲁丝二区鲁丝三区 | 日本一区二区三区免费观看 | 777精品伊人久久久久大香线蕉 | 黄色av免费网站 | 日本精品视频一区二区 | 中文字字幕码一二三区 | 日韩欧美国产精品综合嫩v 日韩精品久久久久久久的张开腿让 | 国产一区欧美一区 | 成人动漫av在线 | jizz中国少妇高潮出水 | 免费观看一级黄色片 | 亚洲一区不卡 | 日本一区二区在线播放 | 国产日韩欧美亚洲 | 99色这里只有精品 | 国产精品久久久久久久久久免费看 | 欧美一区二 | 99精品视频免费看 | 丝袜诱惑一区 | 天堂在线视频免费观看 | 性生交大片免费看 | 日本亲近相奷中文字幕 | 精品无码久久久久久久久 | 少妇喷白浆 | 亚洲天堂二区 | 成人尹人| 黄色av网站免费在线观看 | 久久人精品 | 日韩在线视频不卡 | 日韩美女福利视频 | 激情中文字幕 | 91插插视频 | 国产一级片中文字幕 | 一区二区在线不卡 | 亚洲91视频 | 欧美自拍视频 | 丝袜综合网 | 在线观看毛片网站 | 国产第20页 | 日本www在线 | 伊人影音| 芒果视频污污 | 91官网在线观看 | 亚洲色图导航 | 中文字幕日产乱码中 | 色欲无码人妻久久精品 | 欧美黄色录像视频 | av永久免费观看 | 国产噜噜噜噜久久久久久久久 | av动漫在线免费观看 | 浮力影院国产第一页 | 久久精品视频9 | 在线免费av网址 | 看毛片的网站 | 中文字幕一区不卡 | 黄网站免费入口 | 免费二区 | 久草国产视频 | 国产毛片毛片毛片毛片毛片 | 无码少妇一级AV片在线观看 | 成人免费看片入口 | 国产一区色 | 欧美在线天堂 | 少妇淫片| 人人爱人人射 | 日韩91| 在线观看国产网站 | 欧美69精品久久久久久不卡 | 欧美与黑人午夜性猛交久久久 | 成人免费视频一区二区 | 久久亚洲精少妇毛片午夜无码 | 久操成人 | 伊人狼人久久 | 欧美三级网 | 精品一区二区三区免费看 | 日韩一区二区三区电影 | 99草视频 | 一区二区三区在线电影 | 操丝袜少妇 | 国产精品扒开腿做爽爽爽男男 | 婷婷中文字幕 | 国产自在线拍 | 香蕉色综合 | 偷拍网亚洲 | 免费av网址在线观看 | 国产一级aa大片毛片 | 久久精品在线 | 伊人天堂在线 | 熟女一区二区三区四区 | 久久久无码人妻精品无码 | 国产午夜在线播放 | 青青草逼 | 日韩中文字幕在线免费观看 | 91高清在线 | 亚洲大逼 | 亚洲综合一区在线 | 少女视频的播放方法 | 欧美日韩在线一区二区三区 | 2018av在线 | 操操操插插插 | 亚洲一级片 | 精品精品 | 加勒比伊人| www.婷婷| 可以直接看av的网址 | 国产精品亚洲一区二区三区 | 国产玖玖视频 | 日韩黄色在线观看 | 亚洲国产成人精品女人 | xvideos永久免费入口 | 欧美草草 | 久久精热 | av2014天堂网 | 国产人人插 | 国产123区| 亚洲成人h | 青草99| 操操操网 | 又色又爽又黄无遮挡的免费视频 | 99热免费 | 天堂中文在线资源 | 欧美久久成人 | 国产成人精品一区二区三区网站观看 | 国产精品精东影业 | 久久伊人免费 | 久久久美女视频 | 亚洲区小说区图片区 | 交做爰xxxⅹ性爽 | 免费a级片在线观看 | 亚洲日本视频 | 毛片视 | 狠狠躁夜夜躁xxxxaaaa | 国产三级精品三级在线观看 | 日韩精品无| 色欲一区二区三区精品a片 美日韩av在线 | 天天干天天爱天天操 | 日韩午夜| 久草视频在线免费播放 | 国产精成人品免费观看 | 99在线免费观看视频 | 欧美成人aaa片一区国产精品 | 欧美日韩福利视频 | 色女人网| 丁香婷婷综合网 | 国产专区视频 | 精品在线一区二区 | 香港三日本8a三级少妇三级99 | 日本一区二区三区在线观看 | 高hnp视频| 在线视频国产一区 | 中文字幕影片免费在线观看 | 亚洲情射 | 色综合天天综合网天天狠天天 | 欧美日本一本 | 日韩在线1 | 天天添天天射 | 手机天堂网 | 美女视频黄色免费 | 亚洲性生活视频 | aaaaaav| 日韩女优一区 | 在线观看麻豆视频 | 国产欧美网站 | 波多野吉衣视频在线观看 | 欧美午夜一区二区 | 波多野结衣人妻 | 国模无码视频一区 | 豆花视频在线 | 欧美三级一区 | 依人成人综合网 | 国产精品福利小视频 | 4444亚洲人成无码网在线观看 | 人人草人人干 | 私密视频在线观看 | 99久久黄色 | 日日麻批 | 欧美a免费| 国产中文字幕在线观看 | 国产乡下妇女做爰 | 日本久久中文字幕 | 99视频网| 国产女人在线 | 看看毛片| 嫩嫩av| 少妇高潮视频 | 中文字幕在线2018 | 精品人妻无码一区二区三区换脸 | 中文字幕在线亚洲 | av在线小说 | 农村少妇久久久久久久 | 91视频免费观看 | 操操操操操操 | 91色区| 精品国产一区在线观看 | 91色吧| 欧美另类日韩 | 亚洲精品图区 | 99国产精品久久久久久久成人 | 福利二区视频 | 成人看| 林由奈在线观看 | 污污污www精品国产网站 | 久久久久久麻豆 | 日韩美女久久 | 河北彩花中文字幕 | 国产h视频 | 国产精品xxxxx | 亚洲AV无码成人片在线观看 | 国产成人毛片 | 国产伦精品一区二区三区视频女 | 一道本久久| 日韩va | www.com捏胸挤出奶 | 婷婷激情小说网 | 你懂的在线免费观看 | 自拍偷拍视频网站 | 在线成人av网站 | 亚洲国产精品成人无久久精品 | 欧美激情视频网 | 国产三级网站 | 91超薄丝袜肉丝一区二区 | 日韩精品福利 | 天天操天天爽天天射 | 欧美做爰性生交视频 | 波多野结衣视频在线播放 | 久久综合狠狠综合久久综合88 | 午夜美女网站 | 天堂二区| 国产一区二区三区在线视频 | 欧美日韩生活片 | 少妇25p | 性少妇bbw张开 | 男人的影院 | 成人aaaa | 欧美成人手机在线 | 久久亚洲天堂网 | 男人添女人下部高潮全视频 | 日韩综合中文字幕 | 色欲av永久无码精品无码蜜桃 | 网爆门在线 | 日本少妇吞精囗交 | 国产人成无码视频在线观看 | 国产极品在线观看 | av在线播放中文字幕 | 免费网站观看www在线观 | 呦呦网 | 国产伦精品一区二区三区视频痴汉 | 麻豆系列 | 国产精品波多野结衣 | 成人av资源站 | 我和我的太阳泰剧在线观看泰剧 | 少妇性bbb搡bbb爽爽爽欧美 | 亚洲插插插 | 调教一区 | 视频一区 国产 | 国产精品日韩在线 | 日本久久高清 | 911美女片黄在线观看游戏 | 九一精品在线 | 久久中文字幕一区 | 老司机福利院 | 黄色在线网站 | 一区二区三区在线免费 | 九九碰 | 国产精品蜜 | 亚洲一二三精品 | 香蕉黄色网 | 一级a毛片 | 成人18视频在线观看 | 国产成人在线视频 | 亚洲成人午夜电影 | 人成午夜| 日韩精品影视 | 黄色av中文字幕 | 老司机成人网 | 国产精品99久久久久久宅男 | 亚洲色图欧美日韩 | 亚洲aⅴ在线 | 日韩中文在线播放 | 欧美一级网址 | 狠狠艹| 午夜h| 中文字幕精品一区二 | 日本美女全裸 | 久久久久久91亚洲精品中文字幕 | 黄色一级大片在线免费看国产一 | 91片黄在线观看喷潮 | 黄色片aaaa| 蜜桃91丨九色丨蝌蚪91桃色 | 天天操天天爱天天干 | 日韩不卡免费 | 男女无遮挡xx00动态图120秒 | 极品尤物一区二区 | 91九色国产 | 亚洲区色 | 在线亚洲观看 | 午夜剧场免费观看 | 在线观看免费av网站 | 26uuu国产| 夜夜撸网站 | 日韩精品一二区 | 小向美奈子在线观看 | 波多野结衣中文字幕一区二区 | 国产麻豆一区二区三区 | 99国产精品视频免费观看一公开 | 嫩草av在线 | 亚洲理论视频 | 久草免费新视频 | 久久男人| 日日摸日日 | 欧美三级在线 | 91重口味| 丝袜脚交国产在线观看 | 妖精视频在线观看免费 | 91久久精品视频 | 无码人妻精品一区二区50 | 91素人约啪 | 日韩青青草 | av在线免费网址 | 国产99热 | 欧美一区二区三区成人 | 无码人妻久久一区二区三区蜜桃 | 国产一级一片免费播放 | 国产av无码专区亚洲av毛网站 | 一本色道久久综合 | 国产91一区 | av电影在线观看不卡 | 噜噜噜精品欧美成人 | а√在线中文网新版地址在线 | 久操色 | 欧美人日b | 免费又黄又爽又猛大片午夜 | 亚州成人 | 久久精品视频9 | 96久久久 | 国产精品美女一区二区三区 | 香蕉黄色片 | 午夜免费福利视频 | 欧美日韩精品一区 | 欧美被狂躁喷白浆精品 | 在线成人免费视频 | 奇米影视狠狠干 | 国产精品麻豆成人av电影艾秋 | 成熟妇人a片免费看网站 | 国产性精品| 国产成人无码一区二区在线观看 | 欧美日韩亚洲一区二区 | 一本一道久久a久久精品综合 | 国内精品一区二区 | 亚洲欧美在线一区 | 亚洲20p | 欧美精品成人在线 | 久草国产在线 | 女人舌吻男人茎视频 | 日本a天堂| 日本性视频网站 | www日本色| 亚洲欧美日韩综合在线 | 国产一区二区三区欧美 | 欧美专区一区 | 日本成人免费视频 | 偷偷操网站 | 师生出轨h灌满了1v1 | 日韩丰满少妇无码内射 | 亚洲区小说区图片区 | 俺也去婷婷 | 中文精品一区 | 国产色 | 美女av网 | 丰满岳妇乱一区二区三区 | 亚洲欧美成人网 | 国产精品欧美综合亚洲 | 一区二区www | 中文字幕日韩精品一区 | 国产成人毛片 | 亚洲最大黄网 | 美女在线观看视频 | 成人你懂的 | 男女激情网址 | 日本成人中文字幕 | 欧美性一级 | 蜜臀久久精品久久久久久酒店 | 中文字幕在线色 | 国内成人在线 | 黑人中文字幕一区二区三区 | 无码人妻精品一区二区三区99v | 天天草比| 国产黄色在线播放 | 山外人精品影院 | 国产无套内射又大又猛又粗又爽 | www好男人| 免费看欧美黑人毛片 | 精品久久人妻av中文字幕 | youjizz.com最新 | 亚洲男人天堂2024 | 爱爱的网站 | 欧美日一区二区 | 久久一精品 | 女futa攻玩遍整个后宫 | 欧美18av| 久久色网| 91美女片黄在线观看游戏 | 刘亦菲久久免费一区二区 | 亚洲精品一区二区三区影院忠贞 | 无码一区二区 | 国产精品视频在 | 亚洲经典一区二区三区 | www.com日本 | 超碰99在线 | 亚洲影视一区二区三区 | 亚洲国内自拍 | 熟妇人妻久久中文字幕 | 芭乐视频色 | 男女插插插视频 | 中文字幕福利 | 精品国自产在线观看 | 三级a做爰全过程 | 亚洲成肉网 | 国产一区二区三区四区五区 | 日韩成人专区 | 99爱在线 |