To solve this optimization problem, we first need to define the decision variables, objective function, and constraints. 

Let's denote:
- \(B\) as the number of burgers produced.
- \(H\) as the number of hot-dogs produced.

The objective is to maximize revenue. Given that each burger generates $0.30 in revenue and each hot-dog generates $0.20 in revenue, the objective function can be written as:
\[ \text{Maximize:} \ 0.30B + 0.20H \]

There are two main constraints based on the availability of meat and binding agent:
1. **Meat Constraint**: Each burger requires 3 units of meat, and each hot-dog requires 2 units of meat. The factory has 2000 units of meat available.
\[ 3B + 2H \leq 2000 \]

2. **Binding Agent Constraint**: Each burger requires 2 units of binding agent, and each hot-dog requires 1 unit of binding agent. The factory has 1800 units of binding agent available.
\[ 2B + H \leq 1800 \]

Additionally, \(B\) and \(H\) must be non-negative since they represent quantities of products.

Now, let's translate this problem into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Meat_Factory_Optimization")

# Define the decision variables
B = m.addVar(vtype=GRB.CONTINUOUS, name="burgers")
H = m.addVar(vtype=GRB.CONTINUOUS, name="hot_dogs")

# Set the objective function
m.setObjective(0.30*B + 0.20*H, GRB.MAXIMIZE)

# Add constraints
m.addConstr(3*B + 2*H <= 2000, "meat_constraint")
m.addConstr(2*B + H <= 1800, "binding_agent_constraint")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Burgers: {B.x}")
    print(f"Hot-dogs: {H.x}")
    print(f"Max Revenue: {m.objVal}")
else:
    print("No optimal solution found")

```