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不卡一区二区三区 | 91视频社区| 小明成人免费视频 | 久久精品国产熟女亚洲AV麻豆 | 中文字幕欧美人妻精品 | 一级特黄aaa | 中文字幕一区二区三区日韩精品 | 污污网站在线观看视频 | 亚洲黄色网络 | 一级黄网 | 玖玖视频| www黄色| 亚洲激情av| 乳色吐息在线观看 | 成人免费影院 | 日本一区二区三区在线视频 | 伊人网影院 | 亚洲色欲色欲www在线观看 | 伦理片中文字幕 | 亚洲精品一线 | 免费日韩一区二区 | 国产第一福利 | a亚洲天堂 | 欧美三级一区二区 | 成人无码www在线看免费 | av撸撸在线 | 91性色 | 午夜一级黄色片 | 国产伦精品一区二区三区高清版禁 | 999免费视频 | 久久99精品久久久久婷婷 | 九九热视频在线播放 | 亚洲精品97久久中文字幕无码 | 国精产品一区一区三区免费视频 | 成人av毛片 | 91久久人澡人人添人人爽欧美 | 黄色录象片 | 国产suv一区二区 | 国产精品一区二区三区高潮 | 国产黄a | 麻豆网站入口 | 日韩成人一区二区三区 | 国产精品国产三级国产普通话对白 | 欧美日韩电影一区 | 手机看片国产 | 伊人在线视频 | 亚洲成人av在线播放 | 日韩淫片 | 干夜夜| 五月天91 | 人人爱爱| 成人午夜视频精品一区 | 国产一区二区精品久久 | 免费无码又爽又黄又刺激网站 | 日本在线网站 | 18久久 | 日本久久爱| 插插插av | 亚洲av色区一区二区三区 | 久久电影一区二区 | 日日射天天射 | 亚洲淫片| 黄色小视频在线 | 亚洲人天堂 | 日本中文字幕免费 | 一区中文字幕 | 揄拍自拍 | 欧美日韩免费观看视频 | 精品国产乱码久久久久久108 | 成人一级片在线观看 | 成熟女人毛片www免费版在线 | 天天色av | 日本一级二级视频 | 女女互磨互喷水高潮les呻吟 | 亚洲欧美日韩一区二区三区四区 | 久久精品丝袜高跟鞋 | 亚洲熟女一区二区三区 | 美女av网 | 一区二区三区在线免费 | 91精品国产一区二区三区蜜臀 | 中文字幕 国产精品 | 欧美日本色 | 国产日韩欧美在线观看 | 91网站在线免费观看 | 欧美日韩乱 | 国产一区在线视频 | 一区二区三区免费在线观看 | 亚洲女人久久久 | 91毛片观看 | 国产一区二区三区四区五区六区 | 激情亚洲视频 | 欧美大胆a视频 | 色天堂影院 | 成人a网| 国产系列在线观看 | 冲田杏梨一区二区三区 | 欧美在线观看网站 | 日韩欧美一区二区三区视频 | 久久男人 | 久久91av| 国产精品111 | 免费视频一区二区 | 欧美男人操女人 | 一区二区三区精品 | 免费在线观看一区二区三区 | 天天色天天草 | 秋霞成人午夜鲁丝一区二区三区 | 99视频在线 | 秋霞国产| 久草中文在线 | 欧美日韩精品一区二区三区视频播放 | 欧美国产日韩一区二区三区 | 香蕉影院在线 | 四虎黄色片| 国产有码视频 | 私人毛片 | 精品国产精品 | 欧美激情天堂 | 97精品一区二区三区 | 天天舔天天射 | 香蕉网站在线 | 91快色 | 韩国三色电费2024免费吗多少钱 | www.17c.com喷水少妇 | 神马午夜视频 | 亚洲黄色免费在线观看 | 草草国产 | 亚洲一区图片 | 玩弄人妻少妇500系列 | 日韩美女爱爱 | 免费成人在线看 | 爽爽爽av| 干一干操一操 | 欧美性做爰大片免费 | 欧美a级在线观看 | 日本小视频网站 | 淫人网 | 久久久久久久久久国产 | 日本精品一二区 | 日韩精品乱码 | 成人深夜电影 | 97人人在线 | www.黄色片| 日本一区免费 | a在线观看视频 | 日韩视频一区二区三区 | 特黄特色大片免费播放器使用方法 | 2018天天干天天操 | 成人不卡视频 | 97久久久久久 | www一级片| 在线免费观看av网站 | 天堂视频在线免费观看 | www青青草 | 丰满肉肉bbwwbbww | 超碰老司机 | 久久婷婷综合国产 | 红杏出墙记 | 中文字幕在线观看视频www | 国产精品久久久久aaaa | 久久男人天堂 | 亚洲一二三四在线 | 中国老熟女重囗味hdxx | 免费人妻精品一区二区三区 | 中文有码在线播放 | 国产做受高潮 | 性色av一区二区三区红粉影视 | 国产激情影院 | 国产在线观看网站 | 国产破处av| 久久91亚洲人成电影网站 | 日韩有码在线视频 | 99精品欧美一区二区蜜桃免费 | 久久久免费精品 | 中文字幕日韩一区 | 国产伦精品一区二区三区四区免费 | 国产精品99久久久精品无码 | 国产精品成人一区二区三区电影毛片 | 久久久久无码国产精品不卡 | 国产精品成人免费 | 中国美女一级片 | 日韩性生交大片免费看 | 黄色片a级片 | 一级视频在线观看 | 日韩作爱 | 国产福利在线观看 | 五月天黄色小说 | 李华月全部毛片 | 亚洲欧美日韩在线播放 | 大肉大捧一进一出好爽mba | 91精品国产色综合久久不卡电影 | 国产丝袜av| 67194国产| 91久久综合亚洲鲁鲁五月天 | 成人av自拍 | 国产999| 欧美日韩第一页 | 美日韩av | 亚洲精品在线一区二区 | 女人18毛片毛片毛片毛片区二 | 欧美少妇一区二区三区 | 中文字幕精品视频在线 | 亚洲国产中文字幕 | 丝袜天堂 | 怡红院男人天堂 | 午夜精品一区 | 免费一级特黄特色大片 | 秋霞网一区二区三区 | 欧美中文字幕一区二区 | 午夜寂寞影视 | 精品久草 | 好男人在线视频 | 最新91在线 | 亚洲色图视频在线观看 | 看一级黄色大片 | 欧美视频一区在线 | 色黄网站| 免费毛片播放 | 亚洲卡一卡二卡三 | 国产亚洲一区二区三区不卡 | 国产一区二区三区视频播放 | 91综合色 | av天堂一区二区 | 精品视频在线免费 | 操操色| 伊人久久婷婷 | 色久阁 | 午夜免费大片 | 欧美一区欧美二区 | 无罩大乳的熟妇正在播放 | 日韩在线免费 | 色七七在线 | 美丽的姑娘观看在线播放 | 免费看黄的网址 | 先锋影音av资源网站 | 日本三级在线视频 | 久久成人亚洲 | 青青青视频在线播放 | 黄网站免费看 | 国产麻豆一区二区三区在线观看 | 国产黄色免费 | 国产aⅴ | 欧美射| 成人做爰69片免费 | 日韩av免费播放 | 日本亲子乱子伦xxxx50路 | 在线播放黄色网址 | 日韩中文字幕精品视频 | 欧美一区二区三区免费 | 善良的少妇伦理bd中字 | 国产视频大全 | 公交顶臀绿裙妇女配视频 | 亚洲av成人精品一区二区三区在线播放 | 亚洲精品中文字幕在线观看 | 黄网页在线观看 | 在线资源站 | 精品不卡一区二区三区 | 另类老妇性bbwbbw图片 | 日本女优中文字幕 | 日韩成人高清在线 | 欧美激情国产精品 | 精品国产乱码久久久久久闺蜜 | 日美毛片| 综合在线观看 | 日韩熟女精品一区二区三区 | 青草视频免费在线观看 | 国产一二在线 | 日韩av无码中文字幕 | 欧美10p | 91网站免费在线观看 | 国产成人在线看 | 亚洲视频区 | 日韩色一区| 香蕉综合在线 | 久久久国产高清 | 永久视频在线 | 四虎在线免费视频 | 国产精品久久久一区二区 | 成人欧美一区二区三区 | 66亚洲一卡2卡新区成片发布 | 波多野结衣中文字幕一区二区 | 国产乱码一区二区三区 | 欧美一级艳片视频免费观看 | 操你啦影院 | 欧美日韩中文字幕在线视频 | 欧美熟妇激情一区二区三区 | 日韩av大片在线观看 | 国产又大又粗又长 | 奇米四色在线视频 | 日本女优中文字幕 | 91精品国自产在线观看 | 综合久久久久久久 | 亚洲国产成人精品91久久久 | 欧美伦理一区 | 秋霞福利影院 | 96超碰在线| 亚洲一区在线免费 | 亚洲操片| 丁香花免费高清完整在线播放 | 日韩av黄色片 | 日韩一级黄色大片 | 一边摸一边抽搐一进一出视频 | 久久久国产免费 | 日本高清不卡一区 | 亚洲欧美成人 | 色网站在线播放 | 日韩av三级在线观看 | 色呦呦免费视频 | 在线观看一区二区三区四区 | 国产一区日本 | 污漫在线观看 | 亚洲欧美天堂 | 高清乱码免费看污 | 1769国产精品 | 中文字幕在线观看网站 | 风间由美一区 | 日本中文字幕在线观看 | 资源av| 人妻体体内射精一区二区 | 久久看片网 | 超碰1000 | 中文字幕在线第一页 | 日韩福利在线视频 | 樱花影院最新免费观看攻略 | 日韩av男人的天堂 | 青青一区二区 | 欧美性猛交一区二区三区精品 | 欧美色射 | 亚洲第一黄色 | 中文字幕一区二区三区四区免费看 | 国产淫| 青青草久久爱 | 黄色免费网站在线观看 | 韩国毛片视频 | free性中国hd国语露脸 | 亚洲精品v | 国产精品热久久 | 日本免费不卡视频 | 成人黄色小说在线观看 | 男女做那个的全过程 | 成人爱爱网站 | 中文字幕精| 亚洲成人中文字幕在线 | 377人体粉嫩噜噜噜 美女狂揉羞羞的视频 | 伊人影院在线播放 | 强制憋尿play黄文尿奴 | 国产三级av片 | 九九九国产 | 日本精品一区二区三区四区的功能 | 人人操日日干 | 黑巨茎大战欧美白妞 | 久久性感美女视频 | 中文在线第一页 | 久久精品女人 | 久久国产乱子 | 成人av电影在线观看 | 高清久久| 亚洲资源在线观看 | 国产精品国产馆在线真实露脸 | 午夜精品久久久久久久爽 | 午夜a视频| 国产美女一级片 | 午夜精品久久久久久久99热黄桃 | 视频一区中文字幕 | 99国产精品人妻噜啊噜 | 久久精品亚洲精品 | 日韩黄色免费看 | 一级特黄aa| 日本熟妇浓毛 | 三级在线看中文字幕完整版 | 小嫩女直喷白浆 | 国产日韩在线一区 | 久久99精品久久久久久水蜜桃 | 麻豆av免费看 | 在线观看不卡一区 | 国产一区在线免费观看 | 午夜诱惑痒痒网 | 修仙淫交(高h)h文 | 午夜免费激情视频 | 亚洲偷偷 | 久久免费观看视频 | 中日韩毛片 | 亚洲GV成人无码久久精品 | 久操中文 | 奇米影视777在线观看 | 亚洲精品伊人 | 亚洲乱码中文字幕 | 亚洲中文字幕无码爆乳av | 国产特级aaaaaa大片 | 午夜美女网站 | 亚洲av区无码字幕中文色 | 中文字幕亚洲精品在线 | 无码人妻一区二区三区线 | 亚洲黄色大全 | 免费av大全| 天天摸天天做天天爽 | 一区国产精品 | 日日爽日日操 | 一区二区福利 | 毛片视频播放 | 国产精品hd | 淫片网站 | 看黄网站在线 | 国产三区在线成人av | 欧美成人一区二区三区高清 | 亚洲aav| 无码人妻一区二区三区精品视频 | 蜜桃久久一区二区三区 | 国产亚洲精品熟女国产成人 | 手机看片久久久 | 日韩国产精品一区二区 | 一级特黄aa大片 | 天堂va欧美va亚洲va老司机 | 日本一区二区三区视频在线观看 | 天堂亚洲网 | 欧美 日韩 成人 | 亚州黄色| 久久av综合 | 天堂在线免费视频 | 天天碰视频 | 欧州一级片 | 国产精品91在线 | 国产精品嫩草69影院 | 中文字幕精品久久久久人妻红杏1 | 手机看片久久久 | 天天视频入口 | 未满十八岁勿进 | 女人床技48动态图 | 五月伊人婷婷 | 久久精品男人的天堂 | 天天久| 超碰免费公开在线 | 亚洲高清自拍 | 日韩少妇精品 | 久久精品久| 在线免费观看污视频 | 殴美黄色大片 | 亚洲第九十九页 | 天天干天天操天天摸 | 超碰狠狠干| 国产乱人乱偷精品视频 | 国产精品一区av | 亚洲永久免费观看 | 日韩欧美第一区 | 国产精品成人免费看片 | 操人视频免费 | 动漫美女被x | 另类第一页 | a级黄色片网站 | av最新在线 | 欧美三级在线 | 日韩区欧美区 | 久久综合久久久久 | av中字 | 日韩中文久久 | 可以免费看毛片的网站 | 亚洲三级在线 | 小优视频污 | 国产精品久久久久aaaa | 自拍偷拍中文字幕 | 亚洲在线中文字幕 | 日韩精品福利视频 | 91超碰国产在线 | 国产亚洲久久 | 国产超碰97 | 双性娇喘浑圆奶水h男男漫画 | 欧美日韩视频在线 | caobi视频| 免费毛片视频 | 午夜精产品一区二区在线观看的 | 欧美午夜精品理论片a级按摩 | 久久久xxx| 麻豆导航 | 91午夜精品亚洲一区二区三区 | 韩国美女主播跳舞 | 饥渴少妇伦色诱公 | 成人av小说 | 国产精品久久777777 | 免费观看黄网站 | 日韩精品无码一区二区 | 久久大香 | 日日日视频 | 国产乱淫av麻豆国产免费 | 粉嫩av一区二区夜夜嗨 | 日韩欧美在线一区二区 | 欧美精品乱码99久久蜜桃 | 久久6| 午夜视频在线观看国产 | 黄在线视频 | 毛片网站免费观看 | 先锋影音av资源站 | 操操操操操操 | 欧洲a级片 | 国产a毛片 | 国产精品人成 | 午夜精品一区 | 国产亚洲一区二区三区不卡 | 午夜精品一区二区三 | 国产三极片| 亚洲精品一二三 | 视频精品久久 | 91福利视频网站 | 四虎影视在线 | 极品少妇一区二区三区 | 国产精品视屏 | 亚洲国产第一 | 色漫在线观看 | 国产性在线 | 手机在线看片1024 | 国内精品国产成人国产三级 | 国产精品1区2区 | 催眠调教后宫乱淫校园 | 日韩av男人的天堂 | 四虎最新网址在线观看 | 欧美日韩成人一区二区 | 色999在线| 久操视频免费观看 | 香蕉视频在线免费 | 成人做爰100| 欧美自拍偷拍第一页 | 白丝校花扒腿让我c | 在线播放91| 免费在线日韩av | 韩国三级中文字幕hd久久精品 | 久操视频免费在线观看 | 欧美专区日韩专区 | 日本黄色成人 | 一二三四av| 正在播放国产精品 | 欧美成人黑人xx视频免费观看 | 丁香婷婷综合网 | 一个色综合导航 | 成人av入口| 在线97| 中文字幕人成乱码熟女香港 | av电影网站在线观看 | 亚洲一区视频在线播放 | 国产第一页屁屁影院 | 四虎影成人精品a片 | 三点尽露的大尺度国产 | 福利小视频在线观看 | 在线免费观看欧美大片 | 小sao货大ji巴cao死你 | 欧美黑人一级 | 99在线视频观看 | 日韩二三区 | av中字 | 久久综合桃花网 | 国语精品久久 | 亚洲无码久久久久久久 | 亚洲性久久 | 免费一级a毛片 | 丝袜老师扒开让我了一夜漫画 | 中文字幕亚洲欧美日韩在线不卡 | 久久久精品亚洲 | 亚洲熟女乱色一区二区三区久久久 | 一级全黄裸体免费视频 | 人人草人人草 | 西比尔在线观看完整视频高清 | 亚洲永久网站 | 久久精品噜噜噜成人88aⅴ | 永久免费看成人av的动态图 | 男女拍拍拍网站 | 久久艹精品视频 | 久久久久一区 | 怡红院av久久久久久久 | av免费片 | 一区二区视频网 | 亚洲日本中文字幕 | 天天干天天操天天操 | 国产av无码专区亚洲av | 成人性生交大片免费看vrv66 | 日韩精品视频在线播放 | 91网址入口 | 久久精品国产av一区二区三区 | 日韩一区二区三区视频在线观看 | 亚洲熟女乱色综合亚洲小说 | 国产在线观看免费视频今夜 | 欧美不卡 | 欧美熟女一区二区 | 大地资源二中文在线影视免费观看 | 91黄色入口| 国内av片 | 成人网在线免费观看 | 亚洲网av | 狠狠欧美| 三上悠亚人妻中文字幕在线 | 不卡av一区二区 | 成人一区二区在线观看 | 国产精品一区二区三 | 欧美日韩在线观看视频 | 亚洲视频一区在线 | 欧美大片高清免费观看 | 欧美激情国产精品免费 | 国产黄色一级 | 国产视频h| 欧美a视频在线观看 | 激情图片网站 | 99r精品视频| 欧美成人综合视频 | 国产黄频 | 一区二区三区午夜 | 99视屏| 亚洲欧美在线看 | 日皮视频在线观看 | 色综合网址 | 我和单位漂亮少妇激情 | 乳色吐息在线看 | 午夜精品一区二区三区免费视频 | 激情xxxx | 悟空影视大全免费高清观看在线 | 国产视频污 | 欧美日韩亚洲国产精品 | 热久久精品 | 公侵犯人妻一区二区 | 国产精品香蕉 | 亚洲黄页| 福利视频第一页 | 国产精品综合视频 | 国产精品无码一区二区三区免费 | 免费日韩网站 | 国产网红在线观看 | 无码人妻aⅴ一区二区三区玉蒲团 | 五月婷婷一区二区 | 人妻av综合天堂一区 | 亚洲自拍三区 | 亚洲欧美91 | www.午夜激情 | 日日夜夜免费视频 | 亚州视频在线 | 人妻无码一区二区三区久久99 | 日本免费看 | 69精品无码成人久久久久久 | 日韩成人免费 | 最新中文字幕视频 | 天天摸天天碰天天爽天天弄 | 超碰97免费 | ktv做爰视频一区二区 | 国内毛片毛片毛片毛片毛片 | 大尺度做爰啪啪床戏 | 欧美日韩国产激情 | 黄色免费在线网站 | 黄色小说在线看 | 欧美高清视频一区二区三区 | 久久久免费av | 日韩av无码中文字幕 | 韩国日本在线观看 | a级片网站| 欧美做受69 | 老司机免费精品视频 | 97青青草 | www.成人在线视频 | 日韩精品视频在线观看免费 | 打开每日更新在线观看 | 涩涩视频网站在线观看 | 亚洲国产精品久久久久久 | 女同av网站 | 国产91免费在线观看 | 涩涩网站在线观看 | 婷婷狠狠爱 | 国产精品变态另类虐交 | 国产特黄大片aaaa毛片 | 成人午夜免费观看 | 日韩毛片无码永久免费看 | 欧美处女 | 国产全是老熟女太爽了 | 日韩av男人的天堂 | 亚洲综合色在线 | 亚洲乱乱 | 在线国产小视频 | 999国产精品视频 | 永久免费视频网站 | 成人三级电影网站 | 69av视频在线观看 | 日韩欧美中文字幕一区二区 | 久久久久久国产精品免费免费 | 欧美激情视频一区二区三区不卡 | 国产成人无码一区二区在线播放 | 百合sm惩罚室羞辱调教 | va在线观看 | 中文字幕视频 | 国产精品自拍偷拍视频 | 成人午夜精品一区二区 | 日韩在线三区 | 久久久久国产 | 欧美日韩在线一区二区三区 | 亚洲男人的天堂在线观看 | 人妖av在线 | 在线播放少妇奶水过盛 | 高h放荡受浪受bl | 丰满岳跪趴高撅肥臀尤物在线观看 | 巨大乳の揉んで乳榨り奶水 | 国产精品色片 | 91亚洲综合 | 日韩一区二区三区精 | 日韩人妻精品无码一区二区三区 | 免费观看a视频 | av不卡一区二区三区 | 日韩av中文字幕在线 | av撸撸在线 | 50一60岁老妇女毛片 | www.69av.com| 青娱乐免费在线视频 | 99在线视频免费观看 | 在线一二三区 | 久草免费在线色站 | 丰满熟妇乱又伦 | 无码人妻一区二区三区在线视频 | 人人插人人射 | 一区二区三区成人 | 亚洲九九| 久久天堂av综合合色蜜桃网 | 免费在线观看日韩av | 亚洲精品中文字幕成人片 | 免播放器在线视频 | 丰满少妇高潮久久三区 | 久草视频免费看 | 日韩av在线不卡 | 日韩av一区在线 | 丰满熟女人妻一区二区三区 | 久久久少妇 | 宅男视频污 | 国产三级漂亮女教师 | 久久发布国产伦子伦精品 | xvideos成人免费视频 | 天堂网在线观看视频 | 操亚洲女人 | 国产精品100 | 美女爱爱视频 | 绿帽av| 涩涩综合 | 日本三级日本三级日本三级极 | 欧美乱妇高清无乱码 | www.国产色| 特黄a级片 | 中文有码av | 国产一区二区在线观看视频 | 国产精品久久久久久久成人午夜 | 国产麻豆久久 | 亚洲咪咪| www日本高清视频 | 久久精品这里 | 涩涩资源网 | 久久久久久无码精品人妻一区二区 | 亚洲最大的网站 | 看久久| 亚洲色网址 | 中文字幕一区二区三区手机版 | 美女又黄又爽 | 亚洲国产一区在线观看 | 天天干夜夜草 | 国产免费大片 | 精品午夜一区二区三区在线观看 | 成人颜色网站 | www.久久久.com | 日韩大片在线 | 沟厕沟厕近拍高清视频 | 91精选视频| 色中文字幕在线观看 | 99久久婷婷国产综合精品电影 | 中文字幕一区二区三区人妻在线视频 | 国产熟女一区二区三区五月婷 | 久久福利一区 | 日韩精选在线观看 | 天天狠狠 | 在线99| 樱桃香蕉视频 | 国产精品区一区二区三 | 玩日本老头很兴奋xxxx | 黄色片xxx | 视频在线国产 | 苍井空张开腿实干12次 | 色久网 | 性网爆门事件集合av | 午夜宅男在线 | 欧美丰满艳妇bbwbbw | 黄色高清在线观看 | 国产精品色婷婷99久久精品 | 醉酒壮男gay强迫野外xx | 91在线小视频 | 久草av在线播放 | 欧美三级一区 | 少妇被躁爽到高潮 | 日韩欧美亚洲在线 | 亚洲视频在线观看一区二区 | 98在线视频| 严厉高冷老师动漫播放 | 少妇扒开粉嫩小泬视频 | 日韩爽爽视频 | 国产人成视频在线观看 | 国产亚洲欧美视频 | 亚洲男女激情 | 日本黄色网络 | 久久久久国产精品无码免费看 | 欧美精品午夜 | 一女二男一黄一片 | 国产1区在线观看 | 香蕉久久影院 | 日本国产在线视频 | 亚洲 欧美 日韩 在线 | 天堂在线观看视频 | 四季av中文字幕 | 中文字幕观看av | 成人教育av| 北岛玲一区二区 | 国产又粗又黄又爽 | 国产成人影视 | 久久久综合久久久 | 中文字幕2区 | 国产伊人自拍 | 国产综合婷婷 | 综合在线播放 | av网站在线观看免费 | 激情五月av | 亚洲天堂成人 | 日韩不卡视频在线观看 | 日韩精品成人一区二区在线 | 日本中文字幕精品 | 久久精品亚洲一区二区 | 青草av在线 | 久久婷婷激情 | 日本wwww色| 在线国产网站 | 操日本女人 | 极品国产91在线网站 | 国产精品你懂得 | 爱爱一区二区三区 | 美女的奶胸大爽爽大片 | 桃色在线观看 | 嫩草嫩草嫩草嫩草嫩草 | 久久只有这里有精品 | 黄色小说网站在线观看 | 欧美中字 | 国产免费av电影 | 在线看黄色av | 国产精品久久久一区二区 | 成熟妇人a片免费看网站 | av资源导航 | 老头老太吃奶xb视频 | 青青草原在线免费 | 欧美少妇15p | 午夜影院视频 | 精品福利视频导航 | 性感美女在线 | 19韩国主播青草vip | a级免费观看 | 中文久久久久 | 青青青视频在线播放 | 亚洲成人tv | 操少妇视频 | 黑白配在线观看免费观看 | 明日叶三叶 | 欧美日韩中文字幕在线 | 久久九色 | 国产思思99re99在线观看 | 亚瑟av在线| 韩国jizz| 国产精品theporn | 亚洲AV午夜福利精品一级无码 | 久久婷婷五月综合色吧 | av男人网| 外国一级片 | 精品麻豆 | 中文字幕第一页亚洲 | 一区二区三区四区免费 | 天天色综网 | 自拍av在线 | 亚州三级 | 91插插插插插| 国产精品视频在 | 茄子香蕉视频 | 欧美在线精品一区二区三区 | 91视频在线免费观看 | 国产麻豆免费观看 | 成人资源在线观看 | 韩日午夜在线资源一区二区 | 一区在线不卡 | 欧美性生活 | 欧美视频自拍偷拍 | 日韩欧美中文字幕一区二区 | 亚洲精品乱码久久久久久9色 | 天天综合天天综合 | 中国一级黄色 | 欧美午夜精品理论片a级按摩 | 欧美精品xxx| 三级黄色免费片 | 91成人精品 | 97精品人妻一区二区三区 | 男人日女人逼 | 亚洲国产成人精品91久久久 | 欧美高清免费 | 亚洲vs天堂| 国产让女高潮的av毛片 | 91嫩草视频在线观看 | 丝袜老师让我了一夜网站 | 亚洲黄色在线视频 | 青青草综合 | www.天堂av.com| 日韩欧美影院 | 三女警花合力承欢猎艳都市h | 东方av正在进入 | 天天干天天草 | 毛片视频网址 | 亚洲一区二区三区中文字幕 | 欧美性久久 | 亚洲女人天堂成人av在线 | 亚州av片| 午夜激情久久 | 亚洲精品高潮 | 一区二区三区免费观看 | 高h视频在线免费观看 | 日本特级黄色录像 | 三级网站视频 | 夜夜春夜夜爽 | 美女扒逼 | 欧美成人性色 | 成人精品久久久 | 能免费看黄色的网站 | 又黄又爽又刺激的视频 | 日韩在线无 | 在线看一区二区 | 人人干人人看 | 久久视频免费在线观看 | 亚洲女人视频 | 亚洲视频区 | jul023被夫上司连续侵犯 | 高清av网站 | 一本色道久久综合精品婷婷 | 久久精品美女 | 欧美爱爱爱 | 性做爰裸体按摩视频 | 欧美日韩一级二级三级 | 亚洲色图欧美激情 | 伊人开心网 | 国产三级精品在线 | xxx久久久| 粉嫩av蜜桃av蜜臀av | 国产精品成人免费一区二区视频 | 尤物国产视频 | 亚洲日本香蕉视频 | 爆操少妇| 特级做a爰片毛片免费69 | 欧美国产成人精品一区二区三区 | 日本人妻一区二区三区 | 久久riav| 狠狠干成人 | 亚洲国产无 | 国产精品一区在线 | 久久精品在线视频 | 让男按摩师摸好爽视频 | 国产乱码精品一区二区三区中文 | 图片区偷拍区小说区 | 污网站在线观看免费 | 奇米影视777四色 | 国产高潮又爽又无遮挡又免费 | 日韩在线专区 | 嫩草国产| 麻豆精品国产精华精华液好用吗 | 91色吧| 天天想你在线观看完整版高清 | 毛片的网站 | 国产一区欧美一区 | 青青草原av在线 | 91精品免费观看 | 青青草色视频 | www.夜夜夜| 亚洲色图导航 | 久久国产色av免费观看 | 亚洲一区二区三区免费在线观看 | 国产第一av| 中文字幕 欧美日韩 | 日本不卡一区二区三区视频 | 一级片www| 影音先锋亚洲资源 | 欧美一级免费看 | 中文字幕av影视 | av夜色| 久久亚洲日本 | 综合伊人 | 性视频网 | 中文字幕一区二区三区乱码不卡 | 国产精品一二三区 | 一本一道人人妻人人妻αv 国产一区二区在线视频观看 | 国产精品福利视频 | 男女操操操 | 日韩欧美亚洲国产 | 亚洲一区欧美 | 一级特黄肉体裸片 | 好吊妞这里有精品 | 午夜91视频 | 日韩欧美国产另类 | 久热色| 国产一级片av | 在线亚洲天堂 | 极品粉嫩小仙女高潮喷水久久 | 日本成人在线网站 | 日本黄色一级 | 午夜av在线 | 东方av在线免费观看 | 日本精品视频一区 | 精品国内自产拍在线观看视频 | 99久久99久久精品国产片桃花 | 韩国精品在线 | 国产视频123 | 亚洲福利视频导航 | 久久久久九九 | 欧美色就是色 | a视频免费观看 | 日本不卡一区二区在线观看 | 97免费在线观看视频 | 国产草草影院 | 美女被男人c | 欧美日韩一区二区三区 | 青青草视频播放器 | 人妖性做爰aaaa | 久久精品在线免费观看 | 天天射视频 | 97久久人国产精品婷婷 | 天天摸天天插 | 91在线观看网站 | 91中文国产| 国产青草视频 | 扩阴视频 | 国产成年妇视频 | 日本一二区视频 | 伊人精品综合 | 三级一区二区 | 国产熟妇一区二区三区四区 | 星空无限mv国产剧入选 | 亚洲色图偷拍 | 美日韩视频 | 免费黄色网址在线 | 欧洲亚洲视频 | 亚洲一区二区国产 | 青青操在线视频 | 少妇名器的沉沦 | 国产91精品久久久久 | 日韩欧美亚洲一区二区 | 91社区福利 | 成年人av网站 | 亚洲天堂色| 久一精品 | 黄色一级免费视频 | 99精品欧美一区二区三区 | 天天操人人干 | 在线观看精品视频 | 亚洲在线免费观看 | 丰满熟妇被猛烈进入高清片 | 日本一区二区三区久久 | 久热久操 | 日韩不卡一区二区三区 | 在线免费看黄色片 | 免费看黄色三级 | 日本高清视频www夜色资源 | 欧美群交射精内射颜射潮喷 | 国产一区免费视频 | 日剧大尺度床戏做爰 | 在线免费观看av网址 | 国产极品视频 | 五月激情小说 | 午夜福利一区二区三区 | 在线中文字幕亚洲 | 一本色道久久综合亚洲精品按摩 | 久久久久国产精品一区 | 日韩极品在线 | 成年人的毛片 | 亚洲视频色| 免费观看理伦片在线播放视频软件 | 欧美一级二级在线观看 | 国产乱码精品一区二区三区忘忧草 | 久久久久久久久久久久久久 | 亚洲精品成人无码熟妇在线 | 午夜免费网站 | 天天操狠狠干 | 国产精品videossex久久发布 | 无码av天堂一区二区三区 | 精品中文字幕一区二区 | 先锋影音av资源在线 | 精品国产九九九 | 免费看黄色网址 | 国产专区一区二区三区 | 久久99视频| 尤物视频网站在线观看 | 农村搞破鞋视频大全 | 成人在线激情视频 | 91 色| 婷婷国产精品 | av自拍网| 国产又粗又长又爽 | 男女性杂交内射妇女bbwxz | 在线看片成人 | 小蝌蚪av| 青青射| 日韩欧美高清 | 泰国午夜理伦三级 | 自由 日本语 热 亚洲人 | 黄色片免费网站 | 日韩人妻精品一区二区三区视频 | 中国老太婆性做爰 | 在线观看亚洲 | 男女高潮网站 | 午夜久久久久久久久久 | 亚洲精品777 | 亚洲国产精品综合 | 91免费国产 | 五月天激情四射 | 美女网站免费黄 | 狠狠干在线 | 超碰v| 黄色av网址在线观看 | 精品久久久久久亚洲综合网站 | 狠狠干天天操 | 亚洲黄色大全 | 色福利网 | 日本视频二区 | 欧美日韩一区二区三区不卡 | 欧美中文字幕在线播放 | 四虎啪啪 | 91九色国产在线 | 成人av不卡 | 男女羞羞无遮挡 | 欧洲亚洲一区二区 | 日产久久视频 | 91av视频 | 影音先锋男人资源网站 | 成人1区 | 高清久久| 97精品久久久 | 91高跟黑色丝袜呻吟在线观看 | 日韩性生活视频 | 国产精品国色综合久久 | 欧美性生交xxxxx久久久缅北 | 51调教丨国产调教视频 | 一级绝黄 | 国产精品久久久久久久久借妻 | 国产高清视频 | 亚洲 精品 综合 精品 自拍 | 色狠狠一区二区三区 | 99久久九九 | 色七七在线 | 中文字幕日本在线观看 | 国产精品成久久久久三级 | 麻豆视频在线观看免费 | 欧美高清大白屁股ass18 | 自拍色图 | 一级特级片 | 麻豆影视 | 久久伊人一区二区 | 性欧美日本 | 激情丁香 | 中国美女毛片 | 女人18毛片一区二区三区 | 日干夜干| 老熟女高潮喷水了 | 欧美无遮挡高潮床戏 | 日韩精品中文在线 | 男女在楼梯上高潮做啪啪 | 亚洲永久免费视频 | 4438x五月天 激情五月五月婷婷 | 午夜精品久久久久久久99 | 中文字幕+乱码+中文乱码www | 欧美高清在线观看 | 免费毛片av | a毛片在线 | 久艹视频在线 | 女人18毛片一区二区三区 | 日韩一区二区在线播放 | 国产蜜臀av一区二区 | 精东影业一区二区三区 | 天天拍天天射 | 性综合网 | 国产午夜久久久 | 91视频毛片 | 美女高潮在线 | 日日夜夜一区二区 | 色狠av| 91香蕉视频黄色 | 国产又白又嫩又爽又黄 | 在线成人亚洲 | 高跟91娇喘 | 日韩激情综合 | 白丝久久| 欧美二区视频 | 深夜成人在线观看 | 乖疼润滑双性初h | 夜夜春视频 | 夜夜操av| 欧美极品少妇xxxxⅹ喷水 | 黄色最新网址 | www.av黄色| 亚洲色在线视频 | 日韩在线一区二区三区 | 五月婷婷国产 | 精品久久中文字幕 | 亚洲黄在线观看 | www.久久艹| 高h校园不许穿内裤h调教 | 日韩精品视频播放 | 成人短视频在线观看 | 毛片毛片女人毛片毛片 | 人人av在线 | 色播在线视频 | 日韩av免费| 久久久免费高清视频 | 成人在线观看网址 | 黑人精品一区二区三区 | 少妇喷潮明星 | 久久亚洲私人国产精品va | 国精产品乱码一区一区三区四区 | 国产成人精品白浆久久69 | 日本一区二区三区精品视频 | 国产一级片网址 | 欧美视频中文字幕 | xxx.国产| 日日爽| 男人狂揉女人下部视频 | 欧美偷拍第一页 | 国产精品视频一区二区三区, | www.久久伊人 | 国产精品久久在线观看 | аⅴ天堂中文在线网 | 国产簧片 | 亚洲专区在线 | 久热色 | 国产素人av | 30一40一50老女人毛片 | 欧美亚洲视频 | 色多多av | av网站久久 | 一区二区三区三区在线 | 亚洲视频免费看 | 欧美国产不卡 | 亚洲成人久久久久 | 能看毛片的网站 | 久久99久久久 | 国产精品一区二区人人爽 | 国产一级片久久 | 操久久久 | 久久五月综合 | 色婷婷丁香 | 147人体做爰大胆图片成人 | 国产v亚洲| 国产精品久久久久9999 | 亚洲日本一区二区 | av色网站| 午夜av影视| 手机av在线播放 | 成人在线综合网 | 在线视频精品 | 亚洲第十页 | 毛片aaa| 久久久99精品免费观看 | 人妻少妇精品视频一区二区三区 | 亚洲综合免费观看高清完整版在线 | 欧美不卡| 91蜜桃视频在线观看 | 国产成人精品毛片 | 伊人老司机 | 久热久热免费视频中文字幕 类别:中文字幕 | 人人草人人干 | 亚洲小视频在线 | 富婆如狼似虎找黑人老外 | 成人性视频网站 | 久久久久久无码精品人妻一区二区 | 在线不卡av电影 | 欧美一区二区免费视频 | 欧美精品免费一区二区三区 | 中文字幕高清在线免费播放 | 亚洲国产免费视频 | 91视频免费观看 | 五月综合色 | 国产毛片毛片毛片毛片毛片毛片 | 91黑人精品一区二区三区 | 日本精品一区二区三区视频 | 国产无码精品久久久 | 国产精自产拍久久久久久蜜 | 9l视频自拍蝌蚪9l视频 | 精品国偷自产国产一区 | 我们的生活第五季在线观看免费 | 午夜欧美激情 | 亚洲最大看欧美片网站 | 99精品视频在线 | 免费毛片播放 | 性感美女福利视频 | 欧美做受喷浆在线观看 | 日韩伦理中文字幕 | 香蕉视频黄色片 | а√天堂资源中文最新版地址 | 伊是香蕉大人久久 | 欧美黑人欧美精品刺激 | 亚洲精品成 | 男女靠逼视频 | 黄色av一区二区 | 一级特黄特色的免费大片视频 | 久久电影一区 | 99视频久久 | 一本一道久久a久久精品蜜桃 | 亚洲一级大片 | 午夜性色 | 久久久青草 | 最新色站| 四虎精品永久在线 | 荫蒂被男人添免费视频 | 国产精品伦一区二区三级视频 | 欧美激情在线一区二区 | 国产亚洲小视频 | 亚色中文字幕 | 人人干天天干 | 亚洲天堂自拍 | av网页在线观看 | 亚洲精品网站在线观看 | 日本黄色短片 | 正在播放adn156松下纱荣子 | 激情综合av | 星空大象mv高清在线观看免费 | 日韩天堂在线观看 | 亚洲精品在线观看免费 | 午夜影院在线看 | 乱子伦一区二区 | √天堂8资源中文在线 | 男人操女人免费视频 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | av女大全列表 | 日韩在线色 | 五月中文字幕 | 亚洲国产精品999 | 在线看片网站 | 国产一区欧美 | 天堂福利视频 | 欧美日韩亚洲国产一区 | 国产乱淫av一区二区三区 | xxxxx黄色 | 91av国产精品 | 国产视频1 | 国产午夜性春猛交ⅹxxx | 久久久久国产精品一区 | 国产农村妇女aaaaa视频 | 亚洲视频1 | 在线观看色网站 | 大肉大捧一进一出好爽mba | 国产一二三四在线 | 午夜视频精品 | 亚洲人和日本人hd | 久久精品中文 | 大尺度做爰呻吟舌吻情头 | 亚洲第一成年人网站 | 日操夜操天天操 | 亚洲va视频 | 麻豆91av| 大尺度做爰呻吟舌吻网站 | 久久久一二三区 | 成人免费视频播放 | 久久影音 | 亚洲一区二区三区视频 | n0659极腔濑亚美莉在线播放播放 | 久久久成人免费 | 极品美女销魂一区二区三区 | 欧美日韩无 | 国产中文字幕在线观看 | 天堂av2014 | 经典av在线| 超碰av免费| 女同一区二区三区 | 一区二区三区视频免费在线观看 | 西欧毛片 | 亚洲男人的天堂网 | 人操人| 夜夜操免费视频 | 先锋影音制服丝袜 | 国内视频一区 | 中国老太婆性视频 | 在线观看免费国产视频 | 国产青青操 | 日本老肥婆bbbwbbbwzr | 91国产视频在线观看 | 日韩精品高清视频 | 私拍在线 | 三级黄毛片 | 免费av网站大全 | 日韩电影网址 | 精品成人一区二区三区久久精品 | 伊伊成人网 | 欧美黄色小说 | 最新中文字幕 | 婷婷色五| 国产在线观看一区 | 94av| 97超级碰碰 | 久久精品导航 | 精品国内自产拍在线观看视频 | 91久久精品一区二区三区 | 成人精品一区二区三区 | 欧美久久网 | 黄色录像a级片 | 性做久久久久久 | 国产a∨精品一区二区三区仙踪林 | 91久久精品国产91性色69 | 国产传媒国产传媒 | 98久久| 91精品国产综合久久久密臀九色 | 在线日韩一区二区 | 我要看免费的毛片 | 亚洲小视频在线 | 色婷婷小说 | 日韩欧美亚洲视频 | 欧美做受高潮1 | 国产日韩久久 | 欧美呦呦 | 国产精品久久久久久免费免熟 | 亚洲国产精品99久久久久久久久 | 欧美一级片在线看 | 日韩啊v | 亚洲AV无码精品一区二区三区 | 在线97视频 | 日韩精品成人一区二区在线 | 欧美一级视频在线观看 | 日韩性视频| 日韩在线亚洲 | av在线影视| 成人音影 | 在线你懂的 | 美女毛片在线观看 | 日本亲与子乱xxx | 亚洲精品手机在线 | 中文字幕你懂的 | 男人狂揉女人下部视频 | 先锋影音资源av | 天天免费视频 | 殴美一级黄色片 | av成人在线观看 | 中文字幕第 | 亚洲性综合 | 蜜桃导航-精品导航 | 中国女人黄色大片 | 欧美午夜精品一区二区三区 | 开心色站 | 波多野结衣中文一区 | 视频精品一区二区 | 亚洲成人午夜电影 | 成人精品国产免费网站 | 亚洲国产精品久久久久爰性色 | 岛国大片在线 | 久久成| 色婷婷一区二区三区 | 91国产视频在线观看 | 欧美涩色| 九九精品网 | 丁香婷婷综合激情五月色 | 日本美女性生活视频 | 在线观看你懂的视频 | 久久综合久色欧美综合狠狠 | 免费爱爱视频 | 国产一区二区毛片 | 欧美一级乱黄 | 成人动漫视频在线观看 | 日本a网 | 午夜黄色大片 | 全黄一级男人和女人 | 神马福利视频 | 伊人春色在线观看 | 毛片官网 | 国产无遮挡免费视频 | 欧美日韩国产传媒 | 欧美性猛交 xxxx | 91精品国产亚洲 | 风间由美一区二区三区 | 青草福利视频 | 极品尤物魔鬼身材啪啪仙踪林 | 麻豆国产精品777777在线 | 色日韩 | www欧美精品| 黄色网视频 | 欧美性福利 | 在线视频 日韩 | 中文字幕在线视频免费 | 国产精品无码久久久久高潮 | 精品色综合 | 天海翼一区二区三区 | 日韩中文字幕在线看 | 欧美激情视频在线播放 | 在线免费观看av的网站 | 亚洲欧美综合另类 | 中国av片| 玖玖爱免费视频 | 懂色av一区二区三区在线播放 | 97精品一区二区 | 国产美女av | 国产精品无码乱伦 | 麻豆国产一区二区三区四区 | 午夜久久久久久久久久久 | av在线www | 国产精品免费一区二区三区在线观看 | 国产一级视频 | 中文字幕人妻一区二区三区在线视频 | 成人伊人网 | 欧美日韩成人一区二区三区 | 四虎www| 天天躁日日躁aaaaxxxx | 日批视频 | 一二三区中文字幕 | 日韩亚洲精品在线 | 爆操巨乳美女 | 福利视频午夜 | 激情网五月 | 欧美日韩精品电影 | 国产亚洲欧美在线精品 | 国产高清一二三区 | 91射射 | 亚洲成人av免费在线观看 | av丝袜在线 | 欧美呦呦 | 久草视频中文在线 | 日日夜夜一区二区 | 一级二级三级黄色片 | 国产精品国色综合久久 | 国产视频一区二区三区在线播放 | 日韩精品91 | 精品视频在线免费 | 黄色片网站免费 | 女人下面喷水视频 | 国产孕妇孕交大片孕 | 青青草综合视频 | 亚洲精品久久久久久久久久久 | 91av成人| 麻豆国产91在线播放 | 成人免费视频国产免费网站 | 我们俩电影网mp4动漫官网 | 国产成人久久精品 | av影院在线观看 | 中国极品少妇xxxx | 成人一区二区电影 | 精品国产成人 | 亚洲影视在线观看 | 男女啪啪软件 | 91精品91久久久中77777 | 国产成人无码精品久在线观看 | 久草福利资源 | 深爱五月激情五月 | 李宗瑞91在线正在播放 | 色综合狠狠 | 三级久久 | 日本中文字幕在线观看视频 | 欧美色图19p | 久热免费在线 | av看片资源 | 在线亚洲精品 | 人人干在线视频 | 日本理论片午伦夜理片在线观看 | 精久久久久久久 | 一本色道久久88亚洲精品综合 | 五月天激情四射 | 麻豆精品91 | 91瑟瑟| av中文在线| 农民工hdxxxx性中国 | 伊人成人在线视频 | 亚洲av永久无码精品一区二区国产 | 全部孕妇毛片丰满孕妇孕交 | 日韩一二三区在线观看 | 免费黄色在线播放 | 亚洲中文字幕一区在线 | av在线浏览 | 波多野结衣加勒比 | 国产欧美精品久久 | av毛片在线播放 | 黄色一级黄色片 | 黑人乱码一区二区三区av | 亚洲国产成人精品久久 | 嫩草影院一区二区 | 日本va在线 | 亚洲成人免费观看 | 日韩视频免费看 | 亚洲香蕉 | 国产三级观看 | 亚洲美女啪啪 | 中文字幕免费观看视频 | 女尊高h男高潮呻吟 | 国产伦精品一区二区三区88av | 男女免费视频网站 | 国产欧美一区二区精品性色 | 久久精品丝袜高跟鞋 | 国产精品久久av | www欧美精品| 另类小说五月天 | 精品不卡一区二区三区 | 天天综合天天综合 | 希岛婚前侵犯中文字幕在线 | 国产欧美日韩综合精品一区二区三区 | 无码人妻一区二区三区精品视频 | 久久综合导航 | 欧美老肥妇做.爰bbww视频 | 超碰加勒比 | 樱花视频在线免费观看 | 手机在线亚洲 | 亚洲免费大片 | 亚洲影视一区 | 久久91 | 免费中文av | 99九九久久| 天天躁日日躁狠狠躁av麻豆 | 麻豆视频在线观看免费网站 | 情欲超 | 护士人妻hd中文字幕 | 天天撸天天操 | 在线小视频 | 黑人操欧美人 | 国家队动漫免费观看在线观看晨光 | 日韩一区二区三区视频在线观看 | 亚洲成av人片在线观看无码 | 神马久久久久久 | 51精产品一区一区三区 | 欧美一级在线免费观看 | 成人国产片 | 91精品国| 亚洲成人经典 | 冲田杏梨一区二区三区 | 国产麻豆成人传媒免费观看 | 伊人影院在线视频 | 91超碰在线播放 | 欧美精品四区 | 最新视频 - x88av | 帮我拍拍漫画全集免费观看 | 午夜精产品一区二区在线观看的 | 91香草视频 | 亚洲国产精品久久久久婷婷老年 | 欧美日韩影院 | 免费看成人av | 色哟哟免费 | 伊人久久狼人 | 高清毛片aaaaaaaaa片 | 清纯唯美亚洲色图 | www视频在线观看网站 | 网友自拍第一页 | 久久精品五月天 | 亚洲爱情岛论坛永久 | 精品熟妇无码av免费久久 | 男女免费看 | 一本色道久久hezyo加勒比 | 好看的中文字幕 | 自拍亚洲国产 | 国产精品久久久久久亚洲色 | 久久久国产精品黄毛片 | 在线观看av日韩 | 日日精| 黄色a级片 | 亚洲一二三视频 | 神马福利视频 | 人人看人人草 | 日韩在线播放视频 | 午夜婷婷| 噼里啪啦国语版在线观看 | 国产精品毛片一区视频播 | 欧美一级爱爱 | 亚洲国产va | 黄色动漫软件 | 97看片吧 | 欧美日韩国产激情 | 逼特逼视频在线观看 | 日本在线观看视频网站 | 超碰在线网址 | 一级黄色大全 | www.jizzjizz.com| 青青草毛片 | 曰韩在线 | 寂寞人妻瑜伽被教练日 | 久久精品二区 | 欧美视频一区 | 激情片网站 | 国产精品午夜影院 | sese久久| 欧美资源 | 射射av| 人人草人人澡 | 玖玖爱国产 | 国产视频www| 高清视频在线免费观看 | 免费成人深夜小野草 | 黄色欧美一级片 | 大陆熟妇丰满多毛xxxⅹ | 奇米成人影视 | 精品久久久久久久 | 日本无翼乌邪恶大全彩h | 特黄三级又爽又粗又大 | 欧美日韩三级在线 | 波多野结衣片子 | 欧美特黄一级 | 亚洲一二三在线 | 色婷婷亚洲 | 亚洲精品在线不卡 | 日本成人在线播放 | 制服丝袜先锋影音 | 淫视频网站 | 一区二区三区四区亚洲 | 久久cao| 1区2区3区在线观看 久久久久高潮 | 国产精品网站在线 | 三级免费网址 | 成年网站在线观看 | 麻豆av在线看| 2023国产精品| 久久99国产精品一区 | 高h捆绑拘束调教小说 | 国产又粗又大又爽 | 亚洲av无码一区二区三区性色 | 一级黄色播放 | 欧美久久一级 | 精品日韩一区二区 | 精品欧美一区二区久久久久 | 一区二区三区视频在线观看 | 中文字幕人妻互换av久久 | 日韩国产中文字幕 | 三年大全国语中文版免费播放 | 一级欧美日韩 | 热热热热色| www日本免费| 国产在线欧美 | www.4虎| 欧美疯狂做受 | 精品国自产在线观看 | 久草手机在线 | 国内精品国产成人国产三级 | 日本黄视频在线观看 | 操久久久| 黄网在线免费 | 国产色拍 | 精品一区二区三区中文字幕 | 成人性生活毛片 | 老女人做爰全过程免费的视频 | 欧美日本日韩 | 久久538| 日本吃奶摸下激烈网站动漫 | 色婷婷导航 | 一级国产视频 | 超碰网址 | 免费在线国产 | 一区二区三区免费在线 | 原创少妇半推半就88av | 国产麻豆一区二区三区 | 你懂的在线网站 | 欧美第1页 | 国产三级在线播放 | 97久久国产| 麻豆久久久午夜一区二区 | 久本草精品 | 亚洲AV成人无码久久精品巨臀 | 神宫寺奈绪一区二区三区 | 欧美黑人一区二区三区 | 国产一区二区免费电影 | 欧美午夜精品一区二区 | 屁屁影院国产第一页 | 国产精品老熟女视频一区二区 | 国产精品成人久久电影 | 久久成人av| 97碰碰视频 | 视色网站 | 色久在线| 26uuu成人网| 欧美高清视频 | 99久久久久成人国产免费 | 亚洲爽爆av | 亚洲v国产v欧美v久久久久久 | 玖玖精品视频 | 亚洲精品国产精品乱码不卡 | 狠狠影院 | 亚洲熟女www一区二区三区 | 日韩一页 | 精品欧美一区二区三区久久久 | 一区二区日韩视频 | 黄色亚洲网站 | 欧美操老女人 | 五号特工组之偷天换月 | 久久亚洲av无码西西人体 | 91精品人妻一区二区 | 一区二区少妇 | www.黄色一片 | 国产高清视频免费在线观看 | 俄罗斯毛片 | 噼里啪啦高清 | 亚洲日本久久 | 欧美黄色三级视频 | 男女午夜免费视频 | 高h乱l高辣h文短篇h | 欧美激情一区二区三区免费观看 | 国产精品一区二区人人爽 | 第一章激情艳妇 | 免费古装一级淫片潘金莲 | 成人导航网站 | 亚洲熟女乱综合一区二区三区 | 成人免费视频一区 | 国产做爰全过程免费视频 | 日本视频在线 | 欧美日韩一级二级三级 | 亚洲熟女乱色一区二区三区久久久 | 邻居少妇张开双腿让我爽一夜 | 在线观看不卡的av | av色资源| 免费三片在线观看网站v888 | 青青草日韩 | 欧美国产另类 | 制服丝袜一区二区三区 | 国产一区精品在线观看 | 国产一级片视频 | 欧美一级淫片免费视频黄 | 久久密| 欧洲av在线播放 | 日韩欧美理论 | 在线一区二区三区视频 | 青青草网站 | 在线看片黄 | 久久久久久久国产视频 | 日韩成人影视 | 国产古装艳史毛片hd | 日韩精品极品视频在线观看免费 | 永久免费在线观看视频 | 欧美精品在线看 | 天天插天天色 | 四虎影音先锋 | 中文字幕一区二区三区人妻 | 中文文字幕一区二区三三 | 五十路av| 99黄色片| 好色av| 久久字幕 | 国产18精品乱码免费看 | 免费看操片 | 亚洲视频综合 | 亚洲色图自拍 | 伊人操| 日韩精品资源 | 久久久久久中文字幕 | av老司机在线观看 | 色屋在线 | 四虎成人在线 | 天天躁日日躁狠狠躁av麻豆 | 人人澡人人澡人人 | 国产一区二区三区欧美 | 麻豆精品国产传媒av绿帽社 | 国产三级播放 | 黄色a一级 | 自拍偷拍18p | 欧美日韩视频一区二区 | 清清草免费视频 | 日日射日日干 | 视频二区在线 | 久久久久中文 | 法国空姐在线观看完整版 | 成年人免费看 | 青青青国内视频在线观看软件 | 天天色影网 | 热久久最新网址 | 一区二区在线精品 | 日产精品一区二区 | 日本黄色三级 | 两口子交换真实刺激高潮 | 四色成人网 | 国产精品91久久久 | 91美女在线视频 | 四虎永久免费在线观看 | 日韩av第一页 | 亚洲综合社区 | 欧美日韩在线精品 | 很嫩很紧直喷白浆h | 国产精品剧情av | 一女三黑人理论片在线 | 免费网站在线观看人数在哪动漫 | 国产波霸爆乳一区二区 | 国产天天骚 | 人人射人人爱 | 非洲一级片 | 国产又爽又黄免费视频 | 青青精品视频 | www网站在线免费观看 | 欧美日本一区二区三区 | 亚洲欧美日韩一区二区三区四区 | 色综合久久av | 三级黄色在线视频 | 美女综合网 | 国产二区视频 | 国产伦精品一区二区三区高清版禁 | 久久国产精品久久国产精品 | 天天撸天天射 | 久久久久久免费观看 | 午夜999| 亚洲精品国产视频 | 少妇人妻无码专区视频 | 91婷婷射| 精品国产18久久久久久 | 亚洲欧美日本在线 | 国产美女久久久 | xxx国产| 风间由美一区二区三区 | 日本无翼乌邪恶大全彩h | 天堂资源中文在线 | 成人片网址 | 日本特黄一级 | 亚洲做受高潮无遮挡 | 黑人操欧美人 | 日韩在线欧美 | 欧美xxxx黑人xyx性爽 | 久久久久久一 | 国产做爰全过程免费视频 | 姐姐你真棒插曲快来救救我电影 | 夜夜撸影院 | 好av| 亚洲国产成人精品激情在线 | 很污很黄的网站 | 免费看亚洲 | 日韩黄色免费 | 黄色一级图片 | 538国产精品视频一区二区 | 大学生一级一片全黄 | 久久婷综合 | 亚洲色图第三页 | 蜜臀av在线播放 | www五月天com| 韩国av毛片| 亚洲精品久久久久中文字幕二区 | 超碰偷拍| 欧美美女啪啪 | 国产精品久久久久久久久久妞妞 | 在线观视频免费观看 | 99久久精品国产成人一区二区 | 久久av影视 | 欧美色爽 | www.蜜桃av| 台湾少妇xxxx做受 | 美女激情av | 在线日韩中文字幕 | 欧美激情偷拍 | 黄色成人av| 超碰97在线免费 | 黄色网址最新 | 老版水浒传83版免费播放 | 国产精品免费久久久久 | 嫩草av在线| 天天想你在线观看完整版电影免费 | 婷婷午夜精品久久久久久性色av | 六月婷婷综合 | jzzijzzij亚洲成熟少妇18 91色视频在线 | 亚洲午夜精品久久 | 蜜臀av在线免费观看 | 午夜视频在线观看国产 | 中文字幕一区二区人妻 | 国产精品羞羞答答在线 | 中文字幕在线观看视频www | 国产另类xxxxhd高清 | 日韩午夜网站 | 尤物视频最新网址 | 久久成人a毛片免费观看网站 | 欧美午夜精品一区二区三区电影 | 嫩草在线观看视频 | 超碰2 | 色哟哟一区二区 | 欧美高清日韩 | 亚洲第一第二区 | 欧美激情黑人 | 美国免费高清电影在线观看 | 性生交大片免费看 | 亚洲最大毛片 | 91看大片| 成人小视频免费 | 久中文字幕 | 久久6视频 | 国产chinese中国hdxxxx | 欧美在线资源 |