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

日韩一级不卡 | 嫩草导航| 1区2区3区视频 | 日本特黄特色aaa大片免费 | 中文字幕在线观看免费高清 | 成人手机在线视频 | 高清中文字幕 | 免费看一级黄色大片 | 色图av | 天堂av在线电影 | 波多野结衣一二区 | 亚洲欧美在线看 | 久久视频在线观看免费 | 国产美女诱惑 | 在线日韩中文字幕 | 亚洲成人一级片 | av免费观看网址 | 免费观看毛片视频 | 欧美日韩字幕 | 狠色综合7777夜色撩人 | 欧美女优在线观看 | 亚洲成年人影院 | 性欧美18 | 久久国产精品波多野结衣av | 一区二区视频播放 | 久章草影院 | 欧美老肥妇做.爰bbww视频 | 91日韩精品 | 日本少妇激三级做爰在线 | 国产亚洲精品女人久久久久久 | 性免费网站 | a级大片免费看 | 清清草免费视频 | 中文字幕亚洲激情 | 亚洲free性xxxx护士hd | 日韩欧美一区二区三区 | 国色天香av | 国产乱码精品一区二区三区忘忧草 | 97精品人妻一区二区三区 | 九九热视频在线播放 | 老司机午夜视频 | 丰满少妇一区二区三区 | 神马久久精品 | 女生隐私免费看 | 麻豆传媒观看 | 蜜桃久久精品 | 无毛av| 中文字幕一区二区三区人妻在线视频 | 亚洲欧美在线播放 | 日韩欧美在线一区 | 男操女免费网站 | 男人影院在线观看 | 精品999久久久一级毛片 | 免费二区 | 在线播放黄色网址 | 三级视频国产 | 成人综合色站 | 国产激情久久久久 | 女人脱裤子让男人捅 | 奇米四色777 | 欧美xxxx精品| 日韩精品极品视频 | 葵司免费一区二区三区四区五区 | 在线看免费 | 在线aaa | 欧美亚洲 | 青青草原国产视频 | 国内三级视频 | 日本三级吃奶头添泬 | av福利在线播放 | 欧美国产在线一区 | 日韩一二三级 | 国产高清一区二区 | 男人与雌性宠物交啪啪 | 日韩欧美国产一区二区三区在线观看 | 7m精品福利视频导航 | 波多野结衣之潜藏淫欲 | aaa亚洲| 天天干天天爽天天操 | 波多野结衣av在线播放 | 成人黄色免费网址 | 午夜丁香婷婷 | 日本三级欧美三级 | 中国老太婆性做爰 | 激情爱爱网 | 欧洲久久久 | 成人日韩欧美 | eeuss一区二区 | 乱淫的女高中暑假调教h | 日韩色黄大片 | 日本三级网站在线观看 | 日韩插插 | 欧美日本在线观看 | 狠狠一区| 中文字幕免费视频 | 伊人色在线 | 狠狠艹狠狠干 | 四虎精品欧美一区二区免费 | 日韩欧美综合在线 | 成人免费版 | 亚洲精品粉嫩小泬20p | 亚洲第一黄色网 | 天堂8在线视频 | 神马午夜在线观看 | 99久久精品一区 | 密桃av在线| 国产13页 | 波多野结衣免费看 | 中文字幕在线视频免费 | 女人的天堂网 | 放荡的美妇在线播放 | 日韩在线www | 国内精品人妻无码久久久影院蜜桃 | 西西人体高清44rt·net | 亚洲一区二区美女 | 人妻互换一区二区激情偷拍 | 中文字幕一区二区三区乱码不卡 | 国产做受麻豆动漫 | 极品videosvideo喷水 | 中文字幕天堂网 | 亚洲色图另类 | 日日爱视频 | 中文字幕一区二区三区人妻四季 | 国产亚洲视频在线观看 | 中文字幕精品一区 | 16—17女人毛片 | 亚洲夜色| 韩国性猛交╳xxx乱大交 | 波多野结衣91 | 日韩免费不卡视频 | 一区二区视频在线观看 | 国产天堂一区 | 穿越异世荒淫h啪肉np文 | 老头糟蹋新婚少妇系列小说 | 日本爱爱网址 | 日本资源在线 | 精品黄网| 亚洲国产视频一区 | 国产免费一区二区三区网站免费 | 毛片在哪里看 | 天天玩天天干 | 黑人性高潮 | 国产精品第二十页 | 日本一区二区三区视频在线播放 | 秋霞午夜 | 51热门大瓜今日大瓜 | 大乳女喂男人吃奶 | 极品美女销魂一区二区三区 | 高柳家在线观看 | 91久久久久国产一区二区 | 色啊色| julia一区二区三区中文字幕 | 四虎最新站名点击进入 | 97偷拍视频 | 深夜福利1000 | 成人h动漫在线 | 日韩 国产 | 激情婷| 日韩欧美一卡 | 黄色日本视频 | 亚洲第一精品在线 | 在线免费观看小视频 | 色久网| 国产盗摄一区二区 | 黄色小毛片 | 丰满肉肉bbwwbbww | a√在线 | www在线看片 | 福利二区 | 男人插女人网站 | 特黄三级又爽又粗又大 | 操极品少妇 | 国产第一福利 | 麻豆av影院 | 老熟女高潮喷水了 | 精品国产久 | 国产精品黄色av | 少妇高潮灌满白浆毛片免费看 | 欧美一区二区三区成人片在线 | 舐め犯し波多野结衣在线观看 | 精品视频一区二区三区在线观看 | 日韩精品成人一区 | 国产三级中文字幕 | 丝袜在线视频 | 96精品视频在线观看 | aaa特级毛片 | 长篇乱肉合集乱500小说日本 | 日韩美在线 | 在线免费观看高清视频 | 97在线播放 | 天天撸在线视频 | 国产性猛交╳xxx乱大交 | 亚洲每日更新 | 精品国产一区二区三区四 | 狠狠做深爱婷婷综合一区 | 黄色免费在线网站 | 亚州成人| 美女激情网 | 黑丝av在线 | 日韩久久中文字幕 | 午夜欧美激情 | av日韩一区二区 | 色乱码一区二区三区在线男奴 | 日韩久久电影 | 欧美cccc极品丰满hd | 视频一区二区国产 | 欧美日韩中文字幕在线观看 | 久久免费精品视频 | 成人亚洲国产 | 黄色xxx| av在线电影观看 | 欧美一区二区三区激情 | 国产主播啪啪 | 国模大胆一区二区三区 | 黄色片视频免费看 | 国产成人精品一区二区三区免费 | 国产卡一卡二卡三无线乱码新区 | 欲色综合| 国产草草影院ccyycom | 在线观看中文字幕码 | 操人网 | a级片一级片 | 亚洲色图网友自拍 | 亚洲AV无码成人国产精品色 | 国产成人福利在线 | 国产日本一区二区 | 中文字幕在线播放av | 高清亚洲 | 欧美高清视频在线观看 | 顶臀精品视频www | 国产精品第56页 | 国产精品老熟女视频一区二区 | 一区二区三区高清在线观看 | 91精品久久香蕉国产线看观看 | 女人脱下裤子让男人捅 | 日本一区久久 | 国产精品无码毛片 | 欧洲色av| 成人h动漫精品一区二区无码 | aaaa黄色片| 青青草婷婷 | 岛国av中文字幕 | 黄色污污视频 | 日韩欧美视频在线播放 | 在线免费精品视频 | 午夜伦理影院 | 欧美亚洲国产一区二区三区 | 人妻 丝袜美腿 中文字幕 | 中文字幕一区二区人妻在线不卡 | 久久久成人免费视频 | 蜜臀久久99精品久久久画质超高清 | 91网站免费观看 | 欧美特黄 | 国产高中女学生第一次 | 久久国产乱子 | 高潮一区二区三区乱码 | 老妇裸体性激交老太视频 | 插插插插综合 | 麻豆免费在线视频 | 日韩av影片 | 国产精品乱码一区二区 | 在线免费三级 | 男生插女生网站 | 强行糟蹋人妻hd中文 | 超碰在线日韩 | 国产高清视频在线 | 免费人妻精品一区二区三区 | 我们好看的2018视频在线观看 | 伊人影院久久 | 亚洲精品国产精品乱码不卡 | 欧美一二 | 欧美成人精品欧美一级 | 精品国产一二区 | 丰满熟妇乱又伦 | 黄a免费网络 | 97精品人妻一区二区三区蜜桃 | 久草手机在线 | 国产日本在线观看 | av成人毛片 | 欧美日韩不卡合集视频 | 黄色二级视频 | 欧美日韩精品一区二区三区蜜桃 | 狠狠狠狠狠狠狠 | 特黄老太婆aa毛毛片 | 亚洲视频自拍偷拍 | 中文字幕一区二区三区免费看 | 精品欧美一区二区久久久久 | 性欧美lx╳lx╳ | 91国语对白 | 四虎tv| 久久99这里只有精品 | 久久嫩草视频 | 天天干视频 | 久草婷婷 | 91福利视频免费观看 | 奇米色影视 | 久久久www成人免费毛片 | 真实的国产乱xxxx在线 | 久久精品视频3 | 色香蕉在线 | 婷婷国产| 国产精品jizz| 一卡二卡三卡在线视频 | 国产精品国产三级国产aⅴ中文 | 日韩国产精品一区二区三区 | 性一交一乱一乱一视频 | 日本国产在线视频 | 精品少妇3p| 欧美激情婷婷 | a√天堂网 | 亚洲成人黄色av | 麻豆毛片| 国产调教在线 | 91麻豆精品久久久久蜜臀 | 男人的天堂视频网站 | 草逼视频网站 | 成人精品亚洲 | 精品人人人人 | 18成人免费观看视频 | 18成人免费观看网站下载 | 抖音视频在线观看 | 素人av在线| 精品一区二区视频 | 日日精| 国产精品无码白浆高潮 | 黄色片免费网站 | 人人看人人干 | 日本黄色片 | 日日噜噜夜夜狠狠久久丁香五月 | 欧美成网站 | 国产在线小视频 | 中国免费看的片 | 国产性爱精品视频 | 国产精品一区二区三区免费在线观看 | 国产又粗又猛又爽又黄视频 | 麻豆性生活 | 国产精品欧美精品 | 色综合自拍 | 两女双腿交缠激烈磨豆腐 | 亚洲图色av| 男女那个视频 | 一女二男一黄一片 | 萌白酱在线观看 | 精品裸体舞一区二区三区 | 超碰91在线 | 免费av免费观看 | 日韩免费高清视频 | 欧美成人视屏 | 痴汉电车在线观看 | 久久女人天堂 | 欧美aa在线| 日韩亚洲一区二区三区 | 日韩在线观看视频网站 | 成人免费看片入口 | 天堂av资源在线 | 国产黄色网页 | 五月天亚洲综合 | 欧美精产国品一二三 | 人人澡人人澡人人 | 激情图片在线观看 | 91porn九色 | 日本囗交做爰视频 | 久久夜夜操 | 午夜aaa片一区二区专区 | 国产ts变态重口人妖hd | 亚洲成人另类 | 国产精品亚洲一区二区无码 | 国产婷婷在线观看 | www.国产com| 男人久久久 | 黑人借宿巨大中文字幕 | 天海翼av| 少妇脚交调教玩男人的视频 | 国产精品一色哟哟哟 | 五月天精品在线 | 色啪网站 | 国产视频在线观看一区二区 | 激情五月网站 | 波多野结av衣东京热无码专区 | 欧美亚洲三级 | 伊人手机在线视频 | 欧美孕妇性xx| 玖操| 69堂视频 | 日日夜夜骑 | 色爽 | 午夜视频在线免费看 | 又紧又大又爽精品一区二区 | 国产91久久婷婷一区二区 | 男女爽爽爽| 免费看黄av| 国产精品综合 | www.成人网.com| 火影黄动漫免费网站 | 日本三级欧美三级 | 国产乱码精品一品二品 | 黑人巨茎大战欧美白妇 | 亚洲男人第一天堂 | 日韩av资源 | 成人短视频在线播放 | 办公室摸腿吻胸激情视频 | 亚洲爽爽爽 | 日韩男女视频 | 精品国产乱码一区二区三 | 亚洲欧美一区在线 | 成人无码久久久久毛片 | 午夜欧美在线 | 射死你天天日 | 国产婷婷一区二区 | 久久久久99人妻一区二区三区 | 日韩精品久久久久久 | 天天插天天色 | 国产suv精品一区二区68 | 99色这里只有精品 | 成人免费在线观看av | 天天爱天天色 | √天堂中文官网8在线 | 午夜污污 | 韩国av在线免费观看 | 美人被强行糟蹋np各种play | 综合一区在线 | 日本福利一区 | 日韩在线电影一区 | 国产精品影院在线观看 | 欧美日韩123 | 久久福利网站 | 999免费视频 | 亚洲欧美精品一区二区三区 | 亚洲综合日韩在线 | 久久久久久久穴 | 中出视频在线观看 | 夜夜操影院 | 欧美高清视频在线观看 | 日韩少妇| 在线观看午夜视频 | 日本高清www | 国产精品情侣自拍 | 黄色一级在线 | 国产毛片自拍 | 国产无遮挡aaa片爽爽 | 亚洲久久综合 | 日韩美女网站 | www.欧美色图| 四虎国产| 国产富婆一级全黄大片 | 日日夜夜免费精品视频 | 成人在线观看免费视频 | 久久综合五月天 | 国产精品视频在线播放 | 成人激情四射网 | 久久国产精| 国产高清在线一区 | 亚洲欧美在线一区二区 | 日韩一级视频在线观看 | 日本一二三区视频在线 | 久久精品亚洲一区 | 欧美一区二区三区在线观看视频 | 免费国产一区二区三区 | 免费久草视频 | 成人欧美一区二区三区黑人孕妇 | 男女视频免费 | 一区二区三区www污污污网站 | 免费网站www在线观看 | 成人欧美一区二区三区 | 香蕉黄视频 | 黄色一级免费网站 | 中文国产| 九一亚色 | 微拍福利一区二区 | 另类激情 | 一级免费黄色大片 | 亚洲激情视频小说 | 中文字幕69页 | 尤物网在线 | 香蕉伊人网 | 大伊人网 | 久久婷婷国产麻豆91天堂 | 东京热毛片| 亚洲深夜福利视频 | 亚洲国产精品久久久久婷婷老年 | 国内性视频 | 成人午夜视频一区二区播放 | 四虎最新域名 | 17c精品麻豆一区二区免费 | 韩国黄色片网站 | 精品人妻一区二区三区久久 | 男人的天堂a在线 | 日本性猛交 | 亚洲天堂av在线免费观看 | 精品久久久久久亚洲 | 一曲二曲三曲在线观看中文字幕动漫 | 成人免费看片在线观看 | 日本黄色大片网站 | 亚洲一区二区免费视频 | 免费在线一区二区 | 成人综合在线视频 | 狠狠躁夜夜躁人爽 | 亚洲熟女乱色综合亚洲av | 亚洲国产精品福利 | 国产精品天美传媒沈樵 | 蜜臀精品一区二区三区 | 免费看v片 | 久久久久9 | 综合性色| 一区二区三区在线观看视频 | 操碰人人| 国产99久久久久久免费看 | 免费无码一区二区三区 | 黄色工厂这里只有精品 | 极品探花在线 | 欧美大尺度床戏做爰 | 久久一级电影 | 中文字幕不卡av | 日韩免费在线 | 特黄视频在线观看 | 人人妻人人澡人人爽精品欧美一区 | 噜噜噜久久,亚洲精品国产品 | 在线看片国产 | 亚洲一久久 | 精品国产鲁一鲁一区二区张丽 | 激情91| 伊人狠狠 | 欧美三级 欧美一级 | 亚洲欧美va天堂人熟伦 | 黄色动漫在线观看 | 四虎国产精品免费 | av影视在线| 中文字幕日本人妻久久久免费 | 天天射网站 | 91video| 欧美在线看片 | 成人夜晚看av | 激情五月婷婷网 | 999福利视频 | 国产亚洲视频在线观看 | 99在线观看视频 | 精品五月天 | 爱爱免费视频 | 国产高清区 | 欧洲金发美女大战黑人 | 亚洲欧美v| 日韩视频h | 91免费高清视频 | 成人免费毛片xxx | 久久成人精品一区二区 | 精品综合久久久 | 视频一二区 | 欧美伊人影院 | 国产午夜在线视频 | 91成人在线看 | 久操综合 | 亚洲午夜天堂 | 久久的色偷偷 | 亚洲毛片视频 | 操欧美女人 | 成人免费视频国产免费网站 | 免费黄视频网站 | a毛片大片 | 久久久91精品国产一区二区三区 | 亚洲av永久纯肉无码精品动漫 | 五月婷婷国产 | 丁香花高清在线观看完整动漫 | 饥渴少妇勾引水电工av | 欧美一级夜夜爽 | 国产一区啪啪 | 少妇无码吹潮 | 影音先锋制服 | 亚洲综合不卡 | jlzzjlzz国产精品久久 | 久久久国产精华液 | 久久久免费精品视频 | 日韩成人专区 | 谁有免费的黄色网址 | 欧美精品在线免费 | 国产免费一区二区三区三州老师 | 被两个男人吃奶三p爽文 | 久久av网址 | 99免费在线观看视频 | 欧美最顶级a∨艳星 | 激情综合五月网 | 99re超碰| 国产99在线 | 成人欧美一区二区三区黑人 | 91欧美一区 | 国产色在线 | 2021天天干 | 国产农村妇女精品一二区 | 中文av一区二区 | 日韩一区二区三区四区五区六区 | 999久久久国产 | 日产精品久久久一区二区 | 日本黄色免费观看 | 日本三级片在线观看 | 日韩欧美自拍 | 黄色资源在线 | 秋霞国产午夜精品免费视频 | 亚洲精品一区二区在线观看 | 99久久久久久久久久 | 精品人妻久久久久一区二区三区 | 国产黄色免费观看 | 国产无套精品一区二区 | 99久久精品国产一区二区成人 | 亚洲成av人片在线观看无 | 亚洲激情在线视频 | 在线成人免费观看 | 日韩欧美国产精品综合嫩v 日韩精品久久久久久久的张开腿让 | 在线观看的网站 | 国产女同在线观看 | 中文字幕在线视频网站 | 国产在线播放一区二区 | 91麻豆成人精品国产免费网站 | 婷婷激情综合网 | 手机看片日韩日韩 | 波多野结衣精品在线 | 天天射一射 | 男人亚洲天堂 | 杨幂国产精品一区二区 | 日本少妇中出 | 亚洲天堂中文字幕在线观看 | 婷婷综合社区 | 久久免费黄色 | 91秦先生在线播放 | 日本久久久久久久久久 | 午夜福利一区二区三区 | 香蕉大人久久国产成人av | 国产第一精品 | 蜜臀久久99精品久久久 | 欧美日韩你懂的 | 国产精品人成在线观看免费 | 看免费黄色片 | 亚洲天堂自拍 | 九一国产在线观看 | 四虎影院黄色 | 日日爽夜夜操 | 91玉足脚交白嫩脚丫 | 国产色吧 | 伊人网伊人网 | 午夜激情四射 | 欧美激情在线狂野欧美精品 | 日本不卡视频在线观看 | 日韩三级视频在线播放 | 亚洲精品日韩av | 天堂在线中文 | 性高跟丝袜xxxxhd | 久久久久久久久久久久久久久久久久 | 精品国产乱码久久久久久牛牛 | a猛片 | av不卡一区二区 | 欧美bbbbbbbbbbbb18av | 久久久久久久黄色 | 中国字幕av | 欧美老肥婆性猛交视频 | 理论片国产 | 玖玖爱av| 狠狠操五月天 | 最新国产在线 | 三上悠亚一区二区三区 | 中文字幕国产精品 | 欧美老肥妇做.爰bbww视频 | 亚洲一区国产 | 日韩一区二区三区在线播放 | www.猫咪av.com | 成人网免费视频 | 婷婷丁香花五月天 | 久久久久人 | 九九热视频在线观看 | 嫩色av | 久久久久久久性 | 不卡的av在线 | 亚洲一区电影在线观看 | 日本泡妞xxxx免费视频软件 | 成人黄网免费观看视频 | 中日韩精品一区二区三区 | 韩国禁欲系高级感电影 | 帮我拍拍漫画全集免费观看 | 国产第二页 | 黑人精品欧美一区二区蜜桃 | 巨大乳の揉んで乳榨り奶水 | 不卡福利视频 | 美女穴穴| wwwwxxxxx日本| 91激情视频在线观看 | 欧美做受高潮 | 久久久久人妻一区精品 | 在线综合网 | 国产毛片一区二区三区 | 五月天激情视频 | 特黄网站 | 国产破处视频 | 国产精品熟女一区二区不卡 | 自拍偷拍亚洲视频 | 色月婷婷| 国产人成无码视频在线观看 | 巨大乳の揉んで乳榨り奶水 | 亚洲青青草 | 国产艳妇疯狂做爰视频 | 一本大道伊人av久久综合 | 亚洲国产精品成人av | 人人插人人爽 | 免费无码肉片在线观看 | 欧美日韩啪啪 | 海角社区在线视频播放观看 | 日韩伊人网 | 偷拍亚洲另类 | 美国黄色网址 | 国产在线xxx| 免费jizz| 动漫美女被吸奶 | 福利片一区二区 | 狠狠爱夜夜| www.精品久久 | 黄色三级国产 | 狠狠爱夜夜操 | 一级久久久久久 | 神马久久午夜 | 椎名空在线观看 | 强行挺进白丝老师里呻吟 | 久久久av网站 | 日本视频www色| 久久久国产精品一区二区三区 | 日本va在线观看 | 91久久久久久久久久久 | 肉大捧一进一出免费视频 | 国产黄频 | 青娱乐免费在线视频 | 无码人妻丰满熟妇啪啪欧美 | 91色漫| 91在线成人| 77久久| 午夜影视在线观看 | 黄色片一区二区 | 国产成人麻豆精品午夜在线 | 污片免费观看 | 亚洲精品a区 | 亚日韩在线 | 激情狠狠 | 美女又黄又免费的视频 | 一区二区在线视频播放 | 成人三级黄色 | 伊人免费视频 | 男女激情av | 奇米精品一区二区三区四区 | 日韩婷婷| 国产人妻精品久久久久野外 | 88国产精品视频一区二区三区 | 91大神精品 | 裸体女视频 | 国产在线视频网址 | 伊人久久影视 | 色哟哟在线免费观看 | 日韩不卡毛片 | 97在线观视频免费观看 | 好男人香蕉影院 | 国产亚洲精品久久久久久打不开 | 操天天| 97偷拍视频| 国产图片区 | 天天综合网网欲色 | 性欧美videos另类hd | 91精品免费 | 精品无码av在线 | 51精品国产 | 爱爱视频网 | 美女扒开屁股让男人桶 | 日韩小视频在线 | 久久免费看片 | 欧美一区二区三区四区在线观看 | 国产成人精品视频在线观看 | 少妇高潮喷水在线观看 | 理想之城连续剧40集免费播放 | 日韩有码在线视频 | 成人影院免费 | 91中文字幕永久在线 | 开心激情播播 | 鲁啊鲁在线视频 | v天堂中文在线 | 黑人操亚洲女 | 爱爱视频欧美 | 亚洲一二三区视频 | www.av成人 | 人妻洗澡被强公日日澡 | 成人亚洲区| 欧美性色黄 | 黄色网在线 | 四虎影成人精品a片 | 国产又黄又骚 | 一区二区视频免费 | 天天碰天天操 | 久久精品国产亚洲AV无码男同 | 影音先锋激情 | 国产精品一区二 | 在线成人影视 | 久久mm | 国产乱论| 风间由美在线视频 | 爽爽爽av| 久久亚洲国产 | 国产女主播在线播放 | 三级麻豆| 日韩欧美在线中文字幕 | 中文字幕第一页亚洲 | 青青草97国产精品免费观看 | 你懂的在线免费观看 | 一区二区三区精品在线 | 蜜桃视频在线观看网站 | 日日夜夜精品 | 99国产精品视频免费观看一公开 | 99视频久久 | 成人看片网站 | 91精品综合久久久久久五月天 | 欧美精品一区二区视频 | 99久久99久久久精品棕色圆 | 一区二区三区四区在线免费观看 | 成人欧美一区二区三区黑人动态图 | 99久久毛片| 蜜桃成熟时李丽珍国语 | 无码人妻一区二区三区精品视频 | 国产免费av电影 | 韩国性猛交╳xxx乱大交 | 欧洲性生活片 | 亚洲涩涩| 国产绿帽刺激高潮对白 | 一级片免费 | 亚洲制服无码 | 亚洲美女视频一区 | 爱情岛亚洲首页论坛小巨 | eeuss一区| 九九视频免费观看 | 日本少妇毛茸茸 | 人妻av一区二区三区 | 宇都宫紫苑在线播放 | 国产黄色网址在线观看 | 国产av无码专区亚洲av毛网站 | 午夜大片网 | 日韩一区二区不卡 | 碰碰色| 国产h片在线观看 | 99热只有| 国产视频色 | 国产黄色网 | 亚洲日本中文字幕在线 | 日韩av一区在线 | 国产精品中文字幕在线观看 | 日韩操| 欧洲成人午夜精品无码区久久 | 天天爱天天做 | 黄瓜视频在线播放 | 国产精品美女久久久久av爽 | 国产视频在线看 | 久久久久一区二区三区四区 | 日本aⅴ在线 | 欧美性生活一区二区三区 | 国产人人草| 中文字幕另类 | 99性趣网 | 国产永久免费 | 无码国产69精品久久久久同性 | 久久久com| 调教小屁屁白丝丨vk | 中文字幕+乱码+中文字幕一区 | 男女av| 后进极品美女圆润翘臀 | 天天干一干 | 欧美精品一区二区在线观看 | 三级免费 | 激情国产视频 | 超在线视频 | 欧美一区二区在线看 | 男女午夜爽爽 | 奇米影视网 | 日本黄色片网址 | 国产白袜脚足j棉袜在线观看 | 亚洲一区二区三区四区电影 | 超碰国产97 | 亚洲熟妇无码久久精品 | 国产农村乱对白刺激视频 | 欧美精品一二区 | 另类二区| 自拍偷拍p | 亚洲精品乱码久久久久久不卡 | 无码人妻精品一区二区三区66 | 欧美亚洲综合一区 | 欧美www| 最近免费中文字幕中文高清百度 | 性xxxx视频播放免费 | 女人做爰全过程免费观看美女 | 国产精品乱| 黄色一级大片在线免费看国产 | 91亚洲欧美激情 | 精品久久久久久久久久久国产字幕 | 99re6在线 | 日本在线免费播放 | 91导航 | 蜜桃视频一区二区三区 | 九九久久国产 | 国产高清在线观看 | 99久久人妻无码中文字幕系列 | 亚洲免费影视 | 亚洲成a人片在线www | 日韩va亚洲va欧美va久久 | 二级黄色录像 | 在线视频观看免费 | 女人高潮被爽到呻吟在线观看 | 日韩欧美成人网 | www.成人在线 | 韩国女主播裸体摇奶 | 婷婷五月色综合 | 国产精品xxxxxx | 噼里啪啦免费观看 | 国产成人精品一区二区在线小狼 | 国产精品av在线 | 桃色激情网 | 在线免费av片 | 性高潮在线观看 | 国产一区二区在线不卡 | 青草视频在线 | 亚洲做受高潮无遮挡 | 国产极品在线播放 | 青青成人 | 爱操av | 黑人vs日本人ⅹxxxhd | 亚洲美女性生活 | 日本高清视频在线观看 | 成人av资源网 | 青青青青草 | 国产一卡二卡在线 | 九九色在线 | 熟女俱乐部一区二区视频在线 | 日韩精品视频在线播放 | 一级片大全 | 国产成人a v| 日本xxxxxⅹxxxx69| 蜜臀久久99静品久久久久久 | 国产啊v在线观看 | 97插插插 | 狠狠综合久久av一区二区 | 岛国成人在线 | 欧美成人h版 | 黄色草逼视频 | 色哟哟导航 | 波多野结衣一二区 | 久久久久黄色片 | 国产做爰全过程免费视频 | 欧美综合影院 | 欧美丰满老妇 | www日本com | 乳女教师の诱惑julia | 中文字幕精品一区二区三区精品 | 亚洲区色 | 综合久久国产 | 精品国产999久久久免费 | 欧美日韩国产精品 | 国产黄色视屏 | av中文字幕在线播放 | 69xxx国产| 国产黄色在线免费观看 | 精品国产69 | 男人手机天堂 | xxx久久| 国产精品久久国产精品 | 亚洲精品美女久久久 | 国产精品污www在线观看 | 亚洲精品女| 午夜精华| 亚洲日本免费 | 91xxxxx| 野外(巨肉高h) | 欧美调教视频 | 欧美视频在线观看 | 三级黄片毛片 | 噜噜色图 | 6080av| 香蕉视频色版 | 国产精品一区二区三区久久久 | 人妻少妇一区 | 先锋影音男人 | 国产精品视频专区 | 99久久久国产精品 | 秋霞二区| 久久综合久久综合久久综合 | 中文字幕在线免费观看 | 国产精品永久免费 | 亚洲精品一区二区潘金莲 | 无遮挡在线 | 毛片视频免费观看 | 邪恶久久 | 综合色天天 | 久久高清内射无套 | 伊在线久久丫 | 日批国产| 岛国伊人| 久久久91视频 | 免费在线观看中文字幕 | 亚州欧美日韩 | 国产高清不卡一区 | 精品乱人伦一区二区三区 | 成年人午夜| 超碰这里只有精品 | 捆绑凌虐一区二区三区 | www.youjizz.com日本| 婷婷色网| 美女福利视频一区 | 性欧美videos高清hd4k | 水蜜桃影库| 国产精品视频一二三 | 欧美日韩久久久久久 | 日韩啪啪网站 | 色午夜视频 | 亚洲性少妇 | 开心激情五月婷婷 | 久久久高潮| 玖玖爱在线观看 | 麻豆视频在线看 | 日美av| av大片在线 | 中文字幕亚洲无线码在线一区 | 亚洲精品乱码久久久久久蜜桃麻豆 | 波多野结衣福利 | 日韩和欧美一区二区 | 综合五月 | 最近中文字幕第一页 | 九一国产在线 | 精品一区二区三区久久久 | 人妻久久久一区二区三区 | 色丁香久久 | 少女情窦初开的第4集在线观看 | 青娱乐在线视频观看 | 午夜国产片 | 精品人人妻人人澡人人爽牛牛 | 成人私密视频 | 亚洲天堂一区二区三区四区 | 松本一香在线播放 | 91丨九色丨丰满人妖 | 国产一区在线免费观看 | 色网站在线免费观看 | 成人福利在线 | 日本精品久久久久久 | av成人精品 | se婷婷| 日韩在线三级 | 日本高清视频一区 | 无码人妻aⅴ一区二区三区有奶水 | 久色免费视频 | 偷看洗澡一二三区美女 | 手机av网站 | 污网址在线观看 | 国产亚洲精品码 | 精品不卡视频 | 91大神视频在线播放 | 99精品国产在热久久婷婷 | 日日干天天操 | 轮番上阵免费观看在线电影 | 久久久久久久久国产 | 在线观看精品视频 | 樱花视频在线免费观看 | 韩国无码一区二区三区精品 | 日本免费一区二区三区四区五六区 | 成人av无码一区二区三区 | 免费黄色大片网站 | 波多野结衣久久 | www.亚洲一区| 久久久久久久久久久久久久久久久久久 | 色鬼综合| 国内自拍第一页 | 九七人人爽 | 91爱国产| 午夜羞羞网站 | 一区二区三区四区在线免费观看 | 黄色三级av | 在线观看一区二区视频 | 亚洲视频在线一区二区 | 玖玖热在线视频 | 日日干夜夜骑 | av在线免费播放网址 | 欧美大胆a视频 | 日本一区二区三区视频在线 | 久久久久色 | 一区福利视频 | 99视频在线| 男人疯狂高潮呻吟视频 | 成人av影视在线观看 | 无码精品一区二区三区在线 | 欧美在线小视频 | 国产成人无码精品亚洲 | 91精彩视频在线观看 | 日韩美女视频网站 | 天天操天天操天天 | 亚洲一区毛片 | 国产精品久久久久久久专区 | 久操久热| 播放黄色一级片 | 大奶在线观看 | 日韩精品――色哟哟 | 一区二区国产精品 | 1024日韩| 好看的中文字幕电影 | 黄色com | 瑟瑟视频免费观看 | 日本成人在线免费 | 波多野结衣激情视频 | 国产超碰av | 男人操女人免费视频 | 大陆农村乡下av | 欧美国产黄色 | 中文字幕乱码无码人妻系列蜜桃 | 久久精品超碰 | 丝袜脚交国产在线观看 | 91精品久久久久久久久中文字幕 | 琪琪射| 熟女一区二区三区四区 | 91丨porny丨首页 | 成年人黄色在线观看 | 午夜毛片在线观看 | 一本大道av伊人久久综合 | 久久99精品久久只有精品 | 麻豆精品免费 | 伊人日韩 | 亚洲最大av网| 日韩 在线| 日本黄色美女 | 久久一区二区视频 | 少妇欧美激情一区二区三区 | 日韩色 | 欧美日韩人妻精品一区二区三区 | 大战熟女丰满人妻av | 春色av | 射综合网 | av黄色在线 | 欧美骚少妇 | 米奇影视第四色 | 91丨九色丨蝌蚪丨老版 | 青娱乐欧美 | 免费观看毛片 | 亚洲精品污 | 淫语视频 | 91视频免费在观看 | 中出白浆 | 国产视频手机在线观看 | 激情啪啪网站 | 在线免费一区 | 性福利视频 | 欧美亚洲91 | 超级砰砰砰97免费观看最新一期 | 日本网站在线 | 天堂а√在线中文在线新版 | 可以在线看黄的网站 | 国产在线色 | 亚洲天堂网一区二区 | 森林影视官网在线观看 | 欧美男女激情 | 日本高清不卡码 | 野花av| 中文字幕av网站 | 日韩欧美一区二区在线观看 | 欧美日韩h | 高清不卡一区 | 午夜美女网站 | 日韩精品电影一区二区三区 | 欧美高清69hd | 中文字幕第一区 | 国产精品无码免费播放 | 亚洲插插 | jizz国产免费 | 久久午夜电影网 | 鲁在线视频 | 肉大捧一进一出免费视频 | jizz性欧美17| 男女黄床上色视频免费的软件 | 亚洲欧美bt | 国模无码国产精品视频 | 亚洲欧美黄色片 | 超碰在线观看91 | 国产无遮掩 | 国产精成人品 | 亚洲v国产v| 日本人与黑人做爰视频 | 黑料av在线 | 青青青草视频 | 超碰997| 自拍偷拍第1页 | 黄色短视频在线观看 | 毛片视频在线免费观看 | 一区在线免费观看 | 日韩av高清在线观看 | 欧美老熟妇又粗又大 | 三级网站免费看 | 亚洲午夜久久久久久久久红桃 | 啪啪网站免费看 | 日韩av男人天堂 | 一区二区国产在线观看 | 欧美日韩五区 | 免费一级黄色大片 | 欧美成人aaa片一区国产精品 | 永久视频在线观看 | 久久人人爽 | 日本aaa视频 | 日韩中文字幕在线观看 | 久久午夜免费视频 | 少妇毛片一区二区三区 | 91精品免费 | 国产床上视频 | 91偷拍精品一区二区三区 | 天堂网在线最新版www中文网 | 亚洲一区 欧美 | 亚洲第3页 | 91麻豆成人 | 成人黄色在线观看 | 亚洲高清免费视频 | 最新国产毛片 | 少妇人妻一区二区 | 天海翼av在线播放 | 色999视频 | 精品国产乱码久久久久久久 | 色乱码一区二区三在线看 | 国产黄色一级大片 | 极品美女高潮出白浆 | 欧美成a| 污视频免费看 | 玖玖久久 | 免费日批网站 | 稀缺小u女呦精品呦 | 日本一区二区在线免费观看 | 捆绑凌虐一区二区三区 | 欧美老司机 | 久久精品一级片 | xxxxhdvideos | 国内毛片视频 | 亚洲第一免费播放区 | 国产美女操 | 欧美福利网站 | 日本黄色小网站 | 午夜亚洲福利 | av在线免费观看网站 | 欧美一级大黄 | 波多野结衣毛片 | 日韩欧美国产视频 | 亚洲成人伦理 | 国产富婆一级全黄大片 | 超碰在线综合 | 国产18页 | 91av视频在线播放 | 99国产精品无码 | 色亚洲视频 | 麻豆精品一区 | 欧美日韩一区二区三区视频 | 国产又粗又猛又爽又黄的视频一 | 国产999视频| 欧美激情 国产精品 | 男女aa视频 | 欧美成人免费在线观看 | 国产精品久久久久无码av | 超碰爱爱| 视色视频 | 美女又大又黄 | 日本做爰高潮又黄又爽 | 国产一av| 久久久久少妇 | 成人黄色免费网 | 欧美亚洲另类图片 | 免费成人毛片 | 欧美日韩国产精品成人 | 亚洲二三区 | 激情片网站 | 日韩在线一区二区三区 | 亚洲免费观看高清 | 日本人dh亚洲人ⅹxx | 亚洲色图激情小说 | 在线看www | 亚洲av无码乱码国产精品久久 | 欧美成人精品欧美一级 | 天天看天天操 | 色图色小说 | 成人h动漫精品一区二区 | 性猛交ⅹxxx富婆视频 | 乱淫的女高中暑假调教h | 三级av片 | 亚洲激情在线 | 欧美日韩国产精品成人 | 日日夜夜精品免费视频 | 亚洲永久网站 | 91精品国自产在线偷拍蜜桃 | 黄黄视频在线观看 | 美女又大又黄 | 小泽玛利亚在线 | 91国产精品 | 成全世界免费高清观看 | 欧美超碰在线 | 秋霞影院午夜老牛影院 | 麻豆视频免费在线 | 成人性生生活性生交全黄 | 无码一区二区三区免费 | www.欧美视频 | 男人天堂久久久 | 新天堂av| 色噜噜狠狠一区二区三区果冻 | 日本欧美久久久久免费播放网 | 国产精品久久久久久久久毛片 | 亚洲自拍偷拍区 | 亚洲精品一区二三区 | 青青成人网| 精品国产乱码久久久久久牛牛 | 国产综合一区二区 | 麻豆最新网址 | 国产精品suv一区二区69 | 成人免费黄色大片 | 强行糟蹋人妻hd中文字幕 | 熊猫成人网 | 99久久这里只有精品 | 久久久久久九九九九 | 一区二区在线免费观看 | 99涩涩 | 欲求不满在线小早川怜子 | 免费在线观看av的网站 | 婷婷丁香综合 | 91精品影视 | 日韩精品人妻中文字幕有码 | 不卡一区二区在线 | 夜夜操操操 | 色香蕉影院| 亚洲视频五区 | www.超碰97 | 极品少妇xxxx精品少妇偷拍 | 国产黄a三级三级看三级 | 密桃成熟时在线观看 | 亚洲精品手机在线 | 黄色片的网站 | 在线视频观看一区 | 日韩激情一区 | 久操欧美 | 久久免费视屏 | 日本理伦片午夜理伦片 | 中文字幕人妻无码系列第三区 | 日韩在线欧美在线 | 成年人国产 | 午夜视频免费 | 天天色天天干天天 | 国产福利在线免费观看 | 五月天一区二区 | 少妇色| 久久精品1 | 4虎最新网址 | www国产亚洲精品久久麻豆 | 日韩一级在线观看视频 | 黄色免费毛片 | 国产精品无码中文 | 欧美三级韩国三级日本三斤在线观看 | 在线日本中文字幕 | 传媒视频在线观看 | 国产爆操视频 | 污视频大全| 日本做爰高潮又黄又爽 | 天天插天天透 | 一个色的综合 | 69色堂| 成人爱爱网站 | 天天操夜夜操狠狠操 | 日韩在线欧美 | 久久影音先锋 | 五月天久久久 | 国产九色91 | 一级黄色免费网站 | 国产一线在线观看 | 三级在线视频 | 激情午夜影院 | 久久一二区| 亚洲精品91天天久久人人 | 午夜av影院 | 欧美一区日韩一区 | 免费在线你懂的 | 啪啪激情网 | 欧美另类视频在线观看 | 超碰精品 | 亚洲精品无码久久 | 美国黄色a级片 | 国产人人看| 国产你懂的 | 亚洲国产精品免费视频 | 总裁憋尿呻吟双腿大开憋尿 | 九色porny自拍视频在线播放 | 亚洲午夜视频 | 亚洲成av人**亚洲成av** | 国产69av| 欧美一二区视频 | 婷婷人体 | 国产精品又黄又爽又色无遮挡 | 成人免费在线播放视频 | 成人乱码一区二区三区av | 叶爱在线 | 日本超碰| 18禁裸乳无遮挡啪啪无码免费 | 欧美色图网站 | 亚洲无套 | free性娇小hd第一次 | 国产免费av片在线观看 | 亚洲图片在线观看 | 国产精品刺激 | 自拍偷拍在线视频 | 97成人资源 | 一本久 | 色哟哟免费 | 农村老妇性真猛 | 99热在线只有精品 | 香蕉久久久久久 | 国产麻豆一级片 | 天天操天天操天天 | 成人污视频 | 国产3级 | 成年人毛片视频 | a级一级片 | 久久国 | 久久久久一区二区 | 久久系列 | 成人动漫在线免费观看 | 中文字幕人妻一区 | 极品色影视 | 成人超碰在线 | 在线观看成人免费视频 | 九九热免费视频 | 婷婷五月小说 | 国产精品视频久久 | www.黄在线观看 | 日本少妇三级 | 激情久| 欧美日韩3p | 欧美日韩在线视频免费观看 | 91性色| 天堂√| 久久久全国免费视频 | av不卡在线免费观看 | 美女狂揉羞羞的视频 | 777奇米视频 | 一区免费 | 妺妺窝人体色www聚色窝仙踪 | xxx性日本| 免费看黄色一级片 | 国产精伦| 理论片午夜 | 久久综合在线 | 国产一区二区视频在线观看免费 | 日本少妇激情 | 亚洲免费三级 | 800av免费在线观看 | 另类视频在线观看+1080p | jlzzjlzzjlzz亚洲人 | 欧美一级色片 | 在线黄视频 | 波多野结衣调教 | 日本55丰满熟妇厨房伦 | 亚洲伦理一区二区三区 | 91素人约啪 | 欧美日本综合 | 夜夜草导航 | 国产乱淫a∨片免费观看 | 国产成人看片 | 天天久久久 | 亚洲黄色视屏 | 有码一区 | 99re这里都是精品 | 91美女视频在线观看 | 日本一本二本三区免费 | 国产亚洲一区二区三区不卡 | 亚洲精品视频中文字幕 | 日本少妇xxxxx | 久久久久人妻精品一区三寸 | se婷婷| 丰满的女邻居 | 裸体黄色片 | 91精品国产91久久久久久 | 国产伦精品一区二区三区视频痴汉 | 成人国产 | 97超碰在线播放 | 久草91 | 波多野结衣视频网址 | 麻豆网站在线观看 | 精品美女久久久 | 日本高清免费视频 | 欧美三级欧美成人高清 | 日韩一级片在线播放 | 美女扒开屁股让男人捅 | 就去色综合 | 国产精品影院在线观看 | 变态 另类 国产 亚洲 | 亲子伦视频一区二区三区 | 欧美日韩性视频 | 丁香激情婷婷 | 成年网站 | 日韩黄色免费看 | 熟妇女人妻丰满少妇中文字幕 | 很污的网站 | 亚洲色图50p | 日韩在线观看网站 | 色播视频在线播放 | 精品中文字幕在线观看 | 国产一级一级国产 | 国产精品第一国产精品 | av一区二区三区 | 成人亚洲精品 | 悠悠色影院 | 久久视频一区二区 | 国产精品爽爽久久 | av视觉盛宴 | 免费男女乱淫真视频免费播放 | 日日噜噜噜夜夜爽爽狠狠 | 国产又粗又黄又爽又硬的视频 | 国产探花一区 | 丰满肉肉bbwwbbww | 大胸美女啪啪 | 亚洲一区二区三区在线观看视频 | 亚洲欧美国产一区二区三区 | 69er小视频 | 法国空姐在线观看完整版 | 国产在线视频网址 | 免费看的黄色网 | 日韩插插| 色伊人影院 | va婷婷| 美女伦理水蜜桃4 | 久久精品国产成人av | 亚洲色图图 | 伊人av网站 | 亚洲蜜桃av | 伊在线久久丫 | 国产精品自拍偷拍视频 | 一区二区三区国产在线 | 秋霞自拍| 亚洲一区二区三区四区视频 | 国产稀缺真实呦乱在线 | 亚洲91网 | 毛片毛片毛片毛片毛片毛片毛片毛片 | www.天堂在线 | 99er在线| 亚洲一区二区精品视频 | 亚洲小视频在线观看 | 国产极品在线播放 | 国产精品夜夜爽 | 久久天堂av综合合色蜜桃网 | 亚洲欧美中文字幕 | 深夜福利网址 | 天堂综合网久久 | 性猛交xxxx乱大交孕妇印度 | 曰韩在线 | 日韩欧美国产另类 | 9色av| 私密spa按摩按到高潮 | 国产精品一区无码 | 欧美激情综合五月色丁香 | 亚洲成色 | 久久久久久久一区二区三区 | 亚洲日本成人 | jizz性欧美23 | 强制憋尿play黄文尿奴 | 污污在线免费观看 | wwwxxxxx日本 | 海量av资源 | 乱短篇艳辣500篇h文最新章节 | 天天干夜夜撸 | 在线观看中文字幕av | 中文字幕伦理 | 欧美成人国产精品一区二区 | 综合99| 三级黄在线观看 | 影音先锋中文在线 | 最新免费av网站 | 91精品久久久久久久 | 奇米影视首页 | 中文理论片 | 色综合天天综合网国产成人网 | 亚洲视频国产精品 | 体内精视频xxxxx | 你懂的在线视频网站 | 午夜高清福利 | 有码av在线| 9999久久久久 | 男人天堂99 | cao在线 | 在线看的免费网站 | 特大黑人巨交吊性xx | 禁漫天堂在线 | 黄色在线免费观看视频 | 国产一区二区三区 | 欧美视频一区 | 国产高清视频在线 | 成人天堂av | 18色av| 欧美10p| 你懂的在线免费观看 | 性――交――性――乱a | 久久久久久艹 | 婷婷色激情| 91人人爽| 久久久精品综合 | 在线黄色网页 | 日本成人一级片 | 日韩va中文| av怡红院| 成人午夜视频精品一区 | 亚洲av中文无码乱人伦在线观看 | 99热青青草 | 性感美女视频一二三 | 久久久久久久久一区 | sese亚洲 | 木木影院| 成人中文字幕+乱码+中文字幕 | 福利姬在线播放 | 国产二区在线播放 | 男人在线网站 | 亚洲资源在线播放 | 亚洲欧美一二三区 | 欧美日韩aaa| 亚洲私拍 | 国产一区免费看 | 亚洲一区二区在线看 | 91片黄在线观看喷潮 | 欧洲女同同性吃奶 | 色综合久久久久久久 | 修仙淫交(高h)h文 | 免费看又黄又无码的网站 | 久草精品在线 | 色丁香婷婷综合久久 | 污视频在线观看免费 | 亚洲天堂av中文字幕 | 最新中文字幕av专区 | 免费污视频在线观看 | 日韩精美视频 | 在线se| 一区二区三区日本视频 | 国内久久精品视频 | 日本zzjj| 91在线不卡 | 精品无码m3u8在线观看 | 国产成人8x视频一区二区 | 91香蕉视频污污 | 欧美成人精品激情在线视频 | 国产精伦 | 成人欧美一区二区三区黑人一 | 日本xxxx在线观看 | 伦伦影院午夜理伦片 | 久久激情久久 | 五月婷婷影院 | 亚洲情热 | 国产成人精品一区二区三区四区 | 久久精品一区二区免费播放 | 999毛片 | 99在线看| 中文字幕色哟哟 | 青青草福利视频 | 岳奶大又白下面又肥又黑水多 | 欧美性猛交富婆 | 鲁一鲁在线视频 | 影音先锋中文字幕人妻 | 日日夜夜网| 色悠悠av| 波多野结衣一区二区三区 | 亚洲av成人无码一二三在线观看 | 午夜精品国产精品大乳美女 | 日中文字幕 | www.伊人网 | 三级久久 | 免费视频99 | 国产男女猛烈无遮挡 | 亚洲第一视频网 | 天天干天天做天天操 | 国产福利久久久 | 日韩一区二 | 丝袜美腿中文字幕 | 精品国产一区二区三区在线观看 | 黄色综合网站 | 久久久免费高清视频 | 日韩欧美片 | 久久黄色免费视频 | 男女污污软件 | 日韩欧美中文字幕在线播放 | 欧洲三级视频 | 男女啪啪av | 一级少妇毛片 | 久久国产精品久久国产精品 | 国产www在线观看 | 欧美激情图区 | 色黄大色黄女片免费中国 | 播放黄色一级片 | 欧美成人激情视频 | 99久久这里只有精品 | 亚洲综合第一页 | 涩涩视频软件 | 国产精品热 | 日韩av一区二区在线观看 | 亚洲国产第一 | 天天躁日日躁aaaa视频 | 久久国产精品毛片 | 91高跟黑色丝袜呻吟在线观看 | 顶级黄色片 | 天天爱综合| 69久久久 | 97成人精品| 91免费看.| 色羞羞| 日日日噜噜噜 | 粗了大了 整进去好爽视频 精品无码久久久久成人漫画 | 成年人黄色大全 | 中文字幕久久熟女蜜桃 | 四色成人av永久网址 | a√在线| 国产精品成av人在线视午夜片 | 欧美aa级| 视频在线一区 | 91影视在线观看 | 免费在线观看黄色片 | 日本三级中国三级99人妇网站 | 狠狠操操| 亚洲一区二区三区91 | 狠狠草视频 | 可以看的av网址 | 日韩第一页在线 | 婷婷色九月| 日狠狠 | 久久精品 | 亚色影库 | 操综合网| 国产床上视频 | 91蜜臀精品国产自偷在线 | 亚洲免费网址 | 精品爆乳一区二区三区 | 亚洲无限码 | 天天摸日日操 | 人妻少妇精品视频一区二区三区 | 日韩精品一区二区在线 | 天天干影院 | 中文字幕+乱码+中文乱码91 | 黄色片视频网站 | 日韩综合精品 | 亚洲精品一区二区三区区别 | 可以看污的网站 | 国产精品一级黄片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 激情视频网址 | 亚洲成人偷拍 | 麻豆视频免费入口 | 日本九九热 | 91免费视频网站 | 国产一区二区三区毛片 | av免播放器 | 国产夫妻在线 | 少妇又紧又深又湿又爽视频 | www欧美在线 | 国产在线观看网站 | 中文字幕免费高清网站 | av在线浏览| 99热超碰 | 成人免费片 | 特级西西人体 | 嫩草国产 | 久久精品网 | www.亚洲综合 | 手机av免费看 | 国产春色 | 欧美性开放视频 | 亚洲观看黄色网 | 在线毛片网 | 久草中文在线视频 | 欧美人妖另类 | www国产在线观看 | 劲爆欧美第一页 | 少妇高潮灌满白浆毛片免费看 | 国产在线一区二区三区四区 | 亚洲天堂网在线视频 | 无码人妻一区二区三区线 | 韩国中文字幕在线观看 | 日本少妇与黑人 | 尤物视频最新网址 | 久草成人在线 | 亚洲情se | 国产一区二区三区精品在线观看 | 欧洲在线视频 | 99在线观看 | 亚洲精品专区 | 全部毛片永久免费看 | 毛片在哪里看 | 日本不卡视频在线观看 | 精品无码m3u8在线观看 | 探花系列在线观看 | 91成人免费视频 | 91国内精品视频 | 午夜在线一区二区 | 国产精品欧美综合 | 欧美日韩亚洲系列 | 天天色天天爱 | 亚洲欧美国产精品久久久久久久 | 91免费国产在线观看 | 日韩中文字幕电影 | 久久久久国产精品一区 | 爽爽窝窝午夜精品一区二区 | 欧美性动态图 | 五月天激情四射 | 亚洲男人天堂2017 | 性猛交ⅹxxx富婆视频 | 天天做天天爱天天操 | 欧美一级片在线视频 | 韩国无码一区二区三区精品 | 欧美做爰全过程免费观看 | 国产一级久久 | 草逼视频网站 | 日韩黄色一区 | 国产永久在线观看 | 日韩三级在线免费观看 | www毛片| 精品免费在线视频 | 香港三级日本三级韩国三级 | 欧美日韩成人 | 亚洲综合小说 | 色哟哟入口 | 久草视 | 国产色网站 | av不卡一区二区三区 | 亚洲一区二区三区视频在线 | 爆乳熟妇一区二区三区 | 一级性毛片 | 一本一道人人妻人人妻αv 国产一区二区在线视频观看 | av网站免费在线观看 | 日本三级2019 | 激情开心站 | 色拍拍视频 | 久久精品6 | 视频一区二区三区四区五区 | 国产 第1190页 | 日韩在线视频免费看 | 超碰2023 | 黄页网站免费在线观看 | 亚洲精品久久久久中文字幕二区 | 亚洲成人av免费观看 | 国产卡一卡二卡三无线乱码新区 | 中国男女全黄大片 | 全黄一级裸体片 | 天天干天天添 | 在线观看免费福利 | 中文不卡视频 | 狠狠cao日日穞夜夜穞av | 波多野结衣午夜 | 韩国美女主播跳舞 | 国产精品成人一区二区网站软件 | 91成人免费看 | 一区二区三区免费观看视频 | 成人性视频网站 | 91成品视频 | 狠狠干欧美 | 看91| 色综合啪啪 | 色吧视频 | 男人天堂视频在线 | 亚洲天堂自拍 | 中文字幕一级二级三级 | 成人涩涩软件 | 狠狠干婷婷 | 日韩成人影视 | 久久久www成人免费毛片 | 成人在线观看免费视频 | 欧美日韩成人在线视频 | 久久久久久久久99精品 | 久草中文视频 | av中亚 | 精品999久久久 | 伊人网综合| 夜夜欢视频 | 日本久久一级片 | 毛片直接看| 国产日日日| 欧美中文字幕在线观看 | 热久久最新网址 | 78日本xxxxxxxxx59| 毛片官网| 成人97| 中文字幕日本一区 | 99精品国产在热久久婷婷 | 国产精品视频免费看 | 亚洲私拍 | xvideos永久免费入口 | 97视频播放 | 一区二区中文字幕 | 九九色影院 | 麻豆激情网 | 免费观看黄色一级片 | 久久久久久国产精品 | 久久国产美女 | 亚洲天堂自拍 | 国产精品成人免费视频 | 久久精品无码一区二区三区 | 特级毛片网站 | 四级黄色片| 中文字幕精品无 | 久久九| 日剧再来一次第十集 | 中文字幕日日夜夜 | 午夜aa| 欧美自拍视频在线观看 | 国产精品免费一区二区三区 | 翔田千里一区二区 | 成人123区| 日韩婷婷 | 国产精品19乱码一区二区三区 | 美国色视频 | 日韩视频国产 | 亚洲丁香 | 天天摸天天做天天爽 | 亚洲精品一区二区三区蜜桃久 | 熟女人妻一区二区三区免费看 | 国产精品久久久久久久久久久久午夜片 | 国产精品av久久久久久无 | jizz日本女人 | 99久久99久久精品免费看蜜桃 | 亲子乱aⅴ一区二区三区 | 新婚之夜玷污岳丰满少妇在线观看 | 亚洲精品9999 | 久久免费资源 | 亚洲成人av电影 | 91精品成人 | 男男h黄动漫啪啪无遮挡软件 | 初尝情欲h名器av | 亚洲综合免费观看高清完整版 | 国产a级免费视频 | 日本中文字幕免费 | 四虎影库在线播放 | 超碰2023| 国产乱码在线观看 | 日韩av电影中文字幕 | 麻豆精品国产传媒mv男同 | 少妇一级淫片免费 | 日韩高清二区 | 汗汗视频| 永久免费在线看片 | 黄污视频网站 | 美女大战精子 | 午夜簧片| 国产理论视频 | 国产九九精品视频 | 天堂成人在线 | 一级片免费的 | 偷拍自拍一区 | 香蕉视频久久 | 中文字幕毛片 | 青娱乐91 | 成人h片在线观看 | 久久精品国产精品 | 99色综合 | 成人一区二区三区在线观看 | 亚洲欧美另类中文字幕 | 山村淫强伦寡妇 | 暖暖免费观看日本版 | 日本在线视频不卡 | 高跟丝袜av | 国模二区 | 四虎成人免费视频 | 欧美激情第1页 | 自拍偷拍亚洲综合 | 婷婷视频网 | 美日韩精品 | 久久精品在线免费观看 | 欧美性tv| 依依成人综合网 | 欧美日韩免费观看一区=区三区 | 亚洲国产影视 | 97人人精品 | 国产精品色视频 | 亚洲AV成人无码网站天堂久久 | 亚洲一区二区三区成人 | 亚洲国产v | 国产卡一卡二 | 污视频在线观看免费 | 亚洲天堂二区 | 国产aa大片 |