我有用C编写的代码,现在我需要将它移植到PYTHON。 C代码有不能直接在python中实现的枚举
有没有办法在python中实现enum并创建它的实例,如下面的c代码所示SerialProcessState serialProcessState = SerialProcessState.SERIAL_PROCESS_SEARCH_START;
有人能帮我用python实现这些东西吗?在
enum SerialProcessState
{
SERIAL_PROCESS_SEARCH_START,
SERIAL_PROCESS_VERIFY_ELEMENTS,
SERIAL_PROCESS_DATA,
SERIAL_PROCESS_SEARCH_END}
;
SerialProcessState serialProcessState = SerialProcessState.SERIAL_PROCESS_SEARCH_START;
enum SerialProcessValue
{
SERIAL_PACKET_START = 0xF0,
SERIAL_PACKET_END = 0xF1,
SERIAL_PACKET_ESCAPE = 0xF2,
SERIAL_PACKET_ESCAPE_START = 0x00,
SERIAL_PACKET_ESCAPE_END = 0x01,
SERIAL_PACKET_ESCAPE_ESCAPE = 0x02,
SERIAL_PACKET_ELEMENTS = 0x06}
;
private void SerialProcess(byte serialData)
{
UInt16 Dummy;
for (Dummy = 0; Dummy < 63; Dummy++) {
serialhistory[Dummy] = serialhistory[Dummy + 1];
}
serialhistory[63] = serialData;
if ((SerialProcessValue)serialData == SerialProcessValue.SERIAL_PACKET_START) {
serialProcessState = SerialProcessState.SERIAL_PROCESS_SEARCH_START;
serialEscaped = false;
}
switch (serialProcessState) {
case SerialProcessState.SERIAL_PROCESS_SEARCH_START:
if ((SerialProcessValue)serialData == SerialProcessValue.SERIAL_PACKET_START) {
checksum = 0;
serialProcessState = SerialProcessState.SERIAL_PROCESS_VERIFY_ELEMENTS;
}
break;
.
.
}
使用backported Enum*:
然后您可以以
SerialProcessValue.packet_start
或SerialProcessState.search_end
的形式访问它们。在*后端口的包名是
enum34
。在相关问题 更多 >
编程相关推荐