南京某山寨运动控制卡厂家封装的DLL
大仙2017/05/31软件综合 IP:江苏
using System;
using XXXXXXXXX.Ports;
using System.Text;
using XXXXXXXXXreading;
namespace IoRS485
{
public class IOContrl
{
private SerialPort sP = new SerialPort();
public string[] SearchPort()
{
return XXXXXXXXXXXXXtPortNames();
}
public int Open(string sPortName, string sBandRate)
{
int result;
try
{
if (!XXXXXXXXXXOpen)
{
this.sP.PortName = sPortName;
XXXXXXXXXXudRate = XXXXXXXXXXInt32(sBandRate);
this.sP.WriteTimeout = 500;
XXXXXXXXXXadTimeout = 500;
this.sP.Open();
}
else
{
XXXXXXXXXXose();
this.sP.PortName = sPortName;
XXXXXXXXXXudRate = XXXXXXXXXXInt32(sBandRate);
this.sP.Open();
}
XXXXXXXXXXadTimeout = 500;
result = 0;
}
catch
{
result = -1;
}
return result;
}
public int Close()
{
int result;
try
{
if (XXXXXXXXXXOpen)
{
XXXXXXXXXXose();
}
result = 0;
}
catch
{
result = -1;
}
return result;
}
public bool BufClear()
{
this.sP.DiscardInBuffer();
return true;
}
public string ReadStr(string cmd)
{
this.sP.DiscardInBuffer();
string text = "@" + cmd + "\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return text;
}
return "1";
}
public string Reset(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Reset\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return text;
}
return "1";
}
public string ReadSN(int addr)
{
string text = "";
try
{
this.sP.DiscardInBuffer();
text = "@" + XXXXXXXString() + ":*IDN?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
text = XXXXXXXplace("\r", "");
}
catch
{
}
if (text.Length > 0)
{
return text;
}
return "1";
}
public int ReadAddr(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Addr?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
text = XXXXXXXplace("\r", "");
if (text.Length > 0)
{
return XXXXXXXXXXInt32(text);
}
return 1;
}
public string WriteAddr(int addr, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Addr ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetBTL(int addr, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":BRG ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string MotorRun(int addr, string motorNum, long steps)
{
if (steps == 0L)
{
return "0";
}
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Run:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string MotorMoveTo(int addr, string motorNum, long steps)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:MoveTo:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorPostion(int addr, string motorNum, long steps)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Pos:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadMotorPostion(int addr, string motorNum)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Pos:M",
motorNum,
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
string oldValue = "P" + motorNum + ":";
text = XXXXXXXplace(oldValue, "");
text = XXXXXXXplace("\n", "");
return XXXXXXXplace("\r", "");
}
public string MotorHome(int addr, string motorNum)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Home:M",
motorNum,
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorSpeed(int addr, string motorNum, int speed)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Speed:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorInvert(int addr, string motorNum, int Invert)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Invert:M",
motorNum,
" ",
XXXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorSpeedStart(int addr, string motorNum, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:SStart:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorSpeedAdd(int addr, string motorNum, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:SAdd:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorSpeedHome(int addr, string motorNum, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:SHome:M",
motorNum,
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string MotorSave(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Motor:Save\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadMotorSpeed(int addr, string motorNum)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Speed:M",
motorNum,
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
return XXXXXXXplace("\r", "");
}
public string ReadMotoRunStatus(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Motor:Run?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("R:", "");
if (text.Length >= 4)
{
text = text.Substring(0, 4);
}
return text;
}
public string ReadMotoRunStatus(int addr, string motorNum)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Run:M",
motorNum,
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
string oldValue = "R" + XXXXXXXXXXXim() + ":";
text = XXXXXXXplace(oldValue, "");
return XXXXXXXplace("\r\n", "");
}
public string ReadMotoHomeStatus(int addr, string motorNum)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:Home:M",
motorNum,
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
return XXXXXXXplace("\r", "");
}
public string MotoStop(int addr, string motorNum)
{
string text = "@" + XXXXXXXString() + ":Motor:Stop:All\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetMotorMotorIntMode(int addr, int value)
{
if (value > 1 || value < 0)
{
value = 0;
}
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:MINT ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string WriteOut(int addr, int channel, int onoff)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Output:Y",
XXXXXXXXXXString(),
" ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string WriteOutDelayOff(int addr, int channel, int delaytime)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":OutDly:Y",
XXXXXXXXXXString(),
" ",
XXXXXXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string RealyOnOff(int addr, int value)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Output:Y9 ";
text = text + XXXXXXXXString() + "\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadOutBit(int addr, int channel)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":OutPut:Y",
XXXXXXXXXXString(),
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
return XXXXXXXplace("\r", "");
}
public string ReadIn(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Input:All?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
text = XXXXXXXplace("\r", "");
return XXXXXXXplace("X:", "");
}
public string ReadInBit(int addr, int ch)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Input:X",
XXXXXString(),
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
string oldValue = "X" + XXXXXString() + ":";
text = XXXXXXXplace(oldValue, "");
return XXXXXXXplace("\r\n", "");
}
public int ReadInBit2(int addr, int port)
{
string text = XXXXXXXadIn(addr);
if (text.Length < 8)
{
return -1;
}
if (text[port - 1] == '1')
{
return 1;
}
return 0;
}
public string ReadCounter(int addr, int channel, out int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Count:C",
XXXXXXXXXXString(),
"?\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
text = XXXXXXXplace("\r", "");
if (text.Length >= 1)
{
value = XXXXXXXXXXInt32(text);
}
else
{
value = 0;
}
return "1";
}
public string XIntModeSet(int addr, int value)
{
if (value > 1 || value < 0)
{
value = 0;
}
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:Int ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string XIntModeRead(int addr, int value)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Program:Int?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string MotorIntModeSet(int addr, int value)
{
if (value > 1 || value < 0)
{
value = 0;
}
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:MInt ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadMotorIntMode(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Program:MInt?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetX8EStopMode(int addr, int value)
{
if (value > 1 || value < 0)
{
value = 0;
}
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Motor:EStop ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadX8EStopMode(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Motor:EStop?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetFilter(int addr, int value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Filter ",
XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadAdc(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":ADC?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
text = XXXXXXXplace("\n", "");
return XXXXXXXplace("\r", "");
}
public string EditWrite(int addr, int E_addr, int E_value)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:Edit:",
E_XXXXXXXString(),
" ",
E_XXXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string EditRead(int addr, int E_addr)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:Edit?:",
E_XXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadStep(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Program:Pstep?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return XXXXXXXXXXInt32(text).ToString();
}
return "1";
}
public int ReadPPStep(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Program:PPstep?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return XXXXXXXXXXInt32(text);
}
return -2;
}
public string SetOrigStep(int addr, int step)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:ORIG ",
XXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return XXXXXXXXXXInt32(text).ToString();
}
return "1";
}
public string SetProgramMode(int addr, int mode)
{
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Program:mode ",
XXXXXXXString(),
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return text;
}
return "1";
}
public string PtogramStop(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Program:Stop\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return text;
}
return "1";
}
public string Pause(int addr, int value)
{
this.sP.DiscardInBuffer();
string text;
if (value == 0)
{
text = "@" + XXXXXXXString() + ":Program:Pause 0\r\n";
}
else
{
text = "@" + XXXXXXXString() + ":Program:Pause 1\r\n";
}
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
if (text.Length > 0)
{
return text;
}
return "1";
}
public string InputPassWord(int addr, string password)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":Compare:",
XXXXXXXXXXXXXXXXXXString(),
":",
password,
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string SetPassWord(int addr, string password)
{
this.sP.DiscardInBuffer();
string text = XXXXXXXXXncat(new string[]
{
"@",
XXXXXXXString(),
":LOCPASS:",
XXXXXXXXXXXXXXXXXXString(),
":",
password,
"\r\n"
});
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ClearPassWord(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Clear\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadCounterSpeed(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":Count1?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string ReadRotateDirection(int addr)
{
this.sP.DiscardInBuffer();
string text = "@" + XXXXXXXString() + ":FX?\r\n";
this.sP.Write(XXXXXXXCharArray(), 0, text.Length);
text = XXXXXXXadPort();
return XXXXXXXplace("\r\n", "");
}
public string readPort()
{
string text = "";
int num = 0;
string result;
try
{
do
{
text += XXXXXXXadPortOnce();
if (text.Substring(text.Length - 1, 1) == "\n")
{
break;
}
XXXXXXXXXeep(5);
num++;
}
while (num <= 20);
result = text;
}
catch (Exception)
{
result = text;
}
return result;
}
public string readPortOnce()
{
string str = "";
byte[] array = new byte[XXXXXXXXXXadBufferSize + 1];
int count = XXXXXXXXXXad(array, 0, XXXXXXXXXXadBufferSize);
string @string = XXXXXXXXXXXXXXXXXtString(array, 0, count);
return str + @string;
}
public static int Asc(string character)
{
if (character.Length == 1)
{
ASCIIEncoding aSCIIEncoding = new ASCIIEncoding();
return (int)XXXXXXXXXXXXXXXXtBytes(character)[0];
}
throw new Exception("Character is not valid.");
}
}
}
来自:计算机科学 / 软件综合
1
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
大仙
学者 机友 笔友
文章
783
回复
1652
学术分
13
2008/05/17注册,8时33分前活动

传感器测试,物联网监控,测控。130 0345 0361 手机微信同号

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}