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

麻豆网站入口 | a级大片在线观看 | 成人在线激情视频 | 中文字幕无码乱码人妻日韩精品 | 成人做爰免费视频免费看 | 少妇精品无码一区二区免费视频 | 免费黄色91 | 一区二区三区在线播放视频 | 亚洲精品一区二区三区蜜桃 | 亚洲黄色片网站 | av网站网址 | a天堂资源| 黄色片免费 | 国产日韩精品一区二区 | 男人的天堂avav | 色在线免费观看 | 综合成人在线 | 午夜爽视频 | 天天综合色网 | 久久久www | 国产精品1区2区 | 好大好爽好舒服 | www黄色在线观看 | 妖精视频一区二区三区 | 国产精品国产三级国产在线观看 | 不卡视频一区二区 | 热久久91 | 日本久久一区二区 | 日韩xxx视频 | 日本熟妇一区二区三区 | 麻豆偷拍| 日韩啪啪网站 | 亚州国产精品 | 亚洲精品在线观看网站 | 动漫av网站| 国产精品suv一区二区三区 | 综合视频一区 | 欧美高清在线视频 | 九九久久久| 黄色网免费观看 | 人人看人人草 | 欧美一级录像 | 国产精品videossex久久发布 | www.色亚洲 | 97在线播放免费观看 | 亚洲涩情| 天天干天天干天天干天天 | 亚洲精品国产免费 | 在线观看av不卡 | 久久国内精品 | 精品国产无码AV | 97国产| 亚洲色成人网站www永久四虎 | 美女av在线免费观看 | 在线天堂av | 欧美交换 | 在线成人黄色 | 色欲狠狠躁天天躁无码中文字幕 | 邪恶久久| 天堂av免费在线观看 | 中文在线观看免费高清 | 特一级黄色 | 最新av导航 | 人妻妺妺窝人体色www聚色窝 | 久久精品九九 | 精品久久久久久国产 | 最近中文字幕在线观看 | 欧美区一区二 | 在线国产三级 | 老熟女重囗味hdxx69 | 欧美一级二级在线观看 | 污视频网站免费看 | 波多野结衣在线视频免费观看 | 欧美一级免费观看 | 欧美一区二区三区系列电影 | 三级黄色在线视频 | 五月亚洲综合 | 国产美女自慰在线观看 | 色臀| 国产伦精品一区二区三区四区视频 | 免费视频一区 | 欧美国产日韩在线观看 | 欧美瑟瑟 | 天天想你在线观看完整版电影高清 | 国产无遮挡又黄又爽又色视频 | 五月天中文字幕 | 亚洲自拍偷拍区 | 强伦人妻一区二区三区视频18 | 一区二区三区四区免费 | av日韩一区二区 | 国产区精品视频 | 日韩在线精品视频 | 能看毛片的网站 | 天天碰视频 | 亚洲精品在线不卡 | 91素人约啪 | 超在线视频 | 激情一区二区三区 | 日韩三级在线免费观看 | 欧美日韩在线不卡 | 男裸体无遮挡网站 | 国偷自拍第113页 | 国产午夜三级一区二区三 | 完美搭档在线观看 | 亚洲v视频 | 久久久久久久久99精品 | 天天玩天天干 | 日韩国产欧美在线观看 | 日韩高清影院 | 国产成年人视频 | 九九精品网 | 成人www| 中文字幕av亚洲精品一部二部 | 人人妻人人澡人人爽国产一区 | 青青草成人在线观看 | 邪恶久久 | 69久久精品 | 美女福利视频在线观看 | 亚洲天堂手机在线 | 99久在线精品99re8热 | 久久精品在线免费观看 | 牛牛影视一区二区三区 | 欧美一区二区网站 | 亚洲国产乱 | 中文字幕一区二区三区免费视频 | 春色导航 | 亚洲av无码一区东京热久久 | 爆操白虎逼 | 波多野结衣在线免费视频 | 初尝黑人巨炮波多野结衣 | 一级片在线观看免费 | 黄色一级a毛片 | 少妇人妻好深好紧精品无码 | 懂色av一区二区三区四区 | 奶水喷溅 在线播放 | 日日麻批免费视频播放 | 欧美三级韩国三级日本三斤在线观看 | 亚洲天堂一区 | 免费看女生裸体视频 | 亚洲av成人无码久久精品 | 黄色应用在线观看 | 亚洲婷婷网 | 性www | 男ji大巴进入女人的视频 | 中国18videosex极品 | www.奇米.com| 国产1区2区3区中文字幕 | 蜜桃av在线免费观看 | 91精品亚洲 | 亚洲激情网址 | 激情小说专区 | 日韩欧美一区二区三区在线观看 | 天堂网男人 | 久久久久亚洲av成人网人人软件 | 污的网站 | 国产激情免费 | 男生看的污网站 | 狠狠五月婷婷 | 手机天堂网 | 女人脱下裤子让男人桶 | 无码国产精品一区二区色情男同 | 日本免费色| 国产一级片网站 | 麻豆久久精品 | 日本性xxxxx| 久久精品不卡 | 亚洲最黄网站 | 亚洲成在线观看 | 日韩综合av| 久久久91精品 | 综合精品在线 | 国产精品sm| 手机在线中文字幕 | 俺也去av| 麻豆回家视频区一区二 | 欧美操老女人 | eeuss一区| 91九色pron | 日日操夜夜爽 | 五月婷在线观看 | 国产av无码专区亚洲av毛网站 | 中日韩在线视频 | 欧美成人国产 | 精品国产中文字幕 | 波多野结衣一本一道 | 国产传媒专区 | 欧美日韩亚洲国产综合 | 在线日韩一区 | 天美乌鸦星空mv | 亚洲黄色片在线观看 | 亚洲中文字幕一区 | 一级看片 | 538在线精品 | 精品免费国产 | 最近2019中文字幕大全第二页 | 国产精选视频在线观看 | 一级性毛片 | 蜜桃成人在线视频 | 147人体做爰大胆图片成人 | 国产精品免费一区 | av中文字幕第一页 | 开心激情综合 | 免费爱爱视频 | 台湾极品xxx少妇 | 欲涩漫入口免费网站 | 毛片av在线 | 黄色片aaaa | 国产乱强伦一区二区三区 | 五月婷婷久久综合 | 天天综合在线观看 | 碰碰色 | 欧美一级片免费观看 | 日韩久久在线 | 国产成人一区二区三区免费看 | 骚虎免费视频 | 日韩一区二| 国产精品成人va在线观看 | 欧美性猛交 | 午夜视频 | 国产裸体美女永久免费无遮挡 | 91精品久久久久久久久久 | 爱爱免费视频网站 | 亚洲欧美自偷自拍 | 99成人| 久久久久久9 | 色呦呦一区二区三区 | 在线免费观看麻豆 | 日韩在线看片 | 精品深夜av无码一区二区老年 | 成年人午夜视频 | 五月婷婷综合在线 | 欧美黄色一级生活片 | 久久久激情视频 | 日本国产在线 | 精品国产一区二区三区四区精华 | 亚洲精品一级片 | 欧美福利网站 | 国产91看片 | 波多野结衣大片 | 一级做a爱片久久 | 一吻定情2013日剧 | 午夜激情综合网 | 欧美日韩亚洲激情 | 最新中文字幕在线观看视频 | 欧美日韩999 | 日韩性生活大片 | 日韩中文字幕在线视频 | 日日射视频 | 最新激情网站 | 亚洲AV无码片久久精品 | 亚洲福利一区二区 | 国产精品免费一区二区三区在线观看 | 免费在线观看国产精品 | 99热网| 99资源在线 | 亚洲综合a | 中文字幕一区二区三区四区五区 | 欧美视频网址 | 日韩黄色网络 | 成人激情自拍 | 日日日干| 久久久无码一区二区三区 | 在线观看的网站 | 久久妇女| 精品无码久久久久久久久 | 成人三级图片 | 麻豆午夜 | 超碰在线99 | 狠狠干男人的天堂 | 一区二区三区在线观看免费 | 香蕉视频网页版 | 国产一级特黄视频 | 97福利影院 | 97久久久久久 | 国精产品99永久一区一区 | 午夜黄色影院 | 3d成人动漫在线观看 | 黄色一级片免费看 | 国产又黄又粗 | 国产麻豆乱码精品一区二区三区 | 精品无码三级在线观看视频 | 日本不卡在线观看 | 欧美亚洲综合网 | 国产乱子伦精品无码码专区 | 一区二区视频在线免费观看 | 老女人网站 | 人妻巨大乳一二三区 | 日本色网址 | 99热1| 韩国毛片视频 | 黄色免费播放 | 日韩在线不卡一区 | 手机成人免费视频 | 6080电视影片在线观看 | 青青视频在线免费观看 | 你懂的在线播放 | 中文字幕一区二区三区人妻不卡 | 亚洲熟女乱色综合亚洲小说 | 超碰五月天 | 337p日本欧洲亚洲大胆精筑 | 日韩一区不卡 | 密臀av | av色综合 | 波兰性xxxxx极品hd | 国产精品久久久久久三级 | 成人免费毛片免费 | 国产伦精品一区二区三区免费视频 | 欧美日韩精 | 欧美在线免费视频 | 欧美操穴 | 欧美伦理在线观看 | 久久精品国产亚洲av无码娇色 | 亚洲精品一线 | 亚洲黄色a | 日韩在线观看视频免费 | 日本在线观看一区二区三区 | 亚洲综合精品在线 | 手机天堂网 | 日日爱夜夜爱 | 96亚洲精品久久久蜜桃 | 8090理论片午夜理伦片 | 色老大影院 | 亚洲视频中文字幕 | 黄色国产网站 | 欧美日本在线播放 | avtt久久 | 少妇视频网站 | 成人理论片 | 夫妻毛片 | 五月婷婷久久久 | 91插视频| 免费观看在线观看 | 日韩最新av | 超碰超碰97 | www.国产麻豆 | √资源天堂中文在线 | 韩国成人理伦片免费播放 | 一本久久综合 | 亚洲一区二区三区四区av | 天天干天天弄 | 久久久久久国产精品日本 | 国产精品久久久久久久一区二区 | 久久免费影院 | 日韩aaa| 专干老肥女人88av | 91夫妻视频| av涩涩| 欧美高清性xxxxhd | 成人羞羞国产免费游戏 | 中文字幕视频免费观看 | 在线视频1卡二卡三卡 | 欧美激情久久久 | 精品无码人妻一区二区三 | 毛片视频网| 亚洲成人黄色影院 | 清冷男神被c的合不拢腿男男 | 久久久久夜 | 国产香蕉网 | 丰满人妻一区二区三区免费 | 丁香综合网 | 三级理伦 | 国产精品日韩在线 | 富婆如狼似虎找黑人老外 | 中文字幕国产视频 | ass极品国模人体欣赏 | 操女人视频网站 | 青娱网电信一区电信二区电信三区 | 成人做爰www看视频软件 | 成人免费黄色小视频 | 久久中出 | 亚洲高清免费观看 | 中文字幕精品视频在线 | 亚洲欧洲国产精品 | 老牛影视av一区二区在线观看 | 无人在线观看高清视频 | 欧美黑人一区二区三区 | 内地级a艳片高清免费播放 免费午夜激情 | 久久性av| 国产精品久久免费 | 亚洲视频网 | 国产毛片毛片毛片 | 国产精品第100页 | 国产精品伦子伦免费视频 | 久久精品视频2 | 在线观看成年人视频 | 日韩二区在线 | www.白虎| 亚洲av中文无码乱人伦在线观看 | 女人脱下裤子让男人捅 | 国产第20页 | 日本bbwbbw| 国产在线一区二区三区 | 欧美拍拍 | 朝桐光一区二区三区 | 潘甜甜在线 | 怡红院成人网 | 丝袜视频在线 | 欧美一区国产一区 | 国产美女在线免费观看 | 精品国产99久久久久久宅男i | 欧美性受xxxx黑人xyx性 | 色网视频| 国产无套内射又大又猛又粗又爽 | av免费不卡 | 激情网站免费 | 神马香蕉久久 | 日韩无码精品一区二区 | 国产精品9999 | av中文天堂在线 | 伊人99在线| 五月天久久久久 | 国产精品一区二区网站 | 精品久久久久久久久久久久久久久久久 | 激情偷乱人成视频在线观看 | 人妻一区二区三区免费 | 在线观看一区二区视频 | 7777av | 骚婷婷| www.在线观看视频 | 国产欧美精品一区 | 偷拍第一页 | 国产乱淫av一区二区三区 | www.天堂av| 国产无遮挡a片又黄又爽 | 久热这里只有 | 牲欲强的熟妇农村老妇女视频 | 男裸体无遮挡网站 | 亚洲av无码一区二区三区网站 | 国产精品一级黄片 | 欧美日韩中文字幕一区二区三区 | 51吃瓜网今日 | 亚洲av无码一区二区二三区软件 | 欧美激情一区二区三区 | 老妇高潮潮喷到猛进猛出 | 无码人妻丰满熟妇啪啪欧美 | 亚洲人xxxx| 97精品久久人人爽人人爽 | 国产精品视频在 | 性欧美18一19内谢 | 亚洲美女免费视频 | 美女综合网 | 日日日视频 | 亚洲综合在线视频 | 国产欧美另类 | 国产男女猛烈无遮挡a片漫画 | 日韩中文字幕在线观看视频 | 精品一区二区三区蜜桃 | 国产成人精品一区二区三区网站观看 | 美女吞精视频 | 亚洲欧美综合在线观看 | 黄色av免费观看 | 一区二区不卡 | 国产日韩欧美成人 | 免费黄色大片网站 | 亚洲一区精品在线观看 | 日本黄色网络 | 国产综合视频 | 中文字幕无线精品亚洲乱码一区 | 韩国一区二区在线观看 | 性高潮网站 | 国产三区在线成人av | 成人合集| 亚洲一级在线观看 | 国产欧美一区二区精品性色 | 在线观看网页视频 | 久久99视频 | 久久超 | 国模丫头1000人体 | 色吧av色av| 日韩在线小视频 | 欧美 日韩 国产 成人 在线 | 黄色欧美大片 | 图片区 小说区 区 亚洲五月 | 天堂成人在线观看 | 黄色小说在线免费观看 | 91久久久久国产一区二区 | 国产原创视频在线观看 | 亚洲精品视频一区 | 国产精品乱码一区二区 | 成人国产精品一区二区 | 在线午夜 | 高清亚洲| 可以看的av网站 | 激情国产视频 | 看全色黄大色黄大片女一次牛 | 国产精品久久久免费视频 | 久热这里只有精品6 | 国产又粗又大又长 | 尤物91| 网站av在线 | 国产91一区 | 免费人成视频在线播放 | 国产精品500部 | 国产视频999| 制服一区| 26uuu国产 | av网站免费在线看 | 九九在线观看视频 | 日韩一级一级 | 好吊操这里有精品 | 九九热re| 99国内精品 | 天天精品综合 | 99久久亚洲精品日本无码 | 午夜天堂在线 | 内射毛片内射国产夫妻 | 亚洲国产网址 | 天天干狠狠操 | 美女的奶胸大爽爽大片 | 午夜免费成人 | 国产在线网 | 一区二区三区伦理 | 日批视频| 日韩av女优在线观看 | 国产又粗又猛又爽又黄的视频一 | 日韩视频国产 | 国模吧一区二区三区 | 在线亚洲观看 | 1024久久 | 久久久久无码精品 | 看全色黄大色黄大片大学生 | 在线观看国产免费视频 | 久久久影视 | 天堂中文在线资 | 高清av一区二区 | 影音先锋在线中文字幕 | 久久精品国产亚洲AV无码麻豆 | 久久综合导航 | 日韩伊人网 | 国产a国产片 | 变态视屏 | 亚洲天堂成人av | 操欧美女人 | 亚洲无av在线中文字幕 | 亚洲少妇30p | 国产精品剧情av | 日韩欧美一区二区一幕 | 成人手机在线观看 | 18做爰免费视频网站 | www中文字幕在线观看 | 亚洲裸体网站 | 欧美日韩在线免费 | 欧美爱爱小视频 | 性色在线 | 中文字幕人妻丝袜乱一区三区 | se欧美 | 中文字幕在线播放av | 99福利| 欧美日韩国产精品一区 | 成年人福利 | 最新高清无码专区 | 色吊丝av中文字幕 | av导航在线观看 | 黑人干亚洲女人 | 无码人妻一区二区三区线 | 亚洲毛片一区二区三区 | 少妇免费看 | 日韩一三区 | 操比网站 | 黄色同人网站 | 国产91精品在线观看 | 亚洲最大在线视频 | 中文字幕av久久爽 | 国产成人看片 | 欧美一区二区影院 | av第一页 | 狠狠撸视频| 一级特级毛片 | 在线免费观看日韩视频 | 国产精品无码一区二区三区三 | av网站地址 | 麻豆免费在线观看视频 | 国产一级二级三级在线观看 | 久久高清国产 | 国产日韩一级片 | 亚洲自拍小视频 | 精品国产九九 | 在线观看的网站 | 成人免费网站www网站高清 | 人妻无码久久一区二区三区免费 | 天天干狠狠干 | 欧美资源站 | 探花精品| 亚洲色图吧 | 欧亚一区二区 | 在线视频免费播放 | 成人综合社区 | www.99热| 日本丰满bbwbbw厨房 | 日韩视频二区 | 久久这里只有精品99 | 国产精品毛片久久久久久久av | 夜夜摸夜夜爽 | 在线二区 | 色老头一区二区 | www.国产三级 | 日本人の夫妇交换 | 久久久久五月天 | 欧美三日本三级少妇三99 | 黄色日b片 | 日韩av手机在线 | 国产人人爽| 公交上高潮的丁芷晴 | 一级a毛片免费观看久久精品 | 免费看裸体视频网站 | 毛片无遮挡| www狠狠 | 九九激情视频 | 黄色av网| 黄色在线视频观看 | 美女草逼视频 | 91av福利| 精品国产一区二区在线 | 欧美日韩国产电影 | 日本xxxx色 | 超碰999| www.日韩在线观看 | 久久久久久亚洲精品 | 大尺度在线观看 | 日韩欧美精品在线观看 | 图片区亚洲 | 国产激情一区二区三区 | 337p日本大胆噜噜噜噜 | av短片| 嫩草私人影院 | 中文字幕亚洲欧美日韩高清 | 黄色天天影视 | 亚洲午夜免费视频 | 亚洲欧美另类视频 | 日本精品一区 | 美女被爆操网站 | 天天插综合 | 你懂的亚洲| 亚洲精品喷潮一区二区三区 | 99色播 | 欧美最猛黑人xxxx黑人猛交 | 韩国伦理片免费看 | 国产精品美女久久久久av爽 | 日韩精品视频在线观看免费 | 不良视频在线观看 | 日韩欧美毛片 | 波多野结衣之双调教hd | 日本午夜精品理论片a级app发布 | www.欧美| 三级电影网址 | 在线亚洲人成电影网站色www | 色诱av手机版 | 国产123在线 | 天堂在线资源网 | 中国免费一级片 | 大度亲吻原声视频在线观看 | av国语 | 国产免费看 | 香蕉伊思人视频 | www.狠狠插 | 欧美 日韩 国产 成人 在线 | 欧美日韩中文字幕 | 销魂奶水汁系列小说 | 日韩aa| 中文字幕在线免费播放 | 麻豆一区二区三区在线观看 | 亚洲av片一区二区三区 | 国产一区999 | 波多野结衣91| 中文字幕 日韩有码 | 国产精品jizz| 国产婷婷色一区二区在线观看 | 五月婷婷久久综合 | 国产尤物在线视频 | 麻豆视频网站入口 | 超污网站在线观看 | 欧美特黄一级大片 | 免费激情网址 | 国产毛片久久久久久久 | 九色视频在线观看 | 日韩黄色一级 | 人妻无码久久一区二区三区免费 | 久久综合精品视频 | 久久国产精品二区 | 日韩一本在线 | 欧美激情视频一区二区三区在线播放 | 亚洲天堂国产 | 久久久久久久中文字幕 | 色999在线| 天天射美女 | 视频一区二区三区四区五区 | 日韩性欧美 | 亚洲精品www久久久久久 | 欧美激情在线看 | 国产手机在线播放 | 在线看片成人 | 成人免费观看在线视频 | 91网站在线看 | 成人网站免费观看 | 久久在草| www.色人阁 | jizz精品| 免费看黄网址 | 欧日韩不卡在线视频 | 美女张开腿让人桶 | 久操资源网 | 亚洲少妇18p | 日本青青草视频 | 国产一区二区在线不卡 | 黄色a大片 | 日本一级免费视频 | 久久丫精品 | 波多野结衣家庭主妇 | 东京热一区二区三区四区 | 免费黄色观看 | 婷婷在线视频观看 | 影音先锋在线看片资源 | 有机z中国电影免费观看 | 2018天天弄 | 日本sm调教—视频|vk | 狠狠人妻久久久久久综合 | 亚洲经典一区二区三区四区 | 色牛影院 | 成全影视在线观看第8季 | 久久露脸国语精品国产91 | 亚洲免费成人av | 激情久久视频 | 久久黄色小说 | 成人在线免费播放 | 99精品人妻无码专区在线视频区 | 老女人丨91丨九色 | 免费看黄色av | 日本高清www免费视频 | 91成人在线观看喷潮蘑菇 | 999久久久久久 | 伊人网在线视频观看 | 你懂的网站在线观看 | 九九视频在线免费观看 | 艳妇臀荡乳欲伦交换在线播放 | 青草综合| 明日花绮罗高潮无打码 | 综合网色 | 日本三级456| 97人人超| 久久久91精品国产一区二区三区 | 久久久久久久一区二区三区 | 五月网 | 奶妈的诱惑 | 色播在线视频 | 国产v片| 就去色av | 性视频播放免费视频 | h视频免费在线观看 | 亚洲免费视频观看 | 四虎网址大全 | 野花视频免费在线观看 | 国产在线观看不卡 | 手机在线免费视频 | 国产a网| 国产顶级毛片 | 你懂的国产在线 | 先锋影音av在线资源 | 天天操天天操天天操 | 精品国产www | 国产午夜精品在线观看 | av福利在线观看 | 91性生活| 1级黄色大片儿 | 在线播放国产视频 | 欧美在线看片 | av动漫在线免费观看 | 国产天堂精品 | 亚洲激情成人网 | 天天射综合网站 | 日本不卡一区二区三区视频 | 亚洲三区在线 | 日本91在线 | 久久99久久99精品免观看粉嫩 | 中文字幕第18页 | 美女精品在线 | 成人精品网址 | 国产精品国产三级国产aⅴ原创 | 亚洲国产精品尤物yw在线观看 | 高清不卡毛片 | 91人妻一区二区三区蜜臀 | 涩涩视频在线观看 | 国产做受高潮动漫 | 国产精品自拍小视频 | 无码人妻丰满熟妇啪啪网站 | 日本人妻一区 | 日日骚网| 少妇三级| 97精品久久久 | se在线观看 | 蜜臀av免费在线观看 | 欧美影院 | 成人黄色一级 | 亚洲色图 欧美 | 久草福利资源 | 最新日韩av | 天海翼视频在线观看 | 久草视频首页 | 日本一区二区视频在线 | 嫩草视频 | 久中文字幕| 天天射,天天干 | 国产精品久久av | 日韩欧美日韩 | 成年人福利视频 | 911色| 国产丝袜一区二区三区 | 奇米一区二区 | 色婷综合| 中文字幕在线观看第二页 | 国产精品入口 | 波多野结衣电影在线播放 | 36d大奶| 成人免费视频国产 | 中文字幕精品视频在线 | 天天躁日日躁狠狠很躁 | 樱花视频在线观看 | 欧美激情伊人 | 综合亚洲色图 | 亚洲综合精品视频 | 日韩18p| 欧美理论在线观看 | 亚洲观看黄色网 | 春闺艳妇(h)高h产乳 | 亚洲精品一区二区18漫画 | 男女视频网站 | 亚洲图片一区 | 国产suv精品一区二区69 | 麻豆精品国产精华精华液好用吗 | 免费av影视 | 嫩草研究院在线观看 | 欧美国产不卡 | 久久丫精品 | 成人短视频在线观看 | 日本在线 | 99热这里只有精品5 久久婷婷六月 | 欧美日韩国产成人在线 | 美女亚洲一区 | 日韩av导航 | 九色视频偷拍少妇的秘密 | 天天干夜夜拍 | 免费看女生裸体视频 | 日本一级一片免费视频 | 色婷视频 | 亚洲专区av | 欧美视频第一页 | 欧美一级淫片aaaaaa | 国产在线高清视频 | 337p粉嫩色噜噜噜大肥臀 | 中文字幕在线观看1 | 亚洲国产一区二区a毛片 | 免费av网址在线观看 | 久久色婷婷 | 男人的天堂中文字幕 | 天天爽天天做 | 伊人国产女 | 美女精品 | 亚洲专区欧美专区 | a视频免费| 黄色片xxxx | 中年夫妇啪啪高潮 | 欧美激情在线观看视频 | 亚色视频| 国产网址| 黄色片上床 | 牛牛在线视频 | 用力抵着尿进去了h | 6996电视影片免费看 | 日韩美女中文字幕 | 九九啪 | 毛片网站免费观看 | 在线一区二区三区四区 | 国产女人高潮毛片 | 成人午夜视频网站 | 色亚洲色图 | 亚洲成人精品 | 嫩草天堂 | 国产精品乱码一区二区 | 极品色影视| h视频国产| 色男人的天堂 | 丝袜制服一区 | 亚洲精品久久久蜜桃 | 亚洲欧美日韩国产精品 | 少妇又紧又色又爽又刺激视频 | 亚洲女人天堂成人av在线 | 亚洲一区二区三区加勒比 | 日本久久久久久 | 成人欧美精品一区二区 | 麻豆网站在线免费观看 | 大吊一区二区三区 | 涩涩视频网站在线观看 | 国产精品一区在线播放 | 国产乱仑视频 | 一级国产精品 | 欧美自拍偷拍一区二区 | 一色综合 | 免费的一级片 | 久久国产精品电影 | 国产片一区二区 | 狼人综合网 | 国产又粗又猛又爽又黄91 | 一女三黑人理论片在线 | 91刺激视频 | 国产成人无码一二三区视频 | 人妖粗暴刺激videos呻吟 | 小镇姑娘高清播放视频 | 中文字幕av亚洲精品一部二部 | 日本熟妇色xxxxx日本免费看 | 日韩三级在线播放 | 亚洲黄色在线免费观看 | 国产精品18久久久久久久久 | 欧美一二三 | 中文不卡在线 | 国产孕妇一区二区三区 | 夜夜嗨av禁果av粉嫩avhd | 性一交一乱一乱一视频 | 性视屏 | 黄色免费视屏 | 国产成人精品一区二区在线小狼 | 五月天激情影院 | 日韩精品一区二区三区视频在线观看 | 综合一区在线 | 日韩逼 | www,jizz,com| 久久久久久久穴 | 午夜激情免费视频 | 成人99| 欧美黄色aaa | 色视屏 | 四虎中文字幕 | 少妇精品久久久一区二区三区 | 成片在线观看 | 就爱av | 99久久国产热无码精品免费 | 亚洲国产成人一区二区 | 偷拍老头老太高潮抽搐 | 成人看片黄a免费看视频 | 国内精品久久久久久久影视简单 | 日韩av影片在线观看 | 国产美女一区二区三区 | 欧美日韩国产免费 | www黄色在线观看 | 97精品人人妻人人 | 欧美另类视频在线观看 | 无码人妻精品一区二区三区99不卡 | 加勒比综合在线 | 我我色综合| 波多野结衣久久精品 | 91午夜理伦私人影院 | 伊人春色网 | 男人天堂2019 | 岳乳丰满一区二区三区 | 9999re | free黑人多人性派对hd | 高清久久 | 欧美一区三区 | 久热国产视频 | 亚州欧美 | 成人区精品一区二区婷婷 | 97超碰免费| 天天干天天舔天天操 | 国产视频中文字幕 | 日本高清黄色电影 | 足疗店女技师按摩毛片 | 内射无码专区久久亚洲 | 亚洲精品一区二三区不卡 | 国产一区二区三区高清 | 久精品在线| 精品乱码一区二区三区 | 日本ww色| 毛片网在线观看 | 91高清在线视频 | 肉肉h | 亚洲国产精品久久精品怡红院 | 另类av小说| 特黄色大片 | 国产精品一区二区入口九绯色 | 六月婷婷七月丁香 | 日韩精品极品视频 | 在线观看av网站 | 人人干人人澡 | 久久久久久久久成人 | 亚洲精品在线视频免费观看 | 久久综合免费视频 | 日韩黄色免费电影 | 亚洲成人免费在线视频 | 91色在线视频 | 黄色的网站在线观看 | 色综合加勒比 | 最新av在线播放 | 亚洲每日更新 | 欧美国产三级 | 精品国模一区二区三区 | 国产免费aa | 欧美成人精品 | 美女又黄又爽 | 久久久香蕉视频 | 一级 黄 色 片69 | 亚洲12p| 天天综合天天 | 91精品国自产在线观看 | 手机看片欧美 | 激情五月亚洲 | 天天干天天操天天操 | 久久精品国产成人av | 秋霞在线视频观看 | 久久无码专区国产精品s | 一区二区乱子伦在线播放 | 老司机午夜视频 | 天天干,天天操 | 国产精品视频一 | 中文字幕在线观看播放 | 又色又爽又黄无遮挡的免费视频 | 国产做爰视频免费播放 | 欧美自拍视频 | 国产精品久久久久久久久久妞妞 | 久久国产精品波多野结衣 | 精品国产乱码一区二区 | 国产呦小j女精品视频 | 99久久久精品免费观看国产 | 天天爽天天操 | 日本一级片在线播放 | 国产99热| 久热这里只有 | 国产丰满大乳奶水在线视频 | 日韩av在线看 | 福利视频一区二区 | 多毛的亚洲人毛茸茸 | 亚州成人| 国产伦精品一区二区三区免费 | 性猛交ⅹxxx富婆video | 超碰激情在线 | 中文字幕亚洲欧美日韩在线不卡 | 豆花在线观看 | 国产美女精品一区二区三区 | a网站在线观看 | 三上悠亚在线一区 | av黄色小说 | 狠狠的色 | 一级视频在线观看 | 国产精品乱码一区二三区小蝌蚪 | 久久精品视频在线免费观看 | 日韩深夜福利 | 深夜福利免费视频 | 在线黄网 | 亚洲码无人客一区二区三区 | 国产亚洲精品久久久久动 | av影视在线 | 国内免费精品视频 | 奇米影视888| 情欲超 | 又粗又大又硬又长又爽 | 超碰一区 | 免费毛片一区二区三区久久久 | 免费黄色在线网址 | 色先锋av| 国产一区二区三区四区 | 国产99久久久久 | 狼色网| 国产欧美在线 | 影音先锋一区 | 中文字幕成人 | 特种兵之深入敌后 | 那里可以看毛片 | 亚洲一区在线视频观看 | 视色网| www.com黄色 | 澳门久久久 | 精品国产乱码久久久久夜深人妻 | 婷婷视频 | 国产激情影院 | av一区在线播放 | 日韩一区欧美 | 福利视频91 | 午夜福利理论片在线观看 | 伊人久久大香线蕉综合网站 | 欧美另类专区 | 人人草网站 | 久久久久国产一区二区三区潘金莲 | 尹人av| 无码无套少妇毛多18pxxxx | 999国产精品视频 | 强迫凌虐淫辱の牝奴在线观看 | 亚洲精品国产电影 | 亚洲精品一区二区三区区别 | 99在线视频播放 | 亚洲操 | 爱射网| 日韩美女毛片 | 伊人毛片 | 成人在线免费 | 三上悠亚在线一区 | 日日干狠狠干 | 成人三级图片 | 日韩视频一区二区三区在线播放免费观看 | 97久久精品人人澡人人爽 | 国产在线精品一区二区 | 亚洲欧美日韩在线 | 人人看人人澡 | 538国产精品一区二区 | 又黄又爽的免费视频 | 欧美成人aaa片一区国产精品 | 美女三区 | 国产精品人成 | 黄网视频在线观看 | 美女插插 | 中文字幕不卡在线观看 | 午夜激情综合网 | 久久夜色精品国产欧美乱 | 亚洲av鲁丝一区二区三区 | 国产综合精品在线 | 中文在线免费看视频 | 欧美一级淫片免费视频黄 | 玖玖在线免费视频 | 亚洲精品男人天堂 | 老司机午夜免费福利 | www亚洲精品| 国精产品一区二区三区 | 国产视频一区二区三区四区 | 黄页av| 中文字幕第3页 | 草的我好爽| 青草视频网 | 天天射寡妇 | 就是喜欢被他干 | 特级a级片 | 五月天综合在线 | 琪琪成人 | 成人小视频在线免费观看 | 一区二区视频在线观看 | 免费无码又爽又黄又刺激网站 | 国产一区二区在线观看免费 | 日韩黄色在线视频 | 午夜寂寞少妇 | 五月天丁香久久 | av男人的天堂在线观看 | 精品亚洲国产成人av制服丝袜 | 波多野结衣视频免费观看 | 日本一区二区三区视频免费看 | 一区二区三区在线 | 中日韩男男gay无套 av天堂一区 | 黄色一极毛片 | 免费激情av | 国产一区二区久久 | 毛茸茸亚洲孕妇孕交片 | 午夜插插 | 久操久| 久久精品这里只有精品 | 无码人妻丰满熟妇区96 | 日本一区二区在线免费观看 | 韩国一区二区三区视频 | 精品人妻无码一区二区性色 | 情侣自拍av| 国产精品久久久久久久无码 | 中文在线观看视频 | 国产又粗又长又黄视频 | 91亚洲成人 | 久久久久久免费视频 | 五月婷婷激情在线 | 久久精品国产亚洲AV熟女 | 天天透天天干 | 国产一区二区观看 | 国产精品视频一 | 麻豆传媒在线观看 | 天堂中文在线资源 | 少妇高潮一区二区三区 | 国产在线观 | 日本在线视频观看 | 成人高清在线 | 国产日韩精品一区二区三区 | 在线观看av大片 | 日韩av大全 | 二区三区视频 | 高潮网| 蜜桃网站 | 精品国产aⅴ麻豆 | 欧美色频| 国产成人麻豆免费观看 | 成人日b视频 | 在线黄视频 | 日韩黄色一级 | 97中文字幕在线观看 | 91丨porny| 青青艹av| 老牛影视av一区二区在线观看 | 天天插天天干天天操 | 稀缺呦国内精品呦 | 一本一道波多野结衣一区二区 | 少妇一级淫片免费视频 | 免费成人福利视频 | 香蕉av一区二区三区 | 五月天中文字幕mv在线 | 三级av网站 | 婷婷色在线视频 | 毛片黄色片 | 亚洲色图27p| v片在线免费观看 | 四虎网址在线观看 | 欧美一二三区视频 | 92国产精品 | 人人草人人 | 日韩一区二区三区视频在线观看 | 奶波霸巨乳一二三区乳 | 黄色高清在线观看 | 午夜欧美在线 | 欧美精品小视频 | 91丝袜美腿| 日韩经典在线 | 国产美女一区二区三区 | 久草手机在线观看 | 国产婷婷色 | 欧美第十页 | 国产精品99无码一区二区 | 成人免费在线视频观看 | 91在线视频免费观看 | 国产亚洲精品久久久久动 | 国产伦精品一区二区三区免费 | 秘密的基地 | 国产三级精品视频 | 成人精品一区二区三区 | 超碰免费av | 无码人妻aⅴ一区二区三区69岛 | 亚洲影院av | 国产交换配乱淫视频免费 | 懂色av一区二区三区免费 | 91五月天| 精品人妻一区二区三区潮喷在线 | 成年人网站免费在线观看 | 国产精品高潮呻吟久久av野狼 | 欧美性色视频 | 国产jjizz一区二区三区视频 | ,午夜性刺激免费看视频 | www.av欧美 | 一区成人 | 亚洲欧美综合另类 | 日本黄色三级 | 午夜精品无码一区二区三区 | 依人99| 国产在成人精品线拍偷自揄拍 | 国产乱论 | 99re久久| 中文字幕.com | 国产伦精品一区二区三区四区 | 欧美色图亚洲自拍 | 婷婷激情视频 | 强开小受嫩苞第一次免费视频 | 在线免费观看你懂的 | 免费成人在线视频观看 | 欧美人体视频 | 成人午夜精品一区二区三区 | 国产伦精品一区二区三区四区视频 | 91捆绑91紧缚调教91 | 人人干天天操 | 韩国福利一区 | 浴室里强摁做开腿呻吟男男 | 中文字幕+乱码+中文乱码www | 成人av一区二区三区 | 久久99精品国产麻豆91樱花 | 国产做爰全免费的视频软件 | 黄色aaa视频 | 黄色片子看看 | 精品视频国产 | 亚洲黄色自拍 | 国产精品日日摸夜夜爽 | 涩涩涩在线观看 | 国产97在线视频 | 五月婷婷激情网 | 三上悠亚久久精品 | 黄页视频在线免费观看 | 黄色片网站免费观看 | 又黄又色的网站 | 中文字幕在线播放av | 久久免费精彩视频 | 亚洲黄色免费视频 | 欧美高清视频 | 国产黄色91 | 国内激情| 在线免费看黄网站 | 性爱视频在线免费 | 日韩激情图片 | 国产欧美精品在线 | 艳妇乳肉亭妇荡乳av | 国产乱国产乱 | 最近中文字幕在线 | 久久久久久网 | 熟妇高潮喷沈阳45熟妇高潮喷 | 日本天天操 | 用力抵着尿进去了h | 涩五月婷婷 | 97人人超| 日韩三级免费看 | 性色av浪潮av | 91无限观看 | 国产精品爽 | 久久久久国产精品午夜一区 | 黄色免费在线网站 | 真人毛片97级无遮挡精品 | 国产一级久久久久毛片精品 | 国产一区视频在线播放 | 91久久综合亚洲鲁鲁五月天 | 少妇av片| 四虎影院在线看 | 四虎视频国产精品免费 | 性开放淫合集 | 中文字幕在线观看二区 | 天天草夜夜 | 日韩中文字幕视频在线观看 | 人妻精品久久久久中文字幕69 | 国产黄av| 海角社区在线视频播放观看 | 99国内精品 | 久久中文在线 | 男女互操视频 | 在线你懂的| 欧美色图一区二区三区 | 日本欧美久久久 | 国产碰碰| 国产亚洲二区 | 精品久久久久久久久久久久久久久 | 欧美日韩精品在线播放 | 大肉大捧一进一出好爽视频 | 久久国产精品精品国产色婷婷 | 国产超碰97 | 国产精品一区二区免费看 | 色哟哟网站在线观看 | 各处沟厕大尺度偷拍女厕嘘嘘 | 国产精品人人做人人爽人人添 | www.亚洲色图.com | 日本人做受免费视频 | 天天草天天爽 | av香蕉 | www.久久国产 | 性欧美巨大 | 黄色三级国产 | 国产精品欧美综合亚洲 | 中文字幕精品无码亚 | 少妇视频在线播放 | 毛片看看 | 欧美射| 中文在线字幕免费观看 | 激情高潮呻吟抽搐喷水 | 国产成人精品无码片区在线 | 性高跟丝袜xxxxhd | 中文字幕人妻一区二区 | 国产女主播一区二区三区 | av影视网 | 国产第一页在线观看 | 老子影院午夜伦不卡大全 | 女同爱爱视频 | 欧美日韩在线视频一区二区 | 亚洲免费观看高清在线观看 | 亚洲国产精品久久人人爱 | 国产一级做a爱片久久毛片a | 国产精品一区二区视频 | 成人小视频在线观看 | 国产成人a亚洲精品 | 天堂中文在线免费观看 | 97成人人妻一区二区三区 | 在线观看福利片 | 欧美黄色三级视频 | 波多野结衣视频观看 | 天天干天天草天天射 | 热玖玖 | 让人下面流水的视频 | 在线亚洲+欧美+日本专区 | 少女与动物高清版在线观看 | 97综合网| 欧美资源 | 成人短视频在线 | 欧美激情综合网 | 欧美三级电影在线观看 | 9色av| 免费黄色观看 | 久久99久久久 | 成人在线免费视频观看 | 干骚视频 | 国产xx视频 | 日韩视频一区在线观看 | wwwxxx日韩 | 影音先锋国产在线 | 日本美女影院 | 亚拍一区 | 韩国中文字幕在线观看 | 精品一区电影 | 香蕉成人在线视频 | 特级毛片在线播放 | 成人在线观看一区 | 99久久精品免费视频 | 亚洲女同一区二区 | yy6080午夜| 天堂8在线 | av网站地址 | 撸撸在线视频 | 欧美怡红院 | 福利精品 | 国产成人精品一区二区三区在线 | 警察高h荡肉呻吟男男 | 哺乳期给上司喂奶hd | 亚洲一区中文字幕在线观看 | 国产三级网 | 日韩午夜激情视频 | 一区二区在线免费观看 | 中国美女一级片 | 成年男女免费视频网站 | 俄罗斯av片 | 亚洲一区二区在线看 | 小镇姑娘高清播放视频 | 国产福利片在线观看 | 国产人与禽zoz0性伦 | 9999精品视频 | 91超薄肉色丝袜交足高跟凉鞋 | 91成人看片 | 欧美特级视频 | 一二三区在线视频 | 中文字幕一区二区三区在线视频 | 中文字幕电影av | 超碰超碰超碰超碰超碰 | 国产成人精品免费 | www.com日本 | 日韩美女视频在线观看 | 亚洲伦理一区 | 中文字幕中出 | 久久久美女 | 99精品福利 | 多啪啪免费视频 | 看全色黄大色黄大片女一次牛 | 中文字幕在线成人 | 97视频在线免费观看 | 午夜aa| 日韩电影一区二区在线观看 | av黄色免费观看 | 欧美精品一线 | 你懂的网址在线 | 99精品一区 | 中文字幕视频免费观看 | 日一日干一干 | 在线观看日韩一区 | 色综合激情 | 国产欧美精品一区二区色综合朱莉 | 777午夜| 夜夜爱av| 欧美一级成人 | 岛国av一区二区 | 性欧美18一19内谢 | 亚洲国产中文字幕在线 | 麻豆免费视频网站 | 日韩精品视频免费在线观看 | 欧美三级网站 | 视频丨9l丨白浆 | 国产精品久久久久久亚洲色 | 亚洲国产精品电影 | 裸体喂奶一级裸片 | 男人的天堂va | 一区www | 亚洲女人久久久 | 欧美啊v | 久久久www成人免费精品 | 国产精品一区二区在线播放 | 日韩一区在线观看视频 | 雷电将军和丘丘人繁衍后代视频 | 中文字幕三级 | 久久免费播放视频 | 日本女优在线看 | 免费一级黄色大片 | 精品人妻一区二区三区免费 | 久久久精品人妻一区二区三区四 | 日韩午夜 | 老女人做爰全过程免费的视频 | 亚洲小说区图片区都市 | 91视频看片 | 毛片毛片女人毛片毛片 | 欧美黄色a级 | 欧美日韩在线观看一区二区 | 成人免费在线网站 | 免费看黄色片视频 | 超碰在线网址 | 久久久成人av | 自拍视频一区二区 | 丰满人妻一区二区三区四区53 | 天堂中文在线视频 | 97看片网| 97久久精品| 另类小说五月天 | 亚洲激情视频 | 中文字幕3| 可以直接观看的av | 好吊色在线观看 | 日韩欧美麻豆 | 欧美v亚洲 | 亚洲欧美校园春色 | 国产精品理论在线观看 | 天天色天天色 | 国产又粗又黄的视频 | 超碰个人在线 | 亚洲天堂成人在线 | 白丝一区 | 美女被到爽高潮视频 | 日韩在线欧美 | 一级黄色av片| 色资源网站 | 天堂av8| 在线看污片 | 99ri国产 | 久久精品综合视频 | 久久久成人精品视频 | 色综合99| 北条麻妃在线一区 | 3级av| 蜜桃av影视 | 成人毛片在线播放 | 四虎午夜影院 | 免费看欧美黑人毛片 | 在线观看三级视频 | 国产精品福利一区 | 插久久 | 国产伦理自拍 | 香蕉视频黄在线观看 | 综合另类 | 无码aⅴ精品一区二区三区浪潮 | 久草视频免费在线播放 | 在线观看的av | 久久久男人的天堂 | 欧美激情一区二区视频 | www.av小说 | 97人人插 | 无码人妻aⅴ一区二区三区玉蒲团 | 超爽视频| 免费av网站在线看 | 日韩人成| 亚洲一区国产 | 糖心视频在线 | 亚洲国产精品人人爽夜夜爽 | 久久99久久99精品免观看粉嫩 | 成人入口 | 日韩一级片免费 | h在线免费观看 | 奇米影视一区二区三区 | 能看的黄色网址 | 欧美日韩一区三区 | av在线看片 | 久久久96人妻无码精品 | 91网站大全| 亚洲操操 | 成年人网站免费 | 国产精品自拍偷拍视频 | 伊人9999 | 韩日在线 | 亚洲最大的av网站 | 看一级黄色大片 | 国产精品高潮av | 免费黄色三级 | 国产91久 | 亚洲影院在线观看 | 99免费视频| 日韩伦理中文字幕 | 国产露脸国语对白在线 | 久久久免费电影 | 国产日韩久久久 | 蜜桃av噜噜一区二区三区麻豆 | 国产高清不卡视频 | 少妇精品无码一区二区免费视频 | 无码一区二区三区在线 | 亚洲三区在线 | 粗暴video蹂躏hd | 亚洲国产精品国自产拍av | 精品一区二区成人免费视频 | 国产无套粉嫩白浆内谢 | 国产真人真事毛片 | 年下总裁被打光屁股sp | 欧美日韩一级在线观看 | 一级黄色性生活片 | 网站免费视频www | 亚州精品国产精品乱码不99按摩 | 天天人人精品 | 国产91在线免费观看 | 天堂在线观看视频 | 无码av免费精品一区二区三区 | 国产亚洲系列 | 很黄很污的视频 | 成人手机在线免费视频 | 伊人青青草视频 | 91网在线播放| 日韩av一区在线 | 国内精品在线播放 | 伊人情人综合 | 日韩av免费在线观看 | av动漫网 | 人妻熟女一区 | 午夜av在线播放 | 精品国产乱码久久久久久预案 | a天堂中文在线 | 欧美性猛交xxxⅹ富婆 | 色中文字幕 | 嘿咻视频在线观看 | 丁香八月婷婷 | 国产视频一区二区三区四区五区 | 欧美大尺度床戏做爰 | 黄在线观看免费 | 亚洲高潮 | 免费黄色高清视频 | 国产伦一区二区 | 成人在线免费观看视频 | 91麻豆视频在线观看 | 午夜在线免费观看视频 | 亚洲第一天堂网 | 青青草原在线免费观看视频 | 国产一区av在线 | 成人自拍视频在线 | 黄色一级大片在线免费看产 | 精品国产一区二区三区久久久狼 | 亚洲欧美激情在线 | 在线日韩中文字幕 | 欧美日韩生活片 | 看片国产 | 亚洲福利电影 | 欧美色频 | 深爱婷婷| 丁香婷婷六月 | 国产一区二区三区网站 | 日韩国产网站 | av丁香| 91久久电影 | 亚洲AV午夜福利精品一级无码 | www.日本高清 | 一级黄色性生活片 | 日韩欧美中文字幕在线视频 | 中文字幕影片免费在线观看 | 精品www久久久久久奶水 | 四川操bbb | 爱爱视频在线看 | 黄色av网站在线免费观看 | 瑟瑟视频在线免费观看 | 国产成人高清视频 | 16一17女人毛片 | 国产伦精品一区二区三区视频女 | 天堂在线亚洲 | 黑人操亚洲美女 | 国产做a视频 | 激情婷 | 久久久电影 | 一起草视频在线播放 | 你懂的网站在线 | 他趴在我两腿中间添得好爽在线看 | 色婷婷亚洲 | 午夜资源站 | 午夜精品久久久久久久第一页按摩 | 国产一级特黄a高潮片 | 最新中文字幕久久 | 美女又黄又免费的视频 | h视频国产 | 亚洲欧美日韩一区 | 亚欧洲精品在线视频 | 91免费在线 | www色中色 | 咪咪色影院 | 久久狠狠高潮亚洲精品 | 麻豆精品在线观看 | 九九九国产| 欧美黑人啪啪 | 可以看的毛片 | 国产做爰xxxⅹ高潮视频12p | 激情超碰 | 在线观看不卡的av | 久久久久国色av免费观看性色 | 青青草原国产 | 色综合色婷婷 | 精品成人在线观看 | 污视频在线免费观看 | 精品人妻一区二区免费视频 | 黄色a网站 | 亚洲性视频在线 | 久久嗨 | 中文国语毛片高清视频 | 婷婷综合一区 | 色播综合网 | 男男h黄动漫啪啪无遮挡软件 | 720url在线观看免费版 | 国产精品久久久久久免费 | 欧美日韩精 | 美女性高潮视频 | 精品一区二区三区日韩 | 99精品一区二区三区 | 国产69精品麻豆 | 国产乱子一区二区 | 日本成人在线免费视频 | a视频免费在线观看 | 久久精品一二 | 男女午夜免费视频 | 辟里啪啦国语版免费观看 | 久久精品免费 | www.久久99| 人人草人人干 | 国产酒店自拍 | 粉嫩小箩莉奶水四溅在线观看 | 久久噜| 色戒电影未测减除版 | 亚洲一区自拍偷拍 | 黄色片久久久 | 亚洲一区二区视频在线 | 亚洲国产成人一区二区 | 污视频网站免费观看 | 少女情窦初开的第4集在线观看 | 女女h百合无遮羞羞漫画软件 | 久久久免费精品 | 久久露脸国语精品国产91 | 张津瑜国内精品www在线 | 女女同性女同一区二区三区按摩 | 亚洲区精品 | 日本少妇全体裸体洗澡 | 91人妻一区二区三区蜜臀 | 男女做爰猛烈高潮描写 | 男女爱爱网站 | 黄色av电影网站 | 欧美成人精品一区二区免费看片 | 国产毛片毛片毛片毛片毛片毛片 | 久久国产一级片 | 女仆裸体打屁屁羞羞免费 | 日韩av网站在线观看 | 伊人网址| 中文字幕精品久久久久人妻红杏1 | 九七精品 | 成人爽a毛片一区二区免费 成人mv | 国产做爰免费观看视频 | 日本a级片网站 | 欧美 日韩 精品 | 91麻豆成人精品国产免费网站 | 欧美精品一卡 | 日本日韩欧美 | 黄色av网站免费观看 | 超碰98在线观看 | 久久久久亚洲AV成人无在 | 一级免费黄色 | 婷婷伊人五月 | 一本一道色欲综合网中文字幕 | www操 | 国产在线一卡二卡 | 久久久久久久艹 | 欧美日韩综合一区 | 免费在线看视频 | av美女网站| www久久久久久 | 日日夜夜狠狠爱 | 午夜不卡福利 | 99伊人 | 国产美女在线看 | 这里只有精品6 | 北条麻妃久久精品 | 国产成人在线影院 | 国产农村妇女精品一二区 | 91丨九色丨蝌蚪丨丝袜 | av男人天堂网 | 久操网站| 爱情岛论坛自拍亚洲品质极速最新章 | 波多野结衣中文一区 | 成人h动漫精品一区 | 亚洲国产成人精品久久 | 中文字幕精品一区 | 日日操夜夜爱 | 国产乱人视频 | 国产视频久久久 | 国产男男gay体育生网站 | 亚洲精品一区二区在线观看 | 免费看一级片 | 91视频最新 | 日韩综合一区 | 高级毛片 | 亚洲熟妇国产熟妇肥婆 | 成人精品电影 | av四虎| 女性裸体瑜伽无遮挡 | 亚洲精品一区二区三 | 欧美在线激情视频 | 狼人伊人干 | 久久久久九九 | av网在线播放 | 人妻少妇精品无码专区久久 | 欧美黄色片视频 | 国产精成人品免费观看 | 伊人久久99| 欧美精品小视频 | 国产精美视频 | 欧美一区二区久久 | 五月开心播播网 | 枫可怜av | 91大神在线观看视频 | 国产成人亚洲综合a∨婷婷 中文字幕在线国产 | 美女扒开腿免费视频 | 久热这里| 国产日韩精品视频 | a级一a一级在线观看 | av最新在线 | 日韩av在线看 | 超碰人人草 | 色丁香综合 | 91免费高清视频 | 欧美激情偷拍 | www.成人网.com | 色图社区 | 天天爱天天操 | 日日噜噜噜夜夜爽爽狠狠 | 成人春色影视 | 国产视频三区 | 五月婷婷影院 | 日本美女一级视频 | 日产精品久久久 | 黄色精品网站 | 黄色a级片网站 | 欧美日本 | 日本久久中文字幕 | 国产精品一区二区人妻喷水 | 性xxxx视频 | 日本超碰| 美女精品一区 | 亚洲男人第一天堂 | 超碰97在线资源 | 麻豆chinese极品少妇 | 久草网在线 | 久久久无码人妻精品无码 | 蜜桃va | 99精品视频免费看 | 风韵丰满熟妇啪啪区老熟熟女 | 日本韩国欧美中文字幕 | 51成人做爰www免费看网站 | 波多野结衣久久精品 | 中文日韩av | 精品国产伦一区二区三 | 麻豆网站免费观看 | 国产思思| 亚洲精品第一 | 我和公激情中文字幕 | 日韩激情网站 | 99国产精品99久久久久久粉嫩 | 蜜桃va | 精品人伦一区二区三电影 | 色综合五月天 | 国产精品色婷婷 | 色老大网站 | 高清不卡毛片 | 涩色视频| www日| 成人精品av | 偷啪自啪 | 亚洲国产中文字幕在线 | 国产一区av在线 | 欧美日韩中文字幕在线 | 第一毛片 | 国产二区精品 | 成人在线播放视频 | 国产精品一品二品 | 亚洲综合影视 | 人妻 日韩精品 中文字幕 | 区一区二区三 | 婷婷九月| 福利社av| 亚洲高潮 | 91嫩草网 | 亚洲高清色图 | 九七在线视频 | 日本美女交配 | 巨物撞击尤物少妇呻吟 | 秋霞电影网一区二区 | 99自拍视频在线观看 | 开心激情网五月天 | 国产精品久久久久久久久免费看 | 影音先锋中文字幕在线 | 岛国二区 | 黄色字幕网 | 国产视频福利 | 亚洲春色另类 | 国产视频手机在线观看 | 六月婷婷色 | 久草资源在线观看 | 成人在线免费视频 | 锦绣未央在线观看 | 秋霞成人av | 国产区久久 | 欧美日韩大陆 | av直播在线观看 | 亚洲国产精品人人爽夜夜爽 | 国产无精乱码一区二区三区 | 操碰人人| 在线免费观看av的网站 | 樱花视频在线免费观看 | 精品无码av一区二区三区 | ass极品水嫩小美女ass | 日本黄色激情视频 | 久久香蕉网站 | 最新中文字幕2019 | 天天色综合影视 | 中出白浆 | 色av中文字幕 | 精品无码久久久久成人漫画 | 大乳村妇的性需求 | 日韩啪| 亚洲欧洲综合网 | 欧美激情18p| 男人阁久久 | 国产免费av网站 | 黑人极品videos精品欧美裸 | 欧美一区二区三区公司 | 成人午夜视频在线播放 | 日本免费网站 | 老牛影视av一区二区在线观看 | 手机av免费看 | 久草综合网 | 欧美一级免费大片 | 亚洲成人黄色在线 | 欧美狠狠操 | 女性裸体不遮胸图片 | 日本欧美一区 | 最新国产黄色网址 | 亚洲青涩 | 人人射av| 亚洲午夜久久久久久久久红桃 | www.国产一区 | 午夜一级黄色片 | 亚洲黄色在线免费观看 | 美足av | 日韩av中文字幕在线播放 | 欧美日韩在线视频 | 亚洲午夜精品一区二区三区 | 日韩免费视频一区二区 | 成人福利社| 97自拍网| 91丨国产丨捆绑调教 | 日韩三级大片 | 青青草久久久 | www.色com| 欲求不满的岳中文字幕 | 深夜久久久 | 可以免费看av的网站 | 天天射美女| 老熟妇仑乱视频一区二区 | 免费淫片 | 性生活网址 | 欧美精产国品一二三区 | 日本在线视频一区二区 | 国产乱码久久久久久 | 蜜臀久久精品久久久久久酒店 | 亚洲不卡一区二区三区 | 日本性爱视频在线观看 | 国产福利视频一区二区 | 天堂资源最新在线 | 久久草精品 | 亚洲17p | 中文字幕高清在线播放 | 免费看污视频的网站 | 无遮挡裸光屁屁打屁股男男 | 精品国产乱码久久久久久久 | 国产成人日韩 | 97国产精品久久久 | 关秀媚三级| 91免费在线看 | 69xx免费视频 | 国产麻豆一级片 | 日韩美女中文字幕 | 校霸被c到爽夹震蛋上课高潮 | 伊人成人在线观看 | 久草中文网 | 国产亚洲色婷婷久久99精品 | 超碰一区二区 | 337p亚洲欧洲色噜噜噜 | 国产亚洲成av人在线观看导航 | 深夜网站在线观看 | 久久久三级 | 成年人在线视频网站 | 亚洲自拍另类 | 日韩欧美国产一区二区三区在线观看 |